hotspot/make/bsd/makefiles/defs.make
changeset 20686 1fa9a75192c3
parent 17006 b9bfa72b7dda
child 26691 40ea2c41f53b
equal deleted inserted replaced
20685:2feadfa49bb7 20686:1fa9a75192c3
   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