comparison make/bsd/makefiles/defs.make @ 13086:096c224171c4

Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/
author Doug Simon <doug.simon@oracle.com>
date Wed, 20 Nov 2013 00:10:38 +0100
parents f509b8f4699b
children d8041d695d19
comparison
equal deleted inserted replaced
12782:92b7ec34ddfa 13086:096c224171c4
134 JVM_VARIANTS:=server 134 JVM_VARIANTS:=server
135 JVM_VARIANT_SERVER:=true 135 JVM_VARIANT_SERVER:=true
136 endif 136 endif
137 endif 137 endif
138 138
139 OS_VENDOR:=$(shell uname -s)
140
141 # determine if HotSpot is being built in JDK6 or earlier version
142 JDK6_OR_EARLIER=0
143 ifeq "$(shell expr \( '$(JDK_MAJOR_VERSION)' != '' \& '$(JDK_MINOR_VERSION)' != '' \& '$(JDK_MICRO_VERSION)' != '' \))" "1"
144 # if the longer variable names (newer build style) are set, then check those
145 ifeq "$(shell expr \( $(JDK_MAJOR_VERSION) = 1 \& $(JDK_MINOR_VERSION) \< 7 \))" "1"
146 JDK6_OR_EARLIER=1
147 endif
148 else
149 # the longer variables aren't set so check the shorter variable names
150 ifeq "$(shell expr \( '$(JDK_MAJOR_VER)' = 1 \& '$(JDK_MINOR_VER)' \< 7 \))" "1"
151 JDK6_OR_EARLIER=1
152 endif
153 endif
154
155 ifeq ($(JDK6_OR_EARLIER),0)
156 # Full Debug Symbols is supported on JDK7 or newer.
157 # The Full Debug Symbols (FDS) default for BUILD_FLAVOR == product
158 # builds is enabled with debug info files ZIP'ed to save space. For
159 # BUILD_FLAVOR != product builds, FDS is always enabled, after all a
160 # debug build without debug info isn't very useful.
161 # The ZIP_DEBUGINFO_FILES option only has meaning when FDS is enabled.
162 #
163 # If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be
164 # disabled for a BUILD_FLAVOR == product build.
165 #
166 # Note: Use of a different variable name for the FDS override option
167 # versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS
168 # versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass
169 # in options via environment variables, use of distinct variables
170 # prevents strange behaviours. For example, in a BUILD_FLAVOR !=
171 # product build, the FULL_DEBUG_SYMBOLS environment variable will be
172 # 0, but the ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If
173 # the same variable name is used, then different values can be picked
174 # up by different parts of the build. Just to be clear, we only need
175 # two variable names because the incoming option value can be
176 # overridden in some situations, e.g., a BUILD_FLAVOR != product
177 # build.
178
179 # Due to the multiple sub-make processes that occur this logic gets
180 # executed multiple times. We reduce the noise by at least checking that
181 # BUILD_FLAVOR has been set.
182 ifneq ($(BUILD_FLAVOR),)
183 ifeq ($(BUILD_FLAVOR), product)
184 FULL_DEBUG_SYMBOLS ?= 1
185 ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
186 else
187 # debug variants always get Full Debug Symbols (if available)
188 ENABLE_FULL_DEBUG_SYMBOLS = 1
189 endif
190 _JUNK_ := $(shell \
191 echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
192 # since objcopy is optional, we set ZIP_DEBUGINFO_FILES later
193
194 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
195 ifeq ($(OS_VENDOR), Darwin)
196 # MacOS X doesn't use OBJCOPY or STRIP_POLICY
197 OBJCOPY=
198 STRIP_POLICY=
199 ZIP_DEBUGINFO_FILES ?= 1
200 else
201 # Default OBJCOPY comes from GNU Binutils on BSD
202 ifeq ($(CROSS_COMPILE_ARCH),)
203 DEF_OBJCOPY=/usr/bin/objcopy
204 else
205 # Assume objcopy is part of the cross-compilation toolset
206 ifneq ($(ALT_COMPILER_PATH),)
207 DEF_OBJCOPY=$(ALT_COMPILER_PATH)/objcopy
208 endif
209 endif
210 OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
211 ifneq ($(ALT_OBJCOPY),)
212 _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
213 OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
214 endif
215
216 ifeq ($(OBJCOPY),)
217 _JUNK_ := $(shell \
218 echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo" \
219 "files. You may need to set ALT_OBJCOPY.")
220 ENABLE_FULL_DEBUG_SYMBOLS=0
221 _JUNK_ := $(shell \
222 echo >&2 "INFO:" \
223 "ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
224 else
225 _JUNK_ := $(shell \
226 echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo" \
227 "files.")
228
229 # Library stripping policies for .debuginfo configs:
230 # all_strip - strips everything from the library
231 # min_strip - strips most stuff from the library; leaves
232 # minimum symbols
233 # no_strip - does not strip the library at all
234 #
235 # Oracle security policy requires "all_strip". A waiver was
236 # granted on 2011.09.01 that permits using "min_strip" in the
237 # Java JDK and Java JRE.
238 #
239 # Currently, STRIP_POLICY is only used when Full Debug Symbols
240 # is enabled.
241 #
242 STRIP_POLICY ?= min_strip
243
244 _JUNK_ := $(shell \
245 echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
246
247 ZIP_DEBUGINFO_FILES ?= 1
248 endif
249
250 _JUNK_ := $(shell \
251 echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)")
252 endif
253 endif # ENABLE_FULL_DEBUG_SYMBOLS=1
254 endif # BUILD_FLAVOR
255 endif # JDK_6_OR_EARLIER
256
139 JDK_INCLUDE_SUBDIR=bsd 257 JDK_INCLUDE_SUBDIR=bsd
140 258
141 # Library suffix 259 # Library suffix
142 OS_VENDOR:=$(shell uname -s)
143 ifeq ($(OS_VENDOR),Darwin) 260 ifeq ($(OS_VENDOR),Darwin)
144 LIBRARY_SUFFIX=dylib 261 LIBRARY_SUFFIX=dylib
145 else 262 else
146 LIBRARY_SUFFIX=so 263 LIBRARY_SUFFIX=so
147 endif 264 endif
148 265
149 EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html 266 EXPORT_LIST += $(EXPORT_DOCS_DIR)/platform/jvmti/jvmti.html
150 267
151 # client and server subdirectories have symbolic links to ../libjsig.so 268 # client and server subdirectories have symbolic links to ../libjsig.so
152 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX) 269 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
270
271 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
272 ifeq ($(ZIP_DEBUGINFO_FILES),1)
273 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.diz
274 else
275 ifeq ($(OS_VENDOR), Darwin)
276 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX).dSYM
277 else
278 EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.debuginfo
279 endif
280 endif
281 endif
282
153 EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server 283 EXPORT_SERVER_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/server
154 EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client 284 EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client
155 EXPORT_MINIMAL_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/minimal 285 EXPORT_MINIMAL_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/minimal
156 286
157 ifeq ($(findstring true, $(JVM_VARIANT_SERVER) $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true) 287 ifeq ($(findstring true, $(JVM_VARIANT_SERVER) $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true)
158 EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt 288 EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
159 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX) 289 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX)
290
291 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
292 ifeq ($(ZIP_DEBUGINFO_FILES),1)
293 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.diz
294 else
295 ifeq ($(OS_VENDOR), Darwin)
296 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.$(LIBRARY_SUFFIX).dSYM
297 else
298 EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.debuginfo
299 endif
300 endif
301 endif
160 endif 302 endif
161 303
162 ifeq ($(JVM_VARIANT_CLIENT),true) 304 ifeq ($(JVM_VARIANT_CLIENT),true)
163 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt 305 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
164 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX) 306 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX)
307
308 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
309 ifeq ($(ZIP_DEBUGINFO_FILES),1)
310 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.diz
311 else
312 ifeq ($(OS_VENDOR), Darwin)
313 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.$(LIBRARY_SUFFIX).dSYM
314 else
315 EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.debuginfo
316 endif
317 endif
318 endif
165 endif 319 endif
166 320
167 ifeq ($(JVM_VARIANT_MINIMAL1),true) 321 ifeq ($(JVM_VARIANT_MINIMAL1),true)
168 EXPORT_LIST += $(EXPORT_MINIMAL_DIR)/Xusage.txt 322 EXPORT_LIST += $(EXPORT_MINIMAL_DIR)/Xusage.txt
169 EXPORT_LIST += $(EXPORT_MINIMAL_DIR)/libjvm.$(LIBRARY_SUFFIX) 323 EXPORT_LIST += $(EXPORT_MINIMAL_DIR)/libjvm.$(LIBRARY_SUFFIX)
170
171 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
172 ifeq ($(ZIP_DEBUGINFO_FILES),1)
173 EXPORT_LIST += $(EXPORT_MINIMAL_DIR)/libjvm.diz
174 else
175 EXPORT_LIST += $(EXPORT_MINIMAL_DIR)/libjvm.debuginfo
176 endif
177 endif
178 endif 324 endif
179 325
180 # Serviceability Binaries 326 # Serviceability Binaries
181 # No SA Support for PPC, IA64, ARM or zero 327 # No SA Support for PPC, IA64, ARM or zero
182 ADD_SA_BINARIES/x86 = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \ 328 ADD_SA_BINARIES/x86 = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \
183 $(EXPORT_LIB_DIR)/sa-jdi.jar 329 $(EXPORT_LIB_DIR)/sa-jdi.jar
330
331 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
332 ifeq ($(ZIP_DEBUGINFO_FILES),1)
333 ADD_SA_BINARIES/x86 += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz
334 else
335 ifeq ($(OS_VENDOR), Darwin)
336 ADD_SA_BINARIES/x86 += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX).dSYM
337 else
338 ADD_SA_BINARIES/x86 += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
339 endif
340 endif
341 endif
342
184 ADD_SA_BINARIES/sparc = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \ 343 ADD_SA_BINARIES/sparc = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \
185 $(EXPORT_LIB_DIR)/sa-jdi.jar 344 $(EXPORT_LIB_DIR)/sa-jdi.jar
186 ADD_SA_BINARIES/universal = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \ 345 ADD_SA_BINARIES/universal = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \
187 $(EXPORT_LIB_DIR)/sa-jdi.jar 346 $(EXPORT_LIB_DIR)/sa-jdi.jar
347
348 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
349 ifeq ($(ZIP_DEBUGINFO_FILES),1)
350 ADD_SA_BINARIES/universal += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz
351 else
352 ifeq ($(OS_VENDOR), Darwin)
353 ADD_SA_BINARIES/universal += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX).dSYM
354 else
355 ADD_SA_BINARIES/universal += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
356 endif
357 endif
358 endif
359
188 ADD_SA_BINARIES/ppc = 360 ADD_SA_BINARIES/ppc =
189 ADD_SA_BINARIES/ia64 = 361 ADD_SA_BINARIES/ia64 =
190 ADD_SA_BINARIES/arm = 362 ADD_SA_BINARIES/arm =
191 ADD_SA_BINARIES/zero = 363 ADD_SA_BINARIES/zero =
192 364
223 UNIVERSAL_LIPO_LIST += $(EXPORT_JRE_LIB_DIR)/client/libjvm.$(LIBRARY_SUFFIX) 395 UNIVERSAL_LIPO_LIST += $(EXPORT_JRE_LIB_DIR)/client/libjvm.$(LIBRARY_SUFFIX)
224 396
225 # Files to simply copy in place 397 # Files to simply copy in place
226 UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/server/Xusage.txt 398 UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/server/Xusage.txt
227 UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/client/Xusage.txt 399 UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/client/Xusage.txt
228 400 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
229 endif 401 ifeq ($(ZIP_DEBUGINFO_FILES),1)
230 endif 402 UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/server/libjvm.diz
403 UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/client/libjvm.diz
404 UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/libjsig.diz
405 UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/libsaproc.diz
406 else
407 UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/server/libjvm.$(LIBRARY_SUFFIX).dSYM
408 UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/client/libjvm.$(LIBRARY_SUFFIX).dSYM
409 UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/libjsig.$(LIBRARY_SUFFIX).dSYM
410 UNIVERSAL_COPY_LIST += $(EXPORT_JRE_LIB_DIR)/libsaproc.$(LIBRARY_SUFFIX).dSYM
411 endif
412 endif
413
414 endif
415 endif