Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # The following variables will likely need to be modified, depending on where | 1 # The following variables will likely need to be modified, depending on where |
| 2 # and how you built LLVM & Clang. They can be overridden in a command-line | 2 # and how you built LLVM & Clang. They can be overridden in a command-line |
| 3 # invocation of make, like: | 3 # invocation of make, like: |
| 4 # | 4 # |
| 5 # make LLVM_SRC_PATH=<path> LLVM_BIN_PATH=<path> \ | 5 # make LLVM_SRC_PATH=<path> LLVM_BIN_PATH=<path> \ |
| 6 # LIBCXX_INSTALL_PATH=<path> CLANG_PATH=<path> ... | 6 # LIBCXX_INSTALL_PATH=<path> CLANG_PATH=<path> ... |
| 7 # | 7 # |
| 8 | 8 |
| 9 # LLVM_SRC_PATH is the path to the root of the checked out source code. This | 9 # LLVM_SRC_PATH is the path to the root of the checked out source code. This |
| 10 # directory should contain the configure script, the include/ and lib/ | 10 # directory should contain the configure script, the include/ and lib/ |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 30 | 30 |
| 31 HOST_ARCH ?= x86_64 | 31 HOST_ARCH ?= x86_64 |
| 32 ifeq ($(HOST_ARCH),x86_64) | 32 ifeq ($(HOST_ARCH),x86_64) |
| 33 HOST_FLAGS = -m64 -stdlib=libc++ | 33 HOST_FLAGS = -m64 -stdlib=libc++ |
| 34 else | 34 else |
| 35 ifeq ($(HOST_ARCH),x86) | 35 ifeq ($(HOST_ARCH),x86) |
| 36 HOST_FLAGS = -m32 -stdlib=libc++ | 36 HOST_FLAGS = -m32 -stdlib=libc++ |
| 37 endif | 37 endif |
| 38 endif | 38 endif |
| 39 | 39 |
| 40 # The list of CXX defines that are dependent on build parameters. | |
| 41 CXX_DEFINES = | |
| 42 | |
| 43 # The list of attributes associated with the built executable. | |
| 44 BUILD_ATTS = x86-32 p2i | |
| 45 | |
| 40 ifdef DEBUG | 46 ifdef DEBUG |
| 41 OBJDIR = build/Debug | 47 OBJDIR = build/Debug |
| 42 OPTLEVEL = -O0 | 48 OPTLEVEL = -O0 |
| 49 BUILD_ATTS += debug | |
| 43 else | 50 else |
| 44 OBJDIR = build/Release | 51 OBJDIR = build/Release |
| 45 OPTLEVEL = -O2 | 52 OPTLEVEL = -O2 |
| 53 BUILD_ATTS += release | |
| 54 endif | |
| 55 | |
| 56 ifdef MINIMAL | |
| 57 CXX_DEFINES += -DNO_TEXT_ASM -DNO_DUMP -DNO_LLVM_CL -DNO_LLVM_IR \ | |
| 58 -DNO_LLVM_IR_AS_INPUT | |
|
Karl
2014/10/21 21:14:18
Decided to always define the macros, and set to 0/
| |
| 59 OBJDIR := $(OBJDIR)+Min | |
| 60 BUILD_ATTS += no_text_asm no_dump no_llvm_cl no_llvm_ir no_llvm_ir_as_input | |
| 61 else | |
| 62 CXX_DEFINES += -DALLOW_TEXT_ASM -DALLOW_DUMP -DALLOW_LLVM_CL \ | |
| 63 -DALLOW_LLVM_IR -DALLOW_LLVM_IR_AS_INPUT | |
| 64 BUILD_ATTS += allow_text_asm allow_dump allow_llvm_cl allow_llvm_ir \ | |
| 65 allow_llvm_ir_as_input | |
| 46 endif | 66 endif |
| 47 | 67 |
| 48 ifdef NOASSERT | 68 ifdef NOASSERT |
| 49 ASSERTIONS = -DNDEBUG | 69 ASSERTIONS = -DNDEBUG |
| 70 BUILD_ATTS += noasserts | |
| 50 else | 71 else |
| 51 ASSERTIONS = | 72 ASSERTIONS = |
| 52 OBJDIR := $(OBJDIR)+Asserts | 73 OBJDIR := $(OBJDIR)+Asserts |
| 74 BUILD_ATTS += asserts | |
| 53 endif | 75 endif |
| 54 | 76 |
| 55 $(info -----------------------------------------------) | 77 $(info -----------------------------------------------) |
| 56 $(info Using LLVM_SRC_PATH = $(LLVM_SRC_PATH)) | 78 $(info Using LLVM_SRC_PATH = $(LLVM_SRC_PATH)) |
| 57 $(info Using LLVM_BIN_PATH = $(LLVM_BIN_PATH)) | 79 $(info Using LLVM_BIN_PATH = $(LLVM_BIN_PATH)) |
| 58 $(info Using LIBCXX_INSTALL_PATH = $(LIBCXX_INSTALL_PATH)) | 80 $(info Using LIBCXX_INSTALL_PATH = $(LIBCXX_INSTALL_PATH)) |
| 59 $(info Using CLANG_PATH = $(CLANG_PATH)) | 81 $(info Using CLANG_PATH = $(CLANG_PATH)) |
| 60 $(info Using HOST_ARCH = $(HOST_ARCH)) | 82 $(info Using HOST_ARCH = $(HOST_ARCH)) |
| 61 $(info -----------------------------------------------) | 83 $(info -----------------------------------------------) |
| 62 | 84 |
| 63 LLVM_CXXFLAGS := `$(LLVM_BIN_PATH)/llvm-config --cxxflags` | 85 LLVM_CXXFLAGS := `$(LLVM_BIN_PATH)/llvm-config --cxxflags` |
| 64 LLVM_LDFLAGS := `$(LLVM_BIN_PATH)/llvm-config --libs` \ | 86 LLVM_LDFLAGS := `$(LLVM_BIN_PATH)/llvm-config --libs` \ |
| 65 `$(LLVM_BIN_PATH)/llvm-config --ldflags` | 87 `$(LLVM_BIN_PATH)/llvm-config --ldflags` |
| 66 | 88 |
| 67 # It's recommended that CXX matches the compiler you used to build LLVM itself. | 89 # It's recommended that CXX matches the compiler you used to build LLVM itself. |
| 68 CCACHE := `command -v ccache` | 90 CCACHE := `command -v ccache` |
| 69 CXX := CCACHE_CPP2=yes $(CCACHE) $(CLANG_PATH)/clang++ | 91 CXX := CCACHE_CPP2=yes $(CCACHE) $(CLANG_PATH)/clang++ |
| 70 | 92 |
| 71 CXXFLAGS := $(LLVM_CXXFLAGS) -std=c++11 -Wall -Wextra -Werror -fno-rtti \ | 93 CXXFLAGS := $(LLVM_CXXFLAGS) -std=c++11 -Wall -Wextra -Werror -fno-rtti \ |
| 72 » -fno-exceptions $(OPTLEVEL) $(ASSERTIONS) -g $(HOST_FLAGS) \ | 94 » -fno-exceptions $(OPTLEVEL) $(ASSERTIONS) $(CXX_DEFINES) -g \ |
| 73 » -Wno-error=unused-parameter -I$(LIBCXX_INSTALL_PATH)/include/c++/v1 | 95 » $(HOST_FLAGS) -Wno-error=unused-parameter \ |
| 96 » -I$(LIBCXX_INSTALL_PATH)/include/c++/v1 | |
| 74 LDFLAGS := $(HOST_FLAGS) -L$(LIBCXX_INSTALL_PATH)/lib | 97 LDFLAGS := $(HOST_FLAGS) -L$(LIBCXX_INSTALL_PATH)/lib |
| 75 | 98 |
| 76 SRCS= \ | 99 SRCS= \ |
| 77 assembler.cpp \ | 100 assembler.cpp \ |
| 78 assembler_ia32.cpp \ | 101 assembler_ia32.cpp \ |
| 79 IceCfg.cpp \ | 102 IceCfg.cpp \ |
| 80 IceCfgNode.cpp \ | 103 IceCfgNode.cpp \ |
| 81 IceConverter.cpp \ | 104 IceConverter.cpp \ |
| 82 IceGlobalContext.cpp \ | 105 IceGlobalContext.cpp \ |
| 83 IceGlobalInits.cpp \ | 106 IceGlobalInits.cpp \ |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 96 IceTypeConverter.cpp \ | 119 IceTypeConverter.cpp \ |
| 97 IceTypes.cpp \ | 120 IceTypes.cpp \ |
| 98 llvm2ice.cpp \ | 121 llvm2ice.cpp \ |
| 99 PNaClTranslator.cpp | 122 PNaClTranslator.cpp |
| 100 | 123 |
| 101 OBJS=$(patsubst %.cpp, $(OBJDIR)/%.o, $(SRCS)) | 124 OBJS=$(patsubst %.cpp, $(OBJDIR)/%.o, $(SRCS)) |
| 102 | 125 |
| 103 # Keep all the first target so it's the default. | 126 # Keep all the first target so it's the default. |
| 104 all: $(OBJDIR)/llvm2ice make_symlink | 127 all: $(OBJDIR)/llvm2ice make_symlink |
| 105 | 128 |
| 106 make_symlink: $(OBJDIR)/llvm2ice | 129 make_symlink: $(OBJDIR)/llvm2ice $(OBJDIR)/llvm2ice.build_atts |
| 107 » rm -f llvm2ice | 130 » rm -rf llvm2ice llvm2ice.build_atts |
| 108 ln -s $(OBJDIR)/llvm2ice | 131 ln -s $(OBJDIR)/llvm2ice |
| 132 ln -s $(OBJDIR)/llvm2ice.build_atts | |
| 109 | 133 |
| 110 .PHONY: all make_symlink | 134 .PHONY: all make_symlink |
| 111 | 135 |
| 112 $(OBJDIR)/llvm2ice: $(OBJS) | 136 $(OBJDIR)/llvm2ice: $(OBJS) |
| 113 $(CXX) $(LDFLAGS) -o $@ $^ $(LLVM_LDFLAGS) -ldl \ | 137 $(CXX) $(LDFLAGS) -o $@ $^ $(LLVM_LDFLAGS) -ldl \ |
| 114 -Wl,-rpath=$(abspath $(LIBCXX_INSTALL_PATH)/lib) | 138 -Wl,-rpath=$(abspath $(LIBCXX_INSTALL_PATH)/lib) |
| 139 echo "$(BUILD_ATTS)" > $@.build_atts | |
| 115 | 140 |
| 116 # TODO: Be more precise than "*.h" here and elsewhere. | 141 # TODO: Be more precise than "*.h" here and elsewhere. |
| 117 $(OBJS): $(OBJDIR)/%.o: src/%.cpp src/*.h src/*.def | 142 $(OBJS): $(OBJDIR)/%.o: src/%.cpp src/*.h src/*.def |
| 118 $(CXX) -c $(CXXFLAGS) $< -o $@ | 143 $(CXX) -c $(CXXFLAGS) $< -o $@ |
| 119 | 144 |
| 120 $(OBJS): | $(OBJDIR) | 145 $(OBJS): | $(OBJDIR) |
| 121 | 146 |
| 122 $(OBJDIR): | 147 $(OBJDIR): |
| 123 @mkdir -p $@ | 148 @mkdir -p $@ |
| 124 | 149 |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 142 ifeq (,$(wildcard /usr/lib/clang-format/clang-format-diff.py)) | 167 ifeq (,$(wildcard /usr/lib/clang-format/clang-format-diff.py)) |
| 143 CLANG_FORMAT_DIFF = clang-format-diff.py | 168 CLANG_FORMAT_DIFF = clang-format-diff.py |
| 144 else | 169 else |
| 145 CLANG_FORMAT_DIFF = /usr/lib/clang-format/clang-format-diff.py | 170 CLANG_FORMAT_DIFF = /usr/lib/clang-format/clang-format-diff.py |
| 146 endif | 171 endif |
| 147 format-diff: | 172 format-diff: |
| 148 git diff -U0 `git merge-base HEAD master` | \ | 173 git diff -U0 `git merge-base HEAD master` | \ |
| 149 $(CLANG_FORMAT_DIFF) -p1 -style=LLVM -i | 174 $(CLANG_FORMAT_DIFF) -p1 -style=LLVM -i |
| 150 | 175 |
| 151 clean: | 176 clean: |
| 152 » rm -rf llvm2ice *.o build/ | 177 » rm -rf llvm2ice llvm2ice.build_atts *.o $(OBJDIR) |
| 178 | |
| 179 clean-all: clean | |
| 180 » rm -rf build/ | |
| OLD | NEW |