| 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
|
| +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/
|
|
|