Index: Makefile |
diff --git a/Makefile b/Makefile |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6204f1bf36955a6aa381c1e6c3d35dab5d60b709 |
--- /dev/null |
+++ b/Makefile |
@@ -0,0 +1,69 @@ |
+# The following variables will likely need to be modified, depending on where |
+# and how you built LLVM & Clang. They can be overridden in a command-line |
+# invocation of make, like: |
+# |
+# make LLVM_SRC_PATH=<path> LLVM_BIN_PATH=<path> ... |
+# |
+ |
+# LLVM_SRC_PATH is the path to the root of the checked out source code. This |
+# directory should contain the configure script, the include/ and lib/ |
+# directories of LLVM, Clang in tools/clang/, etc. |
+# Alternatively, if you're building vs. a binary download of LLVM, then |
+# LLVM_SRC_PATH can point to the main untarred directory. |
+LLVM_SRC_PATH ?= ../llvm |
+ |
+# LLVM_BIN_PATH is the directory where binaries are placed by the LLVM build |
+# process. It should contain the tools like opt, llc and clang. The default |
+# reflects a debug build with autotools (configure & make). |
+LLVM_BIN_PATH ?= $(shell readlink -e ../../out/llvm_i686_linux_work/Release+Asserts/bin) |
+ |
+$(info -----------------------------------------------) |
+$(info Using LLVM_SRC_PATH = $(LLVM_SRC_PATH)) |
+$(info Using LLVM_BIN_PATH = $(LLVM_BIN_PATH)) |
+$(info -----------------------------------------------) |
+ |
+LLVM_CXXFLAGS := `$(LLVM_BIN_PATH)/llvm-config --cxxflags` |
+LLVM_LDFLAGS := `$(LLVM_BIN_PATH)/llvm-config --ldflags --libs` |
+ |
+# It's recommended that CXX matches the compiler you used to build LLVM itself. |
+OPTLEVEL := -O0 |
+CXX := g++ |
+CXXFLAGS := -Wall -Werror -fno-rtti $(OPTLEVEL) -g $(LLVM_CXXFLAGS) -m32 |
jvoung (off chromium)
2014/03/28 23:21:53
-fno-exceptions too?
Jim Stichnoth
2014/03/29 14:23:22
Done.
|
+LDFLAGS := -m32 |
+ |
+SRCS= \ |
+ IceCfg.cpp \ |
+ IceCfgNode.cpp \ |
+ IceInst.cpp \ |
+ IceOperand.cpp \ |
+ IceTypes.cpp \ |
+ llvm2ice.cpp |
+ |
+OBJS=$(patsubst %.cpp, build/%.o, $(SRCS)) |
+ |
+# Keep all the first target so it's the default. |
+all: llvm2ice |
+ |
+.PHONY: all |
+ |
+llvm2ice: $(OBJS) |
+ $(CXX) $(LDFLAGS) -o $@ $^ $(LLVM_LDFLAGS) -ldl |
+ |
+# TODO: Be more precise than "*.h" here and elsewhere. |
+$(OBJS): build/%.o: src/%.cpp src/*.h |
+ $(CXX) -c $(CXXFLAGS) $< -o $@ |
+ |
+$(OBJS): | build |
+ |
+build: |
+ @mkdir -p $@ |
+ |
+check: llvm2ice |
+ LLVM_BIN_PATH=$(LLVM_BIN_PATH) $(LLVM_SRC_PATH)/utils/lit/lit.py -sv tests_lit |
+ |
+# TODO: Fix the use of wildcards. |
+format: |
+ $(LLVM_BIN_PATH)/clang-format -style=LLVM -i src/Ice*.h src/Ice*.cpp src/llvm2ice.cpp |
+ |
+clean: |
+ rm -rf llvm2ice *.o build/ |