Index: Makefile |
diff --git a/Makefile b/Makefile |
index e32ae89c6c0c91a5cf8709826efcc3ea605f3588..67e5fdcc8fdf7069a8b81f271279f7bf18af25f1 100644 |
--- a/Makefile |
+++ b/Makefile |
@@ -1,74 +1,14 @@ |
-# 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 |
+ifndef SUBZERO_LEVEL |
+# Top-level, not included from a subdir |
+SUBZERO_LEVEL := . |
+DIRS := src |
+PARALLEL_DIRS := |
+endif |
-# 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) |
+# Set LLVM source root level. |
+LEVEL := $(SUBZERO_LEVEL)/../.. |
-$(info -----------------------------------------------) |
-$(info Using LLVM_SRC_PATH = $(LLVM_SRC_PATH)) |
-$(info Using LLVM_BIN_PATH = $(LLVM_BIN_PATH)) |
-$(info -----------------------------------------------) |
+# Include LLVM common makefile. |
+include $(LEVEL)/Makefile.common |
-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 -fno-exceptions \ |
- $(OPTLEVEL) -g $(LLVM_CXXFLAGS) -m32 |
-LDFLAGS := -m32 |
- |
-SRCS= \ |
- IceCfg.cpp \ |
- IceCfgNode.cpp \ |
- IceGlobalContext.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 src/*.def |
- $(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/ |