|
1 # |
|
2 # Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. |
|
3 # Copyright (c) 2012, 2013 SAP. All rights reserved. |
|
4 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
|
5 # |
|
6 # This code is free software; you can redistribute it and/or modify it |
|
7 # under the terms of the GNU General Public License version 2 only, as |
|
8 # published by the Free Software Foundation. |
|
9 # |
|
10 # This code is distributed in the hope that it will be useful, but WITHOUT |
|
11 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
12 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
13 # version 2 for more details (a copy is included in the LICENSE file that |
|
14 # accompanied this code). |
|
15 # |
|
16 # You should have received a copy of the GNU General Public License version |
|
17 # 2 along with this work; if not, write to the Free Software Foundation, |
|
18 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
|
19 # |
|
20 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
|
21 # or visit www.oracle.com if you need additional information or have any |
|
22 # questions. |
|
23 # |
|
24 # |
|
25 |
|
26 #------------------------------------------------------------------------ |
|
27 # CC, CXX & AS |
|
28 |
|
29 # Set compiler explicitly |
|
30 CXX = $(COMPILER_PATH)xlC_r |
|
31 CC = $(COMPILER_PATH)xlc_r |
|
32 HOSTCXX = $(CXX) |
|
33 HOSTCC = $(CC) |
|
34 |
|
35 AS = $(CC) -c |
|
36 |
|
37 # get xlc version |
|
38 CXX_VERSION := $(shell $(CXX) -qversion 2>&1 | sed -n 's/.*Version: \([0-9.]*\)/\1/p') |
|
39 |
|
40 # xlc 08.00.0000.0023 and higher supports -qtune=balanced |
|
41 CXX_SUPPORTS_BALANCED_TUNING=$(shell if [ $(subst .,,$(CXX_VERSION)) -ge 080000000023 ] ; then echo "true" ; fi) |
|
42 # xlc 10.01 is used with aggressive optimizations to boost performance |
|
43 CXX_IS_V10=$(shell if [ $(subst .,,$(CXX_VERSION)) -ge 100100000000 ] ; then echo "true" ; fi) |
|
44 |
|
45 # check for precompiled headers support |
|
46 |
|
47 # Switch off the precompiled header support. Neither xlC 8.0 nor xlC 10.0 |
|
48 # support precompiled headers. Both "understand" the command line switches "-qusepcomp" and |
|
49 # "-qgenpcomp" but when we specify them the following message is printed: |
|
50 # "1506-755 (W) The -qusepcomp option is not supported in this release." |
|
51 USE_PRECOMPILED_HEADER = 0 |
|
52 ifneq ($(USE_PRECOMPILED_HEADER),0) |
|
53 PRECOMPILED_HEADER_DIR=. |
|
54 PRECOMPILED_HEADER_SRC=$(GAMMADIR)/src/share/vm/precompiled/precompiled.hpp |
|
55 PRECOMPILED_HEADER=$(PRECOMPILED_HEADER_DIR)/precompiled.hpp.gch |
|
56 endif |
|
57 |
|
58 |
|
59 #------------------------------------------------------------------------ |
|
60 # Compiler flags |
|
61 |
|
62 # position-independent code |
|
63 PICFLAG = -qpic=large |
|
64 |
|
65 VM_PICFLAG/LIBJVM = $(PICFLAG) |
|
66 VM_PICFLAG/AOUT = |
|
67 VM_PICFLAG = $(VM_PICFLAG/$(LINK_INTO)) |
|
68 |
|
69 CFLAGS += $(VM_PICFLAG) |
|
70 CFLAGS += -qnortti |
|
71 CFLAGS += -qnoeh |
|
72 |
|
73 CFLAGS += -D_REENTRANT |
|
74 # no xlc counterpart for -fcheck-new |
|
75 # CFLAGS += -fcheck-new |
|
76 |
|
77 ARCHFLAG = -q64 |
|
78 |
|
79 CFLAGS += $(ARCHFLAG) |
|
80 AOUT_FLAGS += $(ARCHFLAG) |
|
81 LFLAGS += $(ARCHFLAG) |
|
82 ASFLAGS += $(ARCHFLAG) |
|
83 |
|
84 # Use C++ Interpreter |
|
85 ifdef CC_INTERP |
|
86 CFLAGS += -DCC_INTERP |
|
87 endif |
|
88 |
|
89 # Keep temporary files (.ii, .s) |
|
90 # no counterpart on xlc for -save-temps, -pipe |
|
91 |
|
92 # Compiler warnings are treated as errors |
|
93 # Do not treat warnings as errors |
|
94 # WARNINGS_ARE_ERRORS = -Werror |
|
95 # Except for a few acceptable ones |
|
96 # ACCEPTABLE_WARNINGS = -Wpointer-arith -Wconversion -Wsign-compare |
|
97 # CFLAGS_WARN/DEFAULT = $(WARNINGS_ARE_ERRORS) $(ACCEPTABLE_WARNINGS) |
|
98 CFLAGS_WARN/COMMON = |
|
99 CFLAGS_WARN/DEFAULT = $(CFLAGS_WARN/COMMON) $(EXTRA_WARNINGS) |
|
100 # Special cases |
|
101 CFLAGS_WARN/BYFILE = $(CFLAGS_WARN/$@)$(CFLAGS_WARN/DEFAULT$(CFLAGS_WARN/$@)) |
|
102 |
|
103 # The flags to use for an optimized build |
|
104 OPT_CFLAGS += -O3 |
|
105 |
|
106 # Hotspot uses very unstrict aliasing turn this optimization off |
|
107 OPT_CFLAGS += -qalias=noansi |
|
108 |
|
109 OPT_CFLAGS/NOOPT=-qnoopt |
|
110 |
|
111 DEPFLAGS = -qmakedep=gcc -MF $(DEP_DIR)/$(@:%=%.d) |
|
112 |
|
113 #------------------------------------------------------------------------ |
|
114 # Linker flags |
|
115 |
|
116 # statically link libstdc++.so, work with gcc but ignored by g++ |
|
117 STATIC_STDCXX = -Wl,-lC_r |
|
118 |
|
119 # Enable linker optimization |
|
120 # no counterpart on xlc for this |
|
121 # LFLAGS += -Xlinker -O1 |
|
122 |
|
123 # Use $(MAPFLAG:FILENAME=real_file_name) to specify a map file. |
|
124 # MAPFLAG = -Xlinker --version-script=FILENAME |
|
125 |
|
126 # Build shared library |
|
127 SHARED_FLAG = -q64 -b64 -bexpall -G -bnoentry -qmkshrobj -brtl -bnolibpath |
|
128 |
|
129 #------------------------------------------------------------------------ |
|
130 # Debug flags |
|
131 |
|
132 # Always compile with '-g' to get symbols in the stacktraces in the hs_err file |
|
133 DEBUG_CFLAGS += -g |
|
134 FASTDEBUG_CFLAGS += -g |
|
135 OPT_CFLAGS += -g |
|
136 |
|
137 # DEBUG_BINARIES overrides everything, use full -g debug information |
|
138 ifeq ($(DEBUG_BINARIES), true) |
|
139 DEBUG_CFLAGS = -g |
|
140 CFLAGS += $(DEBUG_CFLAGS) |
|
141 endif |
|
142 |
|
143 # If we are building HEADLESS, pass on to VM |
|
144 # so it can set the java.awt.headless property |
|
145 ifdef HEADLESS |
|
146 CFLAGS += -DHEADLESS |
|
147 endif |
|
148 |
|
149 # We are building Embedded for a small device |
|
150 # favor code space over speed |
|
151 ifdef MINIMIZE_RAM_USAGE |
|
152 CFLAGS += -DMINIMIZE_RAM_USAGE |
|
153 endif |
|
154 |
|
155 ifdef CROSS_COMPILE_ARCH |
|
156 STRIP = $(ALT_COMPILER_PATH)/strip |
|
157 else |
|
158 STRIP = strip |
|
159 endif |