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> LIBCXX_INSTALL_PATH=<path> CLANG_PATH=<path> \ | 5 # make LLVM_SRC_PATH=<path> LIBCXX_INSTALL_PATH=<path> CLANG_PATH=<path> \ |
6 # PNACL_BIN_PATH=<path> ... | 6 # PNACL_BIN_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 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 SB_CXX_DEFINES := $(BASE_CXX_DEFINES) -DPNACL_BROWSER_TRANSLATOR=1 | 87 SB_CXX_DEFINES := $(BASE_CXX_DEFINES) -DPNACL_BROWSER_TRANSLATOR=1 |
88 CXX_DEFINES := $(BASE_CXX_DEFINES) -DPNACL_BROWSER_TRANSLATOR=0 | 88 CXX_DEFINES := $(BASE_CXX_DEFINES) -DPNACL_BROWSER_TRANSLATOR=0 |
89 | 89 |
90 ifdef NOASSERT | 90 ifdef NOASSERT |
91 ASSERTIONS = -DNDEBUG | 91 ASSERTIONS = -DNDEBUG |
92 else | 92 else |
93 ASSERTIONS = | 93 ASSERTIONS = |
94 OBJDIR := $(OBJDIR)+Asserts | 94 OBJDIR := $(OBJDIR)+Asserts |
95 endif | 95 endif |
96 | 96 |
97 # Use g++ to compile, to check for errors/warnings that clang++ might have | |
98 # missed. It's unlikely to link, unless LLVM was also built with g++, so the | |
99 # compile_only target should be used. | |
100 ifdef GPLUSPLUS | |
101 CXX = CCACHE_CPP2=yes $(CCACHE) g++ | |
102 STDLIB_FLAGS = | |
103 LLVM_EXTRA_WARNINGS="-Wno-unknown-pragmas -Wno-unused-parameter \ | |
104 -Wno-comment -Wno-enum-compare -Wno-strict-aliasing" | |
105 OBJDIR := $(OBJDIR)+Gplusplus | |
106 endif | |
107 | |
108 ifdef UBSAN | 97 ifdef UBSAN |
109 OBJDIR := $(OBJDIR)+UBSan | 98 OBJDIR := $(OBJDIR)+UBSan |
110 CXX_EXTRA += -fsanitize=undefined -fno-sanitize=vptr \ | 99 CXX_EXTRA += -fsanitize=undefined -fno-sanitize=vptr \ |
111 -fno-sanitize=nonnull-attribute | 100 -fno-sanitize=nonnull-attribute |
112 LD_EXTRA += -fsanitize=undefined | 101 LD_EXTRA += -fsanitize=undefined |
113 endif | 102 endif |
114 | 103 |
115 ifdef UBSAN_TRAP | 104 ifdef UBSAN_TRAP |
116 OBJDIR := $(OBJDIR)+UBSan_Trap | 105 OBJDIR := $(OBJDIR)+UBSan_Trap |
117 CXX_EXTRA += -fsanitize=undefined-trap -fsanitize-undefined-trap-on-error \ | 106 CXX_EXTRA += -fsanitize=undefined-trap -fsanitize-undefined-trap-on-error \ |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
185 -L$(SB_LLVM_PATH)/lib | 174 -L$(SB_LLVM_PATH)/lib |
186 | 175 |
187 CCACHE := `command -v ccache` | 176 CCACHE := `command -v ccache` |
188 CXX := CCACHE_CPP2=yes $(CCACHE) $(CLANG_PATH)/clang++ | 177 CXX := CCACHE_CPP2=yes $(CCACHE) $(CLANG_PATH)/clang++ |
189 SB_CXX := CCACHE_CPP2=yes $(CCACHE) $(PNACL_BIN_PATH)/pnacl-clang++ | 178 SB_CXX := CCACHE_CPP2=yes $(CCACHE) $(PNACL_BIN_PATH)/pnacl-clang++ |
190 SB_TRANSLATE := $(PNACL_BIN_PATH)/pnacl-translate | 179 SB_TRANSLATE := $(PNACL_BIN_PATH)/pnacl-translate |
191 | 180 |
192 # Extra warnings that LLVM's build system adds in addition to -Wall. | 181 # Extra warnings that LLVM's build system adds in addition to -Wall. |
193 LLVM_EXTRA_WARNINGS := -Wcovered-switch-default | 182 LLVM_EXTRA_WARNINGS := -Wcovered-switch-default |
194 | 183 |
| 184 # Use g++ to compile, to check for errors/warnings that clang++ might have |
| 185 # missed. It's unlikely to link, unless LLVM was also built with g++, so the |
| 186 # compile_only target should be used. Note: This ifdef section is deliberately |
| 187 # placed here instead of with the other ifdef sections, so that its redefinition |
| 188 # of CXX/STDLIB_FLAGS/LLVM_EXTRA_WARNINGS follows their normal definitions. |
| 189 ifdef GPLUSPLUS |
| 190 CXX := CCACHE_CPP2=yes $(CCACHE) g++ |
| 191 STDLIB_FLAGS := |
| 192 LLVM_EXTRA_WARNINGS := -Wno-unknown-pragmas -Wno-unused-parameter \ |
| 193 -Wno-comment -Wno-enum-compare -Wno-strict-aliasing \ |
| 194 -Wno-return-type |
| 195 OBJDIR := $(OBJDIR)+Gplusplus |
| 196 endif |
| 197 |
195 BASE_CXXFLAGS := -std=gnu++11 -Wall -Wextra -Werror -fno-rtti \ | 198 BASE_CXXFLAGS := -std=gnu++11 -Wall -Wextra -Werror -fno-rtti \ |
196 -fno-exceptions $(OPTLEVEL) $(ASSERTIONS) -g -pedantic \ | 199 -fno-exceptions $(OPTLEVEL) $(ASSERTIONS) -g -pedantic \ |
197 $(LLVM_EXTRA_WARNINGS) $(CXX_EXTRA) | 200 $(LLVM_EXTRA_WARNINGS) $(CXX_EXTRA) |
198 | 201 |
199 CXXFLAGS := $(LLVM_CXXFLAGS) $(BASE_CXXFLAGS) $(CXX_DEFINES) $(HOST_FLAGS) \ | 202 CXXFLAGS := $(LLVM_CXXFLAGS) $(BASE_CXXFLAGS) $(CXX_DEFINES) $(HOST_FLAGS) \ |
200 $(STDLIB_FLAGS) | 203 $(STDLIB_FLAGS) |
201 SB_CXXFLAGS := $(SB_LLVM_CXXFLAGS) $(BASE_CXXFLAGS) $(SB_CXX_DEFINES) | 204 SB_CXXFLAGS := $(SB_LLVM_CXXFLAGS) $(BASE_CXXFLAGS) $(SB_CXX_DEFINES) |
202 | 205 |
203 LDFLAGS := $(HOST_FLAGS) -L$(LIBCXX_INSTALL_PATH)/lib -Wl,--gc-sections \ | 206 LDFLAGS := $(HOST_FLAGS) -L$(LIBCXX_INSTALL_PATH)/lib -Wl,--gc-sections \ |
204 $(LD_EXTRA) $(STDLIB_FLAGS) | 207 $(LD_EXTRA) $(STDLIB_FLAGS) |
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
510 @echo See Subzero size breakdown in bloat/pnacl-sz.bloat.html | 513 @echo See Subzero size breakdown in bloat/pnacl-sz.bloat.html |
511 | 514 |
512 docs: | 515 docs: |
513 make -C docs -f Makefile.standalone | 516 make -C docs -f Makefile.standalone |
514 | 517 |
515 clean: | 518 clean: |
516 rm -rf pnacl-sz *.o $(OBJDIR) $(SB_OBJDIR) build/pnacl-sz.bloat.json | 519 rm -rf pnacl-sz *.o $(OBJDIR) $(SB_OBJDIR) build/pnacl-sz.bloat.json |
517 | 520 |
518 clean-all: clean | 521 clean-all: clean |
519 rm -rf build/ crosstest/Output/ | 522 rm -rf build/ crosstest/Output/ |
OLD | NEW |