Chromium Code Reviews| 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/ |