|
1 # |
|
2 # Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. |
|
3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
|
4 # |
|
5 # This code is free software; you can redistribute it and/or modify it |
|
6 # under the terms of the GNU General Public License version 2 only, as |
|
7 # published by the Free Software Foundation. |
|
8 # |
|
9 # This code is distributed in the hope that it will be useful, but WITHOUT |
|
10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
11 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
12 # version 2 for more details (a copy is included in the LICENSE file that |
|
13 # accompanied this code). |
|
14 # |
|
15 # You should have received a copy of the GNU General Public License version |
|
16 # 2 along with this work; if not, write to the Free Software Foundation, |
|
17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
|
18 # |
|
19 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
|
20 # or visit www.oracle.com if you need additional information or have any |
|
21 # questions. |
|
22 # |
|
23 # |
|
24 |
|
25 OS_VENDOR = $(shell uname -s) |
|
26 |
|
27 #------------------------------------------------------------------------ |
|
28 # CC, CXX & AS |
|
29 |
|
30 # If a SPEC is not set already, then use these defaults. |
|
31 ifeq ($(SPEC),) |
|
32 # When cross-compiling the ALT_COMPILER_PATH points |
|
33 # to the cross-compilation toolset |
|
34 ifdef CROSS_COMPILE_ARCH |
|
35 CXX = $(ALT_COMPILER_PATH)/g++ |
|
36 CC = $(ALT_COMPILER_PATH)/gcc |
|
37 HOSTCXX = g++ |
|
38 HOSTCC = gcc |
|
39 else ifneq ($(OS_VENDOR), Darwin) |
|
40 CXX = g++ |
|
41 CC = gcc |
|
42 HOSTCXX = $(CXX) |
|
43 HOSTCC = $(CC) |
|
44 endif |
|
45 |
|
46 # i486 hotspot requires -mstackrealign on Darwin. |
|
47 # llvm-gcc supports this in Xcode 3.2.6 and 4.0. |
|
48 # gcc-4.0 supports this on earlier versions. |
|
49 # Prefer llvm-gcc where available. |
|
50 ifeq ($(OS_VENDOR), Darwin) |
|
51 ifeq ($(origin CXX), default) |
|
52 CXX = llvm-g++ |
|
53 endif |
|
54 ifeq ($(origin CC), default) |
|
55 CC = llvm-gcc |
|
56 endif |
|
57 |
|
58 ifeq ($(ARCH), i486) |
|
59 LLVM_SUPPORTS_STACKREALIGN := $(shell \ |
|
60 [ "0"`llvm-gcc -v 2>&1 | grep LLVM | sed -E "s/.*LLVM build ([0-9]+).*/\1/"` -gt "2333" ] \ |
|
61 && echo true || echo false) |
|
62 |
|
63 ifeq ($(LLVM_SUPPORTS_STACKREALIGN), true) |
|
64 CXX32 ?= llvm-g++ |
|
65 CC32 ?= llvm-gcc |
|
66 else |
|
67 CXX32 ?= g++-4.0 |
|
68 CC32 ?= gcc-4.0 |
|
69 endif |
|
70 CXX = $(CXX32) |
|
71 CC = $(CC32) |
|
72 endif |
|
73 |
|
74 ifeq ($(USE_CLANG), true) |
|
75 CXX = clang++ |
|
76 CC = clang |
|
77 endif |
|
78 |
|
79 HOSTCXX = $(CXX) |
|
80 HOSTCC = $(CC) |
|
81 endif |
|
82 |
|
83 AS = $(CC) -c |
|
84 endif |
|
85 |
|
86 ifeq ($(OS_VENDOR), Darwin) |
|
87 ifeq ($(DSYMUTIL),) |
|
88 DSYMUTIL=dsymutil |
|
89 endif |
|
90 endif |
|
91 |
|
92 ifeq ($(USE_CLANG), true) |
|
93 CC_VER_MAJOR := $(shell $(CC) -v 2>&1 | grep version | sed "s/.*version \([0-9]*\.[0-9]*\).*/\1/" | cut -d'.' -f1) |
|
94 CC_VER_MINOR := $(shell $(CC) -v 2>&1 | grep version | sed "s/.*version \([0-9]*\.[0-9]*\).*/\1/" | cut -d'.' -f2) |
|
95 else |
|
96 # -dumpversion in gcc-2.91 shows "egcs-2.91.66". In later version, it only |
|
97 # prints the numbers (e.g. "2.95", "3.2.1") |
|
98 CC_VER_MAJOR := $(shell $(CC) -dumpversion | sed 's/egcs-//' | cut -d'.' -f1) |
|
99 CC_VER_MINOR := $(shell $(CC) -dumpversion | sed 's/egcs-//' | cut -d'.' -f2) |
|
100 endif |
|
101 |
|
102 ifeq ($(USE_CLANG), true) |
|
103 # clang has precompiled headers support by default, but the user can switch |
|
104 # it off by using 'USE_PRECOMPILED_HEADER=0'. |
|
105 ifdef LP64 |
|
106 ifeq ($(USE_PRECOMPILED_HEADER),) |
|
107 USE_PRECOMPILED_HEADER=1 |
|
108 endif |
|
109 else |
|
110 # We don't support precompiled headers on 32-bit builds because there some files are |
|
111 # compiled with -fPIC while others are compiled without (see 'NONPIC_OBJ_FILES' rules.make) |
|
112 # Clang produces an error if the PCH file was compiled with other options than the actual compilation unit. |
|
113 USE_PRECOMPILED_HEADER=0 |
|
114 endif |
|
115 |
|
116 ifeq ($(USE_PRECOMPILED_HEADER),1) |
|
117 |
|
118 ifndef LP64 |
|
119 $(error " Precompiled Headers only supported on 64-bit platforms!") |
|
120 endif |
|
121 |
|
122 PRECOMPILED_HEADER_DIR=. |
|
123 PRECOMPILED_HEADER_SRC=$(GAMMADIR)/src/share/vm/precompiled/precompiled.hpp |
|
124 PRECOMPILED_HEADER=$(PRECOMPILED_HEADER_DIR)/precompiled.hpp.pch |
|
125 |
|
126 PCH_FLAG = -include precompiled.hpp |
|
127 PCH_FLAG/DEFAULT = $(PCH_FLAG) |
|
128 PCH_FLAG/NO_PCH = -DNO_PCH |
|
129 PCH_FLAG/BY_FILE = $(PCH_FLAG/$@)$(PCH_FLAG/DEFAULT$(PCH_FLAG/$@)) |
|
130 |
|
131 VM_PCH_FLAG/LIBJVM = $(PCH_FLAG/BY_FILE) |
|
132 VM_PCH_FLAG/AOUT = |
|
133 VM_PCH_FLAG = $(VM_PCH_FLAG/$(LINK_INTO)) |
|
134 |
|
135 # We only use precompiled headers for the JVM build |
|
136 CFLAGS += $(VM_PCH_FLAG) |
|
137 |
|
138 # The following files are compiled at various optimization |
|
139 # levels due to optimization issues encountered at the |
|
140 # 'OPT_CFLAGS_DEFAULT' level. The Clang compiler issues a compile |
|
141 # time error if there is an optimization level specification |
|
142 # skew between the PCH file and the C++ file. Especially if the |
|
143 # PCH file is compiled at a higher optimization level than |
|
144 # the C++ file. One solution might be to prepare extra optimization |
|
145 # level specific PCH files for the opt build and use them here, but |
|
146 # it's probably not worth the effort as long as only a few files |
|
147 # need this special handling. |
|
148 PCH_FLAG/loopTransform.o = $(PCH_FLAG/NO_PCH) |
|
149 PCH_FLAG/sharedRuntimeTrig.o = $(PCH_FLAG/NO_PCH) |
|
150 PCH_FLAG/sharedRuntimeTrans.o = $(PCH_FLAG/NO_PCH) |
|
151 PCH_FLAG/unsafe.o = $(PCH_FLAG/NO_PCH) |
|
152 |
|
153 endif |
|
154 else # ($(USE_CLANG), true) |
|
155 # check for precompiled headers support |
|
156 ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 3 \) \| \( \( $(CC_VER_MAJOR) = 3 \) \& \( $(CC_VER_MINOR) \>= 4 \) \))" "0" |
|
157 # Allow the user to turn off precompiled headers from the command line. |
|
158 ifneq ($(USE_PRECOMPILED_HEADER),0) |
|
159 PRECOMPILED_HEADER_DIR=. |
|
160 PRECOMPILED_HEADER_SRC=$(GAMMADIR)/src/share/vm/precompiled/precompiled.hpp |
|
161 PRECOMPILED_HEADER=$(PRECOMPILED_HEADER_DIR)/precompiled.hpp.gch |
|
162 endif |
|
163 endif |
|
164 endif |
|
165 |
|
166 # -DDONT_USE_PRECOMPILED_HEADER will exclude all includes in precompiled.hpp. |
|
167 ifeq ($(USE_PRECOMPILED_HEADER),0) |
|
168 CFLAGS += -DDONT_USE_PRECOMPILED_HEADER |
|
169 endif |
|
170 |
|
171 #------------------------------------------------------------------------ |
|
172 # Compiler flags |
|
173 |
|
174 # position-independent code |
|
175 PICFLAG = -fPIC |
|
176 |
|
177 VM_PICFLAG/LIBJVM = $(PICFLAG) |
|
178 VM_PICFLAG/AOUT = |
|
179 VM_PICFLAG = $(VM_PICFLAG/$(LINK_INTO)) |
|
180 |
|
181 ifeq ($(JVM_VARIANT_ZERO), true) |
|
182 CFLAGS += $(LIBFFI_CFLAGS) |
|
183 endif |
|
184 ifeq ($(JVM_VARIANT_ZEROSHARK), true) |
|
185 CFLAGS += $(LIBFFI_CFLAGS) |
|
186 CFLAGS += $(LLVM_CFLAGS) |
|
187 endif |
|
188 CFLAGS += $(VM_PICFLAG) |
|
189 CFLAGS += -fno-rtti |
|
190 CFLAGS += -fno-exceptions |
|
191 ifeq ($(USE_CLANG),) |
|
192 CFLAGS += -pthread |
|
193 CFLAGS += -fcheck-new |
|
194 # version 4 and above support fvisibility=hidden (matches jni_x86.h file) |
|
195 # except 4.1.2 gives pointless warnings that can't be disabled (afaik) |
|
196 ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 4 \) \| \( \( $(CC_VER_MAJOR) = 4 \) \& \( $(CC_VER_MINOR) \>= 3 \) \))" "0" |
|
197 CFLAGS += -fvisibility=hidden |
|
198 endif |
|
199 else |
|
200 CFLAGS += -fvisibility=hidden |
|
201 endif |
|
202 |
|
203 ifeq ($(USE_CLANG), true) |
|
204 # Before Clang 3.1, we had to pass the stack alignment specification directly to llvm with the help of '-mllvm' |
|
205 # Starting with version 3.1, Clang understands the '-mstack-alignment' (and rejects '-mllvm -stack-alignment') |
|
206 ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 3 \) \| \( \( $(CC_VER_MAJOR) = 3 \) \& \( $(CC_VER_MINOR) \>= 1 \) \))" "0" |
|
207 STACK_ALIGNMENT_OPT = -mno-omit-leaf-frame-pointer -mstack-alignment=16 |
|
208 else |
|
209 STACK_ALIGNMENT_OPT = -mno-omit-leaf-frame-pointer -mllvm -stack-alignment=16 |
|
210 endif |
|
211 endif |
|
212 |
|
213 ARCHFLAG = $(ARCHFLAG/$(BUILDARCH)) |
|
214 ARCHFLAG/i486 = -m32 -march=i586 |
|
215 ARCHFLAG/amd64 = -m64 $(STACK_ALIGNMENT_OPT) |
|
216 ARCHFLAG/ia64 = |
|
217 ARCHFLAG/sparc = -m32 -mcpu=v9 |
|
218 ARCHFLAG/sparcv9 = -m64 -mcpu=v9 |
|
219 ARCHFLAG/zero = $(ZERO_ARCHFLAG) |
|
220 |
|
221 # Darwin-specific build flags |
|
222 ifeq ($(OS_VENDOR), Darwin) |
|
223 # Ineffecient 16-byte stack re-alignment on Darwin/IA32 |
|
224 ARCHFLAG/i486 += -mstackrealign |
|
225 endif |
|
226 |
|
227 CFLAGS += $(ARCHFLAG) |
|
228 AOUT_FLAGS += $(ARCHFLAG) |
|
229 LFLAGS += $(ARCHFLAG) |
|
230 ASFLAGS += $(ARCHFLAG) |
|
231 |
|
232 ifdef E500V2 |
|
233 CFLAGS += -DE500V2 |
|
234 endif |
|
235 |
|
236 # Use C++ Interpreter |
|
237 ifdef CC_INTERP |
|
238 CFLAGS += -DCC_INTERP |
|
239 endif |
|
240 |
|
241 # Keep temporary files (.ii, .s) |
|
242 ifdef NEED_ASM |
|
243 CFLAGS += -save-temps |
|
244 else |
|
245 CFLAGS += -pipe |
|
246 endif |
|
247 |
|
248 # Compiler warnings are treated as errors |
|
249 ifneq ($(COMPILER_WARNINGS_FATAL),false) |
|
250 WARNINGS_ARE_ERRORS = -Werror |
|
251 endif |
|
252 |
|
253 ifeq ($(USE_CLANG), true) |
|
254 # However we need to clean the code up before we can unrestrictedly enable this option with Clang |
|
255 WARNINGS_ARE_ERRORS += -Wno-logical-op-parentheses -Wno-parentheses-equality -Wno-parentheses |
|
256 WARNINGS_ARE_ERRORS += -Wno-switch -Wno-tautological-compare |
|
257 # Not yet supported by clang in Xcode 4.6.2 |
|
258 # WARNINGS_ARE_ERRORS += -Wno-tautological-constant-out-of-range-compare |
|
259 WARNINGS_ARE_ERRORS += -Wno-delete-non-virtual-dtor -Wno-deprecated -Wno-format -Wno-dynamic-class-memaccess |
|
260 WARNINGS_ARE_ERRORS += -Wno-empty-body |
|
261 endif |
|
262 |
|
263 WARNING_FLAGS = -Wpointer-arith -Wsign-compare -Wundef |
|
264 |
|
265 ifeq "$(shell expr \( $(CC_VER_MAJOR) \> 4 \) \| \( \( $(CC_VER_MAJOR) = 4 \) \& \( $(CC_VER_MINOR) \>= 3 \) \))" "0" |
|
266 # Since GCC 4.3, -Wconversion has changed its meanings to warn these implicit |
|
267 # conversions which might affect the values. Only enable it in earlier versions. |
|
268 WARNING_FLAGS = -Wunused-function |
|
269 ifeq ($(USE_CLANG),) |
|
270 WARNING_FLAGS += -Wconversion |
|
271 endif |
|
272 endif |
|
273 |
|
274 CFLAGS_WARN/DEFAULT = $(WARNINGS_ARE_ERRORS) $(WARNING_FLAGS) |
|
275 # Special cases |
|
276 CFLAGS_WARN/BYFILE = $(CFLAGS_WARN/$@)$(CFLAGS_WARN/DEFAULT$(CFLAGS_WARN/$@)) |
|
277 # XXXDARWIN: for _dyld_bind_fully_image_containing_address |
|
278 ifeq ($(OS_VENDOR), Darwin) |
|
279 CFLAGS_WARN/os_bsd.o = $(CFLAGS_WARN/DEFAULT) -Wno-deprecated-declarations |
|
280 endif |
|
281 |
|
282 OPT_CFLAGS/SIZE=-Os |
|
283 OPT_CFLAGS/SPEED=-O3 |
|
284 |
|
285 # Hotspot uses very unstrict aliasing turn this optimization off |
|
286 # This option is added to CFLAGS rather than OPT_CFLAGS |
|
287 # so that OPT_CFLAGS overrides get this option too. |
|
288 CFLAGS += -fno-strict-aliasing |
|
289 |
|
290 # The flags to use for an Optimized g++ build |
|
291 ifeq ($(OS_VENDOR), Darwin) |
|
292 # use -Os by default, unless -O3 can be proved to be worth the cost, as per policy |
|
293 # <http://wikis.sun.com/display/OpenJDK/Mac+OS+X+Port+Compilers> |
|
294 OPT_CFLAGS_DEFAULT ?= SIZE |
|
295 else |
|
296 OPT_CFLAGS_DEFAULT ?= SPEED |
|
297 endif |
|
298 |
|
299 ifdef OPT_CFLAGS |
|
300 ifneq ("$(origin OPT_CFLAGS)", "command line") |
|
301 $(error " Use OPT_EXTRAS instead of OPT_CFLAGS to add extra flags to OPT_CFLAGS.") |
|
302 endif |
|
303 endif |
|
304 |
|
305 OPT_CFLAGS = $(OPT_CFLAGS/$(OPT_CFLAGS_DEFAULT)) $(OPT_EXTRAS) |
|
306 |
|
307 # The gcc compiler segv's on ia64 when compiling bytecodeInterpreter.cpp |
|
308 # if we use expensive-optimizations |
|
309 ifeq ($(BUILDARCH), ia64) |
|
310 OPT_CFLAGS += -fno-expensive-optimizations |
|
311 endif |
|
312 |
|
313 OPT_CFLAGS/NOOPT=-O0 |
|
314 |
|
315 # Work around some compiler bugs. |
|
316 ifeq ($(USE_CLANG), true) |
|
317 ifeq ($(shell expr $(CC_VER_MAJOR) = 4 \& $(CC_VER_MINOR) = 2), 1) |
|
318 OPT_CFLAGS/loopTransform.o += $(OPT_CFLAGS/NOOPT) |
|
319 OPT_CFLAGS/unsafe.o += -O1 |
|
320 endif |
|
321 else |
|
322 # 6835796. Problem in GCC 4.3.0 with mulnode.o optimized compilation. |
|
323 ifeq ($(shell expr $(CC_VER_MAJOR) = 4 \& $(CC_VER_MINOR) = 3), 1) |
|
324 OPT_CFLAGS/mulnode.o += $(OPT_CFLAGS/NOOPT) |
|
325 endif |
|
326 endif |
|
327 |
|
328 # Flags for generating make dependency flags. |
|
329 DEPFLAGS = -MMD -MP -MF $(DEP_DIR)/$(@:%=%.d) |
|
330 ifeq ($(USE_CLANG),) |
|
331 ifneq ($(CC_VER_MAJOR), 2) |
|
332 DEPFLAGS += -fpch-deps |
|
333 endif |
|
334 endif |
|
335 |
|
336 # -DDONT_USE_PRECOMPILED_HEADER will exclude all includes in precompiled.hpp. |
|
337 ifeq ($(USE_PRECOMPILED_HEADER),0) |
|
338 CFLAGS += -DDONT_USE_PRECOMPILED_HEADER |
|
339 endif |
|
340 |
|
341 ifeq ($(OS_VENDOR), Darwin) |
|
342 # Setting these parameters makes it an error to link to macosx APIs that are |
|
343 # newer than the given OS version and makes the linked binaries compatible even |
|
344 # if built on a newer version of the OS. |
|
345 # The expected format is X.Y.Z |
|
346 ifeq ($(MACOSX_VERSION_MIN),) |
|
347 MACOSX_VERSION_MIN=10.7.0 |
|
348 endif |
|
349 # The macro takes the version with no dots, ex: 1070 |
|
350 CFLAGS += -DMAC_OS_X_VERSION_MAX_ALLOWED=$(subst .,,$(MACOSX_VERSION_MIN)) \ |
|
351 -mmacosx-version-min=$(MACOSX_VERSION_MIN) |
|
352 LDFLAGS += -mmacosx-version-min=$(MACOSX_VERSION_MIN) |
|
353 endif |
|
354 |
|
355 |
|
356 #------------------------------------------------------------------------ |
|
357 # Assembler flags |
|
358 |
|
359 # Enforce prerpocessing of .s files |
|
360 ASFLAGS += -x assembler-with-cpp |
|
361 |
|
362 #------------------------------------------------------------------------ |
|
363 # Linker flags |
|
364 |
|
365 # statically link libstdc++.so, work with gcc but ignored by g++ |
|
366 STATIC_STDCXX = -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic |
|
367 |
|
368 ifeq ($(USE_CLANG),) |
|
369 # statically link libgcc and/or libgcc_s, libgcc does not exist before gcc-3.x. |
|
370 ifneq ("${CC_VER_MAJOR}", "2") |
|
371 STATIC_LIBGCC += -static-libgcc |
|
372 endif |
|
373 |
|
374 ifeq ($(BUILDARCH), ia64) |
|
375 LFLAGS += -Wl,-relax |
|
376 endif |
|
377 endif |
|
378 |
|
379 # Use $(MAPFLAG:FILENAME=real_file_name) to specify a map file. |
|
380 MAPFLAG = -Xlinker --version-script=FILENAME |
|
381 |
|
382 # |
|
383 # Shared Library |
|
384 # |
|
385 ifeq ($(OS_VENDOR), Darwin) |
|
386 # Standard linker flags |
|
387 LFLAGS += |
|
388 |
|
389 # The apple linker has its own variant of mapfiles/version-scripts |
|
390 MAPFLAG = -Xlinker -exported_symbols_list -Xlinker FILENAME |
|
391 |
|
392 # Use $(SONAMEFLAG:SONAME=soname) to specify the intrinsic name of a shared obj |
|
393 SONAMEFLAG = |
|
394 |
|
395 # Build shared library |
|
396 SHARED_FLAG = -Wl,-install_name,@rpath/$(@F) -dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $(VM_PICFLAG) |
|
397 |
|
398 # Keep symbols even they are not used |
|
399 #AOUT_FLAGS += -Xlinker -export-dynamic |
|
400 else |
|
401 # Enable linker optimization |
|
402 LFLAGS += -Xlinker -O1 |
|
403 |
|
404 # Use $(SONAMEFLAG:SONAME=soname) to specify the intrinsic name of a shared obj |
|
405 SONAMEFLAG = -Xlinker -soname=SONAME |
|
406 |
|
407 # Build shared library |
|
408 SHARED_FLAG = -shared $(VM_PICFLAG) |
|
409 |
|
410 # Keep symbols even they are not used |
|
411 AOUT_FLAGS += -Xlinker -export-dynamic |
|
412 endif |
|
413 |
|
414 #------------------------------------------------------------------------ |
|
415 # Debug flags |
|
416 |
|
417 ifeq ($(USE_CLANG), true) |
|
418 # Restrict the debug information created by Clang to avoid |
|
419 # too big object files and speed the build up a little bit |
|
420 # (see http://llvm.org/bugs/show_bug.cgi?id=7554) |
|
421 CFLAGS += -flimit-debug-info |
|
422 endif |
|
423 |
|
424 # DEBUG_BINARIES uses full -g debug information for all configs |
|
425 ifeq ($(DEBUG_BINARIES), true) |
|
426 CFLAGS += -g |
|
427 else |
|
428 # Use the stabs format for debugging information (this is the default |
|
429 # on gcc-2.91). It's good enough, has all the information about line |
|
430 # numbers and local variables, and libjvm.so is only about 16M. |
|
431 # Change this back to "-g" if you want the most expressive format. |
|
432 # (warning: that could easily inflate libjvm.so to 150M!) |
|
433 # Note: The Itanium gcc compiler crashes when using -gstabs. |
|
434 DEBUG_CFLAGS/ia64 = -g |
|
435 DEBUG_CFLAGS/amd64 = -g |
|
436 DEBUG_CFLAGS/arm = -g |
|
437 DEBUG_CFLAGS/ppc = -g |
|
438 DEBUG_CFLAGS += $(DEBUG_CFLAGS/$(BUILDARCH)) |
|
439 ifeq ($(DEBUG_CFLAGS/$(BUILDARCH)),) |
|
440 DEBUG_CFLAGS += -gstabs |
|
441 endif |
|
442 |
|
443 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) |
|
444 FASTDEBUG_CFLAGS/ia64 = -g |
|
445 FASTDEBUG_CFLAGS/amd64 = -g |
|
446 FASTDEBUG_CFLAGS/arm = -g |
|
447 FASTDEBUG_CFLAGS/ppc = -g |
|
448 FASTDEBUG_CFLAGS += $(FASTDEBUG_CFLAGS/$(BUILDARCH)) |
|
449 ifeq ($(FASTDEBUG_CFLAGS/$(BUILDARCH)),) |
|
450 ifeq ($(USE_CLANG), true) |
|
451 # Clang doesn't understand -gstabs |
|
452 FASTDEBUG_CFLAGS += -g |
|
453 else |
|
454 FASTDEBUG_CFLAGS += -gstabs |
|
455 endif |
|
456 endif |
|
457 |
|
458 OPT_CFLAGS/ia64 = -g |
|
459 OPT_CFLAGS/amd64 = -g |
|
460 OPT_CFLAGS/arm = -g |
|
461 OPT_CFLAGS/ppc = -g |
|
462 OPT_CFLAGS += $(OPT_CFLAGS/$(BUILDARCH)) |
|
463 ifeq ($(OPT_CFLAGS/$(BUILDARCH)),) |
|
464 ifeq ($(USE_CLANG), true) |
|
465 # Clang doesn't understand -gstabs |
|
466 OPT_CFLAGS += -g |
|
467 else |
|
468 OPT_CFLAGS += -gstabs |
|
469 endif |
|
470 endif |
|
471 endif |
|
472 endif |
|
473 |
|
474 # If we are building HEADLESS, pass on to VM |
|
475 # so it can set the java.awt.headless property |
|
476 ifdef HEADLESS |
|
477 CFLAGS += -DHEADLESS |
|
478 endif |
|
479 |
|
480 # We are building Embedded for a small device |
|
481 # favor code space over speed |
|
482 ifdef MINIMIZE_RAM_USAGE |
|
483 CFLAGS += -DMINIMIZE_RAM_USAGE |
|
484 endif |