make/Makefile

changeset 0
f90c822e73f8
child 6876
710a3c8b516e
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/make/Makefile	Wed Apr 27 01:25:04 2016 +0800
     1.3 @@ -0,0 +1,844 @@
     1.4 +#
     1.5 +# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
     1.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     1.7 +#
     1.8 +# This code is free software; you can redistribute it and/or modify it
     1.9 +# under the terms of the GNU General Public License version 2 only, as
    1.10 +# published by the Free Software Foundation.
    1.11 +#
    1.12 +# This code is distributed in the hope that it will be useful, but WITHOUT
    1.13 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    1.14 +# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    1.15 +# version 2 for more details (a copy is included in the LICENSE file that
    1.16 +# accompanied this code).
    1.17 +#
    1.18 +# You should have received a copy of the GNU General Public License version
    1.19 +# 2 along with this work; if not, write to the Free Software Foundation,
    1.20 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    1.21 +#
    1.22 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    1.23 +# or visit www.oracle.com if you need additional information or have any
    1.24 +# questions.
    1.25 +#
    1.26 +#
    1.27 +
    1.28 +# Top level gnumake file for hotspot builds
    1.29 +#
    1.30 +# Default is to build the both product images and construct an export dir.
    1.31 +#  The default export directory name is `pwd`/export-$(PLATFORM).
    1.32 +#
    1.33 +#   Use: 'gnumake help' for more information.
    1.34 +#
    1.35 +# This makefile uses the default settings for where to find compilers and
    1.36 +#    tools, and obeys the ALT_* variable settings used by the other JDK
    1.37 +#    workspaces.
    1.38 +#
    1.39 +
    1.40 +# Expected/optional make variables defined on make command line:
    1.41 +#  LP64=1 or ARCH_DATA_MODEL=64 for 64bit build
    1.42 +#
    1.43 +# Expected/optional make variables or environment variables:
    1.44 +#  ALT_SLASH_JAVA             Location of /java or J:
    1.45 +#  ALT_BOOTDIR                Previous JDK home directory for javac compiler
    1.46 +#  ALT_OUTPUTDIR              Output directory to use for hotspot build
    1.47 +#  ALT_EXPORT_PATH            Directory to export hotspot build to
    1.48 +#  ALT_JDK_IMPORT_PATH        Current JDK build (only for create_jdk rules)
    1.49 +#  ALT_JDK_TARGET_IMPORT_PATH Current JDK build when cross-compiling
    1.50 +#  ALT_BUILD_WIN_SA           Building SA on Windows is disabled by default.
    1.51 +#                             Set ALT_BUILD_WIN_SA=1 to enable building SA on
    1.52 +#                             Windows.
    1.53 +# Version strings and numbers:
    1.54 +#  JDK_VERSION                Current JDK version (e.g. 1.6.0)
    1.55 +#  PREVIOUS_JDK_VERSION       Previous (bootdir) JDK version (e.g. 1.5.0)
    1.56 +#  FULL_VERSION               Full version string to use (e.g. "1.6.0-ea-b42")
    1.57 +#
    1.58 +# Version strings and numbers especially needed on Windows:
    1.59 +#  COOKED_JDK_UPDATE_VERSION  Just the update release number (e.g. 02)
    1.60 +#  COOKED_BUILD_NUMBER        Just the build number (e.g. 42)
    1.61 +#  JDK_MKTG_VERSION           Marketing JDK version (e.g. 6.0)
    1.62 +#  JDK_MAJOR_VERSION          Major number for version (e.g. 1) always 1?
    1.63 +#  JDK_MINOR_VERSION          Minor number for version (e.g. 6)
    1.64 +#  JDK_MICRO_VERSION          Micro number for version (e.g. 0)
    1.65 +#
    1.66 +
    1.67 +# Default is build both product fastdebug and create export area
    1.68 +
    1.69 +# Allow to build HotSpot in local directory from sources specified by GAMMADIR.
    1.70 +# After make/defs.make GAMMADIR is defined.
    1.71 +ifdef GAMMADIR
    1.72 +  ifndef ALT_OUTPUTDIR
    1.73 +    ALT_OUTPUTDIR := $(shell pwd)
    1.74 +  endif
    1.75 +  include $(GAMMADIR)/make/defs.make
    1.76 +else
    1.77 +  include defs.make
    1.78 +endif
    1.79 +
    1.80 +include $(GAMMADIR)/make/altsrc.make
    1.81 +
    1.82 +-include $(HS_ALT_MAKE)/Makefile.make
    1.83 +
    1.84 +ifneq ($(ALT_OUTPUTDIR),)
    1.85 +  ALT_OUT=ALT_OUTPUTDIR=$(ALT_OUTPUTDIR)
    1.86 +else
    1.87 +  ALT_OUT=
    1.88 +endif
    1.89 +
    1.90 +# Typical C1/C2 targets made available with this Makefile
    1.91 +C1_VM_TARGETS=product1 fastdebug1 optimized1 debug1
    1.92 +C2_VM_TARGETS=product  fastdebug  optimized  debug
    1.93 +CORE_VM_TARGETS=productcore fastdebugcore optimizedcore debugcore
    1.94 +ZERO_VM_TARGETS=productzero fastdebugzero optimizedzero debugzero
    1.95 +SHARK_VM_TARGETS=productshark fastdebugshark optimizedshark debugshark
    1.96 +MINIMAL1_VM_TARGETS=productminimal1 fastdebugminimal1 debugminimal1
    1.97 +
    1.98 +COMMON_VM_PRODUCT_TARGETS=product product1 docs export_product
    1.99 +COMMON_VM_FASTDEBUG_TARGETS=fastdebug fastdebug1 docs export_fastdebug
   1.100 +COMMON_VM_DEBUG_TARGETS=debug debug1 docs export_debug
   1.101 +
   1.102 +# JDK directory list
   1.103 +JDK_DIRS=bin include jre lib demo
   1.104 +
   1.105 +all:           all_product all_fastdebug
   1.106 +
   1.107 +ifeq ($(JVM_VARIANT_MINIMAL1),true)
   1.108 +all_product:	productminimal1
   1.109 +all_fastdebug:	fastdebugminimal1
   1.110 +all_debug:	debugminimal1
   1.111 +endif
   1.112 +
   1.113 +ifdef BUILD_CLIENT_ONLY
   1.114 +all_product:   product1 docs export_product
   1.115 +all_fastdebug: fastdebug1 docs export_fastdebug
   1.116 +all_debug:     debug1 docs export_debug
   1.117 +else
   1.118 +ifeq ($(MACOSX_UNIVERSAL),true)
   1.119 +all_product:   universal_product
   1.120 +all_fastdebug: universal_fastdebug
   1.121 +all_debug:     universal_debug
   1.122 +else
   1.123 +all_product:   $(COMMON_VM_PRODUCT_TARGETS)
   1.124 +all_fastdebug: $(COMMON_VM_FASTDEBUG_TARGETS)
   1.125 +all_debug:     $(COMMON_VM_DEBUG_TARGETS)
   1.126 +endif
   1.127 +endif
   1.128 +
   1.129 +all_optimized: optimized optimized1 docs export_optimized
   1.130 +
   1.131 +allzero:           all_productzero all_fastdebugzero
   1.132 +all_productzero:   productzero docs export_product
   1.133 +all_fastdebugzero: fastdebugzero docs export_fastdebug
   1.134 +all_debugzero:     debugzero docs export_debug
   1.135 +all_optimizedzero: optimizedzero docs export_optimized
   1.136 +
   1.137 +allshark:           all_productshark all_fastdebugshark
   1.138 +all_productshark:   productshark docs export_product
   1.139 +all_fastdebugshark: fastdebugshark docs export_fastdebug
   1.140 +all_debugshark:     debugshark docs export_debug
   1.141 +all_optimizedshark: optimizedshark docs export_optimized
   1.142 +
   1.143 +allcore:           all_productcore all_fastdebugcore
   1.144 +all_productcore:   productcore docs export_product
   1.145 +all_fastdebugcore: fastdebugcore docs export_fastdebug
   1.146 +all_debugcore:     debugcore docs export_debug
   1.147 +all_optimizedcore: optimizedcore docs export_optimized
   1.148 +
   1.149 +# Do everything
   1.150 +world:         all create_jdk
   1.151 +
   1.152 +# Build or export docs
   1.153 +docs:
   1.154 +ifeq ($(OSNAME),windows)
   1.155 +	@$(ECHO) "No docs ($(VM_TARGET)) for windows"
   1.156 +else
   1.157 +# We specify 'BUILD_FLAVOR=product' so that the proper
   1.158 +# ENABLE_FULL_DEBUG_SYMBOLS value is used.
   1.159 +	$(CD) $(OUTPUTDIR); \
   1.160 +	    $(MAKE) -f $(ABS_OS_MAKEFILE) \
   1.161 +		      $(MAKE_ARGS) BUILD_FLAVOR=product docs
   1.162 +endif
   1.163 +
   1.164 +# Output directories
   1.165 +C1_DIR      =$(OUTPUTDIR)/$(VM_PLATFORM)_compiler1
   1.166 +C2_DIR      =$(OUTPUTDIR)/$(VM_PLATFORM)_compiler2
   1.167 +CORE_DIR    =$(OUTPUTDIR)/$(VM_PLATFORM)_core
   1.168 +MINIMAL1_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_minimal1
   1.169 +ZERO_DIR    =$(OUTPUTDIR)/$(VM_PLATFORM)_zero
   1.170 +SHARK_DIR   =$(OUTPUTDIR)/$(VM_PLATFORM)_shark
   1.171 +
   1.172 +# Build variation of hotspot
   1.173 +$(C1_VM_TARGETS):
   1.174 +	$(CD) $(GAMMADIR)/make; \
   1.175 +	$(MAKE) BUILD_DIR=$(C1_DIR) BUILD_FLAVOR=$(@:%1=%) VM_TARGET=$@ generic_build1 $(ALT_OUT)
   1.176 +
   1.177 +$(C2_VM_TARGETS):
   1.178 +	$(CD) $(GAMMADIR)/make; \
   1.179 +	$(MAKE) BUILD_DIR=$(C2_DIR) BUILD_FLAVOR=$@ VM_TARGET=$@ generic_build2 $(ALT_OUT)
   1.180 +
   1.181 +$(CORE_VM_TARGETS):
   1.182 +	$(CD) $(GAMMADIR)/make; \
   1.183 +	$(MAKE) BUILD_DIR=$(CORE_DIR) BUILD_FLAVOR=$(@:%core=%) VM_TARGET=$@ generic_buildcore $(ALT_OUT)
   1.184 +
   1.185 +$(ZERO_VM_TARGETS):
   1.186 +	$(CD) $(GAMMADIR)/make; \
   1.187 +	$(MAKE) BUILD_DIR=$(ZERO_DIR) BUILD_FLAVOR=$(@:%zero=%) VM_TARGET=$@ generic_buildzero $(ALT_OUT)
   1.188 +
   1.189 +$(SHARK_VM_TARGETS):
   1.190 +	$(CD) $(GAMMADIR)/make; \
   1.191 +	$(MAKE) BUILD_DIR=$(SHARK_DIR) BUILD_FLAVOR=$(@:%shark=%) VM_TARGET=$@ generic_buildshark $(ALT_OUT)
   1.192 +
   1.193 +$(MINIMAL1_VM_TARGETS):
   1.194 +	$(CD) $(GAMMADIR)/make; \
   1.195 +	$(MAKE) BUILD_DIR=$(MINIMAL1_DIR) BUILD_FLAVOR=$(@:%minimal1=%) VM_TARGET=$@ generic_buildminimal1 $(ALT_OUT)
   1.196 +
   1.197 +# Install hotspot script in build directory
   1.198 +HOTSPOT_SCRIPT=$(BUILD_DIR)/$(BUILD_FLAVOR)/hotspot
   1.199 +$(HOTSPOT_SCRIPT): $(GAMMADIR)/make/hotspot.script
   1.200 +	$(QUIETLY) $(MKDIR) -p $(BUILD_DIR)/$(BUILD_FLAVOR)
   1.201 +	$(QUIETLY) cat $< | sed -e 's|@@LIBARCH@@|$(LIBARCH)|g' | sed -e 's|@@JDK_IMPORT_PATH@@|$(JDK_IMPORT_PATH)|g' > $@
   1.202 +	$(QUIETLY) chmod +x $@
   1.203 +
   1.204 +# Build compiler1 (client) rule, different for platforms
   1.205 +generic_build1: $(HOTSPOT_SCRIPT)
   1.206 +	$(MKDIR) -p $(OUTPUTDIR)
   1.207 +ifeq ($(OSNAME),windows)
   1.208 +  ifeq ($(ARCH_DATA_MODEL), 32)
   1.209 +	$(CD) $(OUTPUTDIR); \
   1.210 +	    $(NMAKE) -f $(ABS_OS_MAKEFILE) \
   1.211 +		      Variant=compiler1 \
   1.212 +                      WorkSpace=$(ABS_GAMMADIR) \
   1.213 +		      BootStrapDir=$(ABS_BOOTDIR) \
   1.214 +                      BuildUser=$(USERNAME) \
   1.215 +		      $(MAKE_ARGS) $(VM_TARGET:%1=%)
   1.216 +  else
   1.217 +	@$(ECHO) "No compiler1 ($(VM_TARGET)) for ARCH_DATA_MODEL=$(ARCH_DATA_MODEL)"
   1.218 +  endif
   1.219 +else
   1.220 +  ifeq ($(ARCH_DATA_MODEL), 32)
   1.221 +	$(CD) $(OUTPUTDIR); \
   1.222 +	    $(MAKE) -f $(ABS_OS_MAKEFILE) \
   1.223 +		      $(MAKE_ARGS) $(VM_TARGET)
   1.224 +  else
   1.225 +	@$(ECHO) "No compiler1 ($(VM_TARGET)) for ARCH_DATA_MODEL=$(ARCH_DATA_MODEL)"
   1.226 +  endif
   1.227 +endif
   1.228 +
   1.229 +# Build compiler2 (server) rule, different for platforms
   1.230 +generic_build2: $(HOTSPOT_SCRIPT)
   1.231 +	$(MKDIR) -p $(OUTPUTDIR)
   1.232 +ifeq ($(OSNAME),windows)
   1.233 +	$(CD) $(OUTPUTDIR); \
   1.234 +	    $(NMAKE) -f $(ABS_OS_MAKEFILE) \
   1.235 +		      Variant=compiler2 \
   1.236 +                      WorkSpace=$(ABS_GAMMADIR) \
   1.237 +		      BootStrapDir=$(ABS_BOOTDIR) \
   1.238 +                      BuildUser=$(USERNAME) \
   1.239 +		      $(MAKE_ARGS) $(VM_TARGET)
   1.240 +else
   1.241 +	$(CD) $(OUTPUTDIR); \
   1.242 +	    $(MAKE) -f $(ABS_OS_MAKEFILE) \
   1.243 +		      $(MAKE_ARGS) $(VM_TARGET)
   1.244 +endif
   1.245 +
   1.246 +generic_buildcore: $(HOTSPOT_SCRIPT)
   1.247 +ifeq ($(HS_ARCH),ppc)
   1.248 +  ifeq ($(ARCH_DATA_MODEL),64)
   1.249 +	$(MKDIR) -p $(OUTPUTDIR)
   1.250 +	$(CD) $(OUTPUTDIR); \
   1.251 +		$(MAKE) -f $(ABS_OS_MAKEFILE) \
   1.252 +			$(MAKE_ARGS) $(VM_TARGET)
   1.253 +  else
   1.254 +	@$(ECHO) "No ($(VM_TARGET)) for ppc ARCH_DATA_MODEL=$(ARCH_DATA_MODEL)"
   1.255 +  endif
   1.256 +else
   1.257 +	@$(ECHO) "No ($(VM_TARGET)) for $(HS_ARCH)"
   1.258 +endif
   1.259 +
   1.260 +generic_buildzero: $(HOTSPOT_SCRIPT)
   1.261 +	$(MKDIR) -p $(OUTPUTDIR)
   1.262 +	$(CD) $(OUTPUTDIR); \
   1.263 +		$(MAKE) -f $(ABS_OS_MAKEFILE) \
   1.264 +			$(MAKE_ARGS) $(VM_TARGET)
   1.265 +
   1.266 +generic_buildshark: $(HOTSPOT_SCRIPT)
   1.267 +	$(MKDIR) -p $(OUTPUTDIR)
   1.268 +	$(CD) $(OUTPUTDIR); \
   1.269 +		$(MAKE) -f $(ABS_OS_MAKEFILE) \
   1.270 +			$(MAKE_ARGS) $(VM_TARGET)
   1.271 +
   1.272 +generic_buildminimal1: $(HOTSPOT_SCRIPT)
   1.273 +ifeq ($(JVM_VARIANT_MINIMAL1),true)
   1.274 +	$(MKDIR) -p $(OUTPUTDIR)
   1.275 +  ifeq ($(ARCH_DATA_MODEL), 32)
   1.276 +    ifeq ($(OSNAME),windows)
   1.277 +	$(ECHO) "No ($(VM_TARGET)) for $(OSNAME) ARCH_DATA_MODEL=$(ARCH_DATA_MODEL)" ;
   1.278 +    else
   1.279 +      ifeq ($(OSNAME),solaris)
   1.280 +	$(ECHO) "No ($(VM_TARGET)) for $(OSNAME) ARCH_DATA_MODEL=$(ARCH_DATA_MODEL)" ;
   1.281 +      else
   1.282 +	$(CD) $(OUTPUTDIR); \
   1.283 +	$(MAKE) -f $(ABS_OS_MAKEFILE) $(MAKE_ARGS) $(VM_TARGET) ;
   1.284 +      endif
   1.285 +    endif
   1.286 +  else
   1.287 +	    @$(ECHO) "No ($(VM_TARGET)) for $(OSNAME) ARCH_DATA_MODEL=$(ARCH_DATA_MODEL)"
   1.288 +  endif
   1.289 +else
   1.290 +	@$(ECHO) "Error: trying to build a minimal target but JVM_VARIANT_MINIMAL1 is not true."
   1.291 +endif
   1.292 +
   1.293 +# Export file rule
   1.294 +generic_export: $(EXPORT_LIST)
   1.295 +
   1.296 +export_product:
   1.297 +	$(MAKE) BUILD_FLAVOR=$(@:export_%=%) generic_export
   1.298 +export_fastdebug:
   1.299 +	$(MAKE) BUILD_FLAVOR=$(@:export_%=%) EXPORT_SUBDIR=/$(@:export_%=%) generic_export
   1.300 +export_debug:
   1.301 +	$(MAKE) BUILD_FLAVOR=$(@:export_%=%) EXPORT_SUBDIR=/$(@:export_%=%) generic_export
   1.302 +export_optimized:
   1.303 +	$(MAKE) BUILD_FLAVOR=$(@:export_%=%) EXPORT_SUBDIR=/$(@:export_%=%) generic_export
   1.304 +
   1.305 +export_product_jdk::
   1.306 +	$(MAKE) BUILD_FLAVOR=$(@:export_%_jdk=%) ALT_EXPORT_PATH=$(JDK_IMAGE_DIR) generic_export
   1.307 +export_optimized_jdk::
   1.308 +	$(MAKE) BUILD_FLAVOR=$(@:export_%_jdk=%) ALT_EXPORT_PATH=$(JDK_IMAGE_DIR) generic_export
   1.309 +export_fastdebug_jdk::
   1.310 +	$(MAKE) BUILD_FLAVOR=$(@:export_%_jdk=%) ALT_EXPORT_PATH=$(JDK_IMAGE_DIR)/$(@:export_%_jdk=%) generic_export
   1.311 +export_debug_jdk::
   1.312 +	$(MAKE) BUILD_FLAVOR=$(@:export_%_jdk=%) ALT_EXPORT_PATH=$(JDK_IMAGE_DIR)/$(@:export_%_jdk=%) generic_export
   1.313 +
   1.314 +# Export file copy rules
   1.315 +XUSAGE=$(HS_SRC_DIR)/share/vm/Xusage.txt
   1.316 +DOCS_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_docs
   1.317 +C1_BUILD_DIR      =$(C1_DIR)/$(BUILD_FLAVOR)
   1.318 +C2_BUILD_DIR      =$(C2_DIR)/$(BUILD_FLAVOR)
   1.319 +CORE_BUILD_DIR    =$(CORE_DIR)/$(BUILD_FLAVOR)
   1.320 +MINIMAL1_BUILD_DIR=$(MINIMAL1_DIR)/$(BUILD_FLAVOR)
   1.321 +ZERO_BUILD_DIR    =$(ZERO_DIR)/$(BUILD_FLAVOR)
   1.322 +SHARK_BUILD_DIR   =$(SHARK_DIR)/$(BUILD_FLAVOR)
   1.323 +
   1.324 +# Server (C2)
   1.325 +ifeq ($(JVM_VARIANT_SERVER), true)
   1.326 +# Common
   1.327 +$(EXPORT_SERVER_DIR)/%.diz:       		$(C2_BUILD_DIR)/%.diz
   1.328 +	$(install-file)
   1.329 +$(EXPORT_LIB_DIR)/%.jar:			$(C2_BUILD_DIR)/../generated/%.jar
   1.330 +	$(install-file)
   1.331 +$(EXPORT_INCLUDE_DIR)/%:			$(C2_BUILD_DIR)/../generated/jvmtifiles/%
   1.332 +	$(install-file)
   1.333 +# Windows
   1.334 +$(EXPORT_SERVER_DIR)/%.dll:			$(C2_BUILD_DIR)/%.dll
   1.335 +	$(install-file)
   1.336 +$(EXPORT_SERVER_DIR)/%.pdb:			$(C2_BUILD_DIR)/%.pdb
   1.337 +	$(install-file)
   1.338 +$(EXPORT_SERVER_DIR)/%.map:			$(C2_BUILD_DIR)/%.map
   1.339 +	$(install-file)
   1.340 +$(EXPORT_LIB_DIR)/%.lib:			$(C2_BUILD_DIR)/%.lib
   1.341 +	$(install-file)
   1.342 +$(EXPORT_JRE_BIN_DIR)/%.diz:			$(C2_BUILD_DIR)/%.diz
   1.343 +	$(install-file)
   1.344 +$(EXPORT_JRE_BIN_DIR)/%.dll:			$(C2_BUILD_DIR)/%.dll
   1.345 +	$(install-file)
   1.346 +$(EXPORT_JRE_BIN_DIR)/%.pdb:			$(C2_BUILD_DIR)/%.pdb
   1.347 +	$(install-file)
   1.348 +$(EXPORT_JRE_BIN_DIR)/%.map:			$(C2_BUILD_DIR)/%.map
   1.349 +	$(install-file)
   1.350 +# Unix
   1.351 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(C2_BUILD_DIR)/%.$(LIBRARY_SUFFIX)
   1.352 +	$(install-file)
   1.353 +$(EXPORT_SERVER_DIR)/%.$(LIBRARY_SUFFIX):       $(C2_BUILD_DIR)/%.$(LIBRARY_SUFFIX)
   1.354 +	$(install-file)
   1.355 +$(EXPORT_SERVER_DIR)/64/%.$(LIBRARY_SUFFIX):    $(C2_BUILD_DIR)/%.$(LIBRARY_SUFFIX)
   1.356 +	$(install-file)
   1.357 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.debuginfo: 	$(C2_BUILD_DIR)/%.debuginfo
   1.358 +	$(install-file)
   1.359 +$(EXPORT_SERVER_DIR)/%.debuginfo:       	$(C2_BUILD_DIR)/%.debuginfo
   1.360 +	$(install-file)
   1.361 +$(EXPORT_SERVER_DIR)/64/%.debuginfo:    	$(C2_BUILD_DIR)/%.debuginfo
   1.362 +	$(install-file)
   1.363 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.diz: 		$(C2_BUILD_DIR)/%.diz
   1.364 +	$(install-file)
   1.365 +$(EXPORT_SERVER_DIR)/64/%.diz:    		$(C2_BUILD_DIR)/%.diz
   1.366 +	$(install-file)
   1.367 +# MacOS X
   1.368 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.dSYM: 		$(C2_BUILD_DIR)/%.dSYM
   1.369 +	$(install-dir)
   1.370 +$(EXPORT_SERVER_DIR)/%.dSYM:       		$(C2_BUILD_DIR)/%.dSYM
   1.371 +	$(install-dir)
   1.372 +endif
   1.373 +
   1.374 +# Client (C1)
   1.375 +ifeq ($(JVM_VARIANT_CLIENT), true)
   1.376 +# Common
   1.377 +$(EXPORT_CLIENT_DIR)/%.diz:       		$(C1_BUILD_DIR)/%.diz
   1.378 +	$(install-file)
   1.379 +$(EXPORT_LIB_DIR)/%.jar:			$(C1_BUILD_DIR)/../generated/%.jar
   1.380 +	$(install-file)
   1.381 +$(EXPORT_INCLUDE_DIR)/%:			$(C1_BUILD_DIR)/../generated/jvmtifiles/%
   1.382 +	$(install-file)
   1.383 +# Windows
   1.384 +$(EXPORT_CLIENT_DIR)/%.dll:			$(C1_BUILD_DIR)/%.dll
   1.385 +	$(install-file)
   1.386 +$(EXPORT_CLIENT_DIR)/%.pdb:			$(C1_BUILD_DIR)/%.pdb
   1.387 +	$(install-file)
   1.388 +$(EXPORT_CLIENT_DIR)/%.map:			$(C1_BUILD_DIR)/%.map
   1.389 +	$(install-file)
   1.390 +$(EXPORT_LIB_DIR)/%.lib:			$(C1_BUILD_DIR)/%.lib
   1.391 +	$(install-file)
   1.392 +$(EXPORT_JRE_BIN_DIR)/%.diz:			$(C1_BUILD_DIR)/%.diz
   1.393 +	$(install-file)
   1.394 +$(EXPORT_JRE_BIN_DIR)/%.dll:			$(C1_BUILD_DIR)/%.dll
   1.395 +	$(install-file)
   1.396 +$(EXPORT_JRE_BIN_DIR)/%.pdb:			$(C1_BUILD_DIR)/%.pdb
   1.397 +	$(install-file)
   1.398 +$(EXPORT_JRE_BIN_DIR)/%.map:			$(C1_BUILD_DIR)/%.map
   1.399 +	$(install-file)
   1.400 +# Unix
   1.401 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(C1_BUILD_DIR)/%.$(LIBRARY_SUFFIX)
   1.402 +	$(install-file)
   1.403 +$(EXPORT_CLIENT_DIR)/%.$(LIBRARY_SUFFIX):       $(C1_BUILD_DIR)/%.$(LIBRARY_SUFFIX)
   1.404 +	$(install-file)
   1.405 +$(EXPORT_CLIENT_DIR)/64/%.$(LIBRARY_SUFFIX):    $(C1_BUILD_DIR)/%.$(LIBRARY_SUFFIX)
   1.406 +	$(install-file)
   1.407 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.debuginfo: 	$(C1_BUILD_DIR)/%.debuginfo
   1.408 +	$(install-file)
   1.409 +$(EXPORT_CLIENT_DIR)/%.debuginfo:       	$(C1_BUILD_DIR)/%.debuginfo
   1.410 +	$(install-file)
   1.411 +$(EXPORT_CLIENT_DIR)/64/%.debuginfo:    	$(C1_BUILD_DIR)/%.debuginfo
   1.412 +	$(install-file)
   1.413 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.diz: 		$(C1_BUILD_DIR)/%.diz
   1.414 +	$(install-file)
   1.415 +$(EXPORT_CLIENT_DIR)/64/%.diz:    		$(C1_BUILD_DIR)/%.diz
   1.416 +	$(install-file)
   1.417 +# MacOS X
   1.418 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.dSYM: 		$(C1_BUILD_DIR)/%.dSYM
   1.419 +	$(install-dir)
   1.420 +$(EXPORT_CLIENT_DIR)/%.dSYM:       		$(C1_BUILD_DIR)/%.dSYM
   1.421 +	$(install-dir)
   1.422 +endif
   1.423 +
   1.424 +# Minimal1
   1.425 +ifeq ($(JVM_VARIANT_MINIMAL1), true)
   1.426 +# Common
   1.427 +$(EXPORT_MINIMAL_DIR)/%.diz:			$(MINIMAL1_BUILD_DIR)/%.diz
   1.428 +	$(install-file)
   1.429 +$(EXPORT_LIB_DIR)/%.jar:			$(MINIMAL1_BUILD_DIR)/../generated/%.jar
   1.430 +	$(install-file)
   1.431 +$(EXPORT_INCLUDE_DIR)/%:			$(MINIMAL1_BUILD_DIR)/../generated/jvmtifiles/%
   1.432 +	$(install-file)
   1.433 +# Windows
   1.434 +$(EXPORT_MINIMAL_DIR)/%.dll:			$(MINIMAL1_BUILD_DIR)/%.dll
   1.435 +	$(install-file)
   1.436 +$(EXPORT_MINIMAL_DIR)/%.pdb:			$(MINIMAL1_BUILD_DIR)/%.pdb
   1.437 +	$(install-file)
   1.438 +$(EXPORT_MINIMAL_DIR)/%.map:			$(MINIMAL1_BUILD_DIR)/%.map
   1.439 +	$(install-file)
   1.440 +$(EXPORT_LIB_DIR)/%.lib:			$(MINIMAL1_BUILD_DIR)/%.lib
   1.441 +	$(install-file)
   1.442 +$(EXPORT_JRE_BIN_DIR)/%.diz:			$(MINIMAL1_BUILD_DIR)/%.diz
   1.443 +	$(install-file)
   1.444 +$(EXPORT_JRE_BIN_DIR)/%.dll:			$(MINIMAL1_BUILD_DIR)/%.dll
   1.445 +	$(install-file)
   1.446 +$(EXPORT_JRE_BIN_DIR)/%.pdb:			$(MINIMAL1_BUILD_DIR)/%.pdb
   1.447 +	$(install-file)
   1.448 +$(EXPORT_JRE_BIN_DIR)/%.map:			$(MINIMAL1_BUILD_DIR)/%.map
   1.449 +	$(install-file)
   1.450 +# Unix
   1.451 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX):	$(MINIMAL1_BUILD_DIR)/%.$(LIBRARY_SUFFIX)
   1.452 +	$(install-file)
   1.453 +$(EXPORT_MINIMAL_DIR)/%.$(LIBRARY_SUFFIX):	$(MINIMAL1_BUILD_DIR)/%.$(LIBRARY_SUFFIX)
   1.454 +	$(install-file)
   1.455 +$(EXPORT_MINIMAL_DIR)/64/%.$(LIBRARY_SUFFIX):	$(MINIMAL1_BUILD_DIR)/%.$(LIBRARY_SUFFIX)
   1.456 +	$(install-file)
   1.457 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.debuginfo:		$(MINIMAL1_BUILD_DIR)/%.debuginfo
   1.458 +	$(install-file)
   1.459 +$(EXPORT_MINIMAL_DIR)/%.debuginfo:		$(MINIMAL1_BUILD_DIR)/%.debuginfo
   1.460 +	$(install-file)
   1.461 +$(EXPORT_MINIMAL_DIR)/64/%.debuginfo:		$(MINIMAL1_BUILD_DIR)/%.debuginfo
   1.462 +	$(install-file)
   1.463 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.diz:		$(MINIMAL1_BUILD_DIR)/%.diz
   1.464 +	$(install-file)
   1.465 +$(EXPORT_MINIMAL_DIR)/64/%.diz:			$(MINIMAL1_BUILD_DIR)/%.diz
   1.466 +	$(install-file)
   1.467 +# MacOS X does not support Minimal1 config
   1.468 +endif
   1.469 +
   1.470 +# Zero
   1.471 +ifeq ($(JVM_VARIANT_ZERO), true)
   1.472 +# Common
   1.473 +$(EXPORT_LIB_DIR)/%.jar:			$(ZERO_BUILD_DIR)/../generated/%.jar
   1.474 +	$(install-file)
   1.475 +$(EXPORT_INCLUDE_DIR)/%:			$(ZERO_BUILD_DIR)/../generated/jvmtifiles/%
   1.476 +	$(install-file)
   1.477 +# Unix
   1.478 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(ZERO_BUILD_DIR)/%.$(LIBRARY_SUFFIX)
   1.479 +	$(install-file)
   1.480 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.debuginfo:		$(ZERO_BUILD_DIR)/%.debuginfo
   1.481 +	$(install-file)
   1.482 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.diz:		$(ZERO_BUILD_DIR)/%.diz
   1.483 +	$(install-file)
   1.484 +$(EXPORT_SERVER_DIR)/%.$(LIBRARY_SUFFIX):       $(ZERO_BUILD_DIR)/%.$(LIBRARY_SUFFIX)
   1.485 +	$(install-file)
   1.486 +$(EXPORT_SERVER_DIR)/%.debuginfo:		$(ZERO_BUILD_DIR)/%.debuginfo
   1.487 +	$(install-file)
   1.488 +$(EXPORT_SERVER_DIR)/%.diz:			$(ZERO_BUILD_DIR)/%.diz
   1.489 +	$(install-file)
   1.490 +# MacOS X
   1.491 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.dSYM: 		$(ZERO_BUILD_DIR)/%.dSYM
   1.492 +	$(install-dir)
   1.493 +$(EXPORT_SERVER_DIR)/%.dSYM:			$(ZERO_BUILD_DIR)/%.dSYM
   1.494 +	$(install-dir)
   1.495 +endif
   1.496 +
   1.497 +# Core
   1.498 +ifeq ($(JVM_VARIANT_CORE), true)
   1.499 +# Common
   1.500 +$(EXPORT_LIB_DIR)/%.jar:			$(CORE_BUILD_DIR)/../generated/%.jar
   1.501 +	$(install-file)
   1.502 +$(EXPORT_INCLUDE_DIR)/%:			$(CORE_BUILD_DIR)/../generated/jvmtifiles/%
   1.503 +	$(install-file)
   1.504 +# Unix
   1.505 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX):	$(CORE_BUILD_DIR)/%.$(LIBRARY_SUFFIX)
   1.506 +	$(install-file)
   1.507 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.debuginfo:		$(CORE_BUILD_DIR)/%.debuginfo
   1.508 +	$(install-file)
   1.509 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.diz:		$(CORE_BUILD_DIR)/%.diz
   1.510 +	$(install-file)
   1.511 +$(EXPORT_SERVER_DIR)/%.$(LIBRARY_SUFFIX):	$(CORE_BUILD_DIR)/%.$(LIBRARY_SUFFIX)
   1.512 +	$(install-file)
   1.513 +$(EXPORT_SERVER_DIR)/%.debuginfo:		$(CORE_BUILD_DIR)/%.debuginfo
   1.514 +	$(install-file)
   1.515 +$(EXPORT_SERVER_DIR)/%.diz:			$(CORE_BUILD_DIR)/%.diz
   1.516 +	$(install-file)
   1.517 +endif
   1.518 +
   1.519 +# Shark
   1.520 +ifeq ($(JVM_VARIANT_ZEROSHARK), true)
   1.521 +# Common
   1.522 +$(EXPORT_LIB_DIR)/%.jar:			$(SHARK_BUILD_DIR)/../generated/%.jar
   1.523 +	$(install-file)
   1.524 +$(EXPORT_INCLUDE_DIR)/%:			$(SHARK_BUILD_DIR)/../generated/jvmtifiles/%
   1.525 +	$(install-file)
   1.526 +# Unix
   1.527 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(SHARK_BUILD_DIR)/%.$(LIBRARY_SUFFIX)
   1.528 +	$(install-file)
   1.529 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.debuginfo):	$(SHARK_BUILD_DIR)/%.debuginfo
   1.530 +	$(install-file)
   1.531 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.diz:		$(SHARK_BUILD_DIR)/%.diz
   1.532 +	$(install-file)
   1.533 +$(EXPORT_SERVER_DIR)/%.$(LIBRARY_SUFFIX):       $(SHARK_BUILD_DIR)/%.$(LIBRARY_SUFFIX)
   1.534 +	$(install-file)
   1.535 +$(EXPORT_SERVER_DIR)/%.debuginfo:		$(SHARK_BUILD_DIR)/%.debuginfo
   1.536 +	$(install-file)
   1.537 +$(EXPORT_SERVER_DIR)/%.diz:			$(SHARK_BUILD_DIR)/%.diz
   1.538 +	$(install-file)
   1.539 +# MacOS X
   1.540 +$(EXPORT_JRE_LIB_ARCH_DIR)/%.dSYM: 		$(SHARK_BUILD_DIR)/%.dSYM
   1.541 +	$(install-dir)
   1.542 +$(EXPORT_SERVER_DIR)/%.dSYM:			$(SHARK_BUILD_DIR)/%.dSYM
   1.543 +	$(install-dir)
   1.544 +endif
   1.545 +
   1.546 +$(EXPORT_INCLUDE_DIR)/%: $(HS_SRC_DIR)/share/vm/code/%
   1.547 +	$(install-file)
   1.548 +
   1.549 +$(EXPORT_INCLUDE_DIR)/%: $(HS_SRC_DIR)/share/vm/prims/%
   1.550 +	$(install-file)
   1.551 +
   1.552 +HS_JNI_ARCH_SRC=$(call altsrc-replace,$(HS_COMMON_SRC)/cpu/$(HS_ARCH)/vm/jni_$(HS_ARCH).h)
   1.553 +$(EXPORT_INCLUDE_DIR)/$(JDK_INCLUDE_SUBDIR)/jni_md.h: $(HS_JNI_ARCH_SRC)
   1.554 +	$(install-file)
   1.555 +
   1.556 +$(EXPORT_INCLUDE_DIR)/%: $(HS_SRC_DIR)/share/vm/services/%
   1.557 +	$(install-file)
   1.558 +
   1.559 +JFR_EXISTS=$(shell if [ -d $(HS_ALT_SRC) ]; then echo 1; else echo 0; fi)
   1.560 +# export jfr.h
   1.561 +ifeq ($JFR_EXISTS,1)
   1.562 +$(EXPORT_INCLUDE_DIR)/%: $(HS_ALT_SRC)/share/vm/jfr/%
   1.563 +	$(install-file)
   1.564 +else
   1.565 +$(EXPORT_INCLUDE_DIR)/jfr.h:
   1.566 +endif
   1.567 +
   1.568 +# Doc files (jvmti.html)
   1.569 +$(EXPORT_DOCS_DIR)/platform/jvmti/%: $(DOCS_DIR)/%
   1.570 +	$(install-file)
   1.571 +
   1.572 +# Xusage file
   1.573 +$(EXPORT_SERVER_DIR)/Xusage.txt $(EXPORT_CLIENT_DIR)/Xusage.txt $(EXPORT_MINIMAL_DIR)/Xusage.txt: $(XUSAGE)
   1.574 +	$(prep-target)
   1.575 +	$(RM) $@.temp
   1.576 +	$(SED) 's/\(separated by \)[;:]/\1$(PATH_SEP)/g' $< > $@.temp
   1.577 +	$(MV) $@.temp $@
   1.578 +
   1.579 +#
   1.580 +# Clean rules
   1.581 +#
   1.582 +clobber clean: clean_build clean_export clean_jdk
   1.583 +clean_build:
   1.584 +	$(RM) -r $(C1_DIR)
   1.585 +	$(RM) -r $(C2_DIR)
   1.586 +	$(RM) -r $(CORE_DIR)
   1.587 +	$(RM) -r $(ZERO_DIR)
   1.588 +	$(RM) -r $(SHARK_DIR)
   1.589 +	$(RM) -r $(MINIMAL1_DIR)
   1.590 +clean_export:
   1.591 +	$(RM) -r $(EXPORT_PATH)
   1.592 +clean_jdk:
   1.593 +	$(RM) -r $(JDK_IMAGE_DIR)
   1.594 +
   1.595 +#
   1.596 +# Create JDK and place this build into it
   1.597 +#
   1.598 +create_jdk: copy_jdk update_jdk
   1.599 +
   1.600 +update_jdk: export_product_jdk export_fastdebug_jdk test_jdk
   1.601 +
   1.602 +copy_jdk: $(JDK_IMAGE_DIR)/jre/lib/rt.jar
   1.603 +
   1.604 +$(JDK_IMAGE_DIR)/jre/lib/rt.jar:
   1.605 +	$(RM) -r $(JDK_IMAGE_DIR)
   1.606 +	$(MKDIR) -p $(JDK_IMAGE_DIR)
   1.607 +	($(CD) $(JDK_IMPORT_PATH) && \
   1.608 +	 $(TAR) -cf - *) | \
   1.609 +	 ($(CD) $(JDK_IMAGE_DIR) && $(TAR) -xf -)
   1.610 +
   1.611 +
   1.612 +# Testing the built JVM
   1.613 +RUN_JVM=JAVA_HOME=$(JDK_IMPORT_PATH) $(JDK_IMPORT_PATH)/bin/java -d$(ARCH_DATA_MODEL) -Dsun.java.launcher=gamma
   1.614 +generic_test:
   1.615 +	@$(ECHO) "Running with: $(ALTJVM_DIR)"
   1.616 +	@$(RUN_JVM) -XXaltjvm=$(ALTJVM_DIR) -Xinternalversion
   1.617 +	@$(RUN_JVM) -XXaltjvm=$(ALTJVM_DIR) -showversion -help
   1.618 +
   1.619 +# C2 test targets
   1.620 +test_product test_optimized test_fastdebug test_debug:
   1.621 +	@$(MAKE) generic_test ALTJVM_DIR="$(C2_DIR)/$(@:test_%=%)"
   1.622 +
   1.623 +# C1 test targets
   1.624 +test_product1 test_optimized1 test_fastdebug1 test_debug1:
   1.625 +  ifeq ($(ARCH_DATA_MODEL), 32)
   1.626 +	@$(MAKE) generic_test ALTJVM_DIR="$(C1_DIR)/$(@:test_%1=%)"
   1.627 +  else
   1.628 +	@$(ECHO) "No compiler1 ($(@:test_%=%)) for ARCH_DATA_MODEL=$(ARCH_DATA_MODEL)"
   1.629 +  endif
   1.630 +
   1.631 +# Zero test targets
   1.632 +test_productzero test_optimizedzero test_fastdebugzero test_debugzero:
   1.633 +	@$(MAKE) generic_test ALTJVM_DIR="$(ZERO_DIR)/$(@:test_%zero=%)"
   1.634 +
   1.635 +# Shark test targets
   1.636 +test_productshark test_optimizedshark test_fastdebugshark test_debugshark:
   1.637 +	@$(MAKE) generic_test ALTJVM_DIR="$(SHARK_DIR)/$(@:test_%shark=%)"
   1.638 +
   1.639 +# Minimal1 test targets
   1.640 +test_productminimal1 test_optimizedminimal1 test_fastdebugminimal1 test_debugminimal1:
   1.641 +	@$(MAKE) generic_test ALTJVM_DIR="$(MINIMAL1_DIR)/$(@:test_%minimal1=%)"
   1.642 +
   1.643 +
   1.644 +test_jdk:
   1.645 +  ifeq ($(JVM_VARIANT_CLIENT), true)
   1.646 +	$(JDK_IMAGE_DIR)/bin/java -d$(ARCH_DATA_MODEL) -client -Xinternalversion
   1.647 +	$(JDK_IMAGE_DIR)/bin/java -d$(ARCH_DATA_MODEL) -client -version
   1.648 +  endif
   1.649 +  ifeq ($(findstring true, $(JVM_VARIANT_SERVER)\
   1.650 +		$(JVM_VARIANT_ZERO)$(JVM_VARIANT_ZEROSHARK)), true)
   1.651 +	$(JDK_IMAGE_DIR)/bin/java -d$(ARCH_DATA_MODEL) -server -Xinternalversion
   1.652 +	$(JDK_IMAGE_DIR)/bin/java -d$(ARCH_DATA_MODEL) -server -version
   1.653 +  endif
   1.654 +
   1.655 +copy_product_jdk::
   1.656 +	$(RM) -r $(JDK_IMAGE_DIR)
   1.657 +	$(MKDIR) -p $(JDK_IMAGE_DIR)
   1.658 +	($(CD) $(JDK_IMPORT_PATH) && \
   1.659 +	 $(TAR) -cf - $(JDK_DIRS)) | \
   1.660 +	 ($(CD) $(JDK_IMAGE_DIR) && $(TAR) -xf -)
   1.661 +
   1.662 +copy_fastdebug_jdk::
   1.663 +	$(RM) -r $(JDK_IMAGE_DIR)/fastdebug
   1.664 +	$(MKDIR) -p $(JDK_IMAGE_DIR)/fastdebug
   1.665 +	if [ -d $(JDK_IMPORT_PATH)/fastdebug ] ; then \
   1.666 +	  ($(CD) $(JDK_IMPORT_PATH)/fastdebug && \
   1.667 +	   $(TAR) -cf - $(JDK_DIRS)) | \
   1.668 +	   ($(CD) $(JDK_IMAGE_DIR)/fastdebug && $(TAR) -xf -) ; \
   1.669 +	else \
   1.670 +	  ($(CD) $(JDK_IMPORT_PATH) && \
   1.671 +	   $(TAR) -cf - $(JDK_DIRS)) | \
   1.672 +	   ($(CD) $(JDK_IMAGE_DIR)/fastdebug && $(TAR) -xf -) ; \
   1.673 +	fi
   1.674 +
   1.675 +copy_debug_jdk::
   1.676 +	$(RM) -r $(JDK_IMAGE_DIR)/debug
   1.677 +	$(MKDIR) -p $(JDK_IMAGE_DIR)/debug
   1.678 +	if [ -d $(JDK_IMPORT_PATH)/debug ] ; then \
   1.679 +	  ($(CD) $(JDK_IMPORT_PATH)/debug && \
   1.680 +	   $(TAR) -cf - $(JDK_DIRS)) | \
   1.681 +	   ($(CD) $(JDK_IMAGE_DIR)/debug && $(TAR) -xf -) ; \
   1.682 +	elif [ -d $(JDK_IMPORT_PATH)/fastdebug ] ; then \
   1.683 +	  ($(CD) $(JDK_IMPORT_PATH)/fastdebug && \
   1.684 +	   $(TAR) -cf - $(JDK_DIRS)) | \
   1.685 +	   ($(CD) $(JDK_IMAGE_DIR)/debug && $(TAR) -xf -) ; \
   1.686 +	else \
   1.687 +	  ($(CD) $(JDK_IMPORT_PATH) && \
   1.688 +	   $(TAR) -cf - $(JDK_DIRS)) | \
   1.689 +	   ($(CD) $(JDK_IMAGE_DIR)/debug && $(TAR) -xf -) ; \
   1.690 +	fi
   1.691 +
   1.692 +#
   1.693 +# Check target
   1.694 +#
   1.695 +check: variable_check
   1.696 +
   1.697 +#
   1.698 +# Help target
   1.699 +#
   1.700 +help: intro_help target_help variable_help notes_help examples_help
   1.701 +
   1.702 +# Intro help message
   1.703 +intro_help:
   1.704 +	@$(ECHO) \
   1.705 +"Makefile for the Hotspot workspace."
   1.706 +	@$(ECHO) \
   1.707 +"Default behavior is to build and create an export area for the j2se builds."
   1.708 +
   1.709 +# Target help
   1.710 +target_help:
   1.711 +	@$(ECHO) "help:             This help message"
   1.712 +	@$(ECHO) "all:              Same as: all_product all_fastdebug"
   1.713 +	@$(ECHO) "world:            Same as: all create_jdk"
   1.714 +	@$(ECHO) "all_product:      Same as: product product1 export_product"
   1.715 +	@$(ECHO) "all_fastdebug:    Same as: fastdebug fastdebug1 export_fastdebug"
   1.716 +	@$(ECHO) "all_debug:        Same as: debug debug1 export_debug"
   1.717 +	@$(ECHO) "all_optimized:    Same as: optimized optimized1 export_optimized"
   1.718 +	@$(ECHO) "clean:            Clean all areas"
   1.719 +	@$(ECHO) "export_product:   Export product files to EXPORT_PATH"
   1.720 +	@$(ECHO) "export_fastdebug: Export fastdebug files to EXPORT_PATH"
   1.721 +	@$(ECHO) "export_debug:     Export debug files to EXPORT_PATH"
   1.722 +	@$(ECHO) "export_optimized: Export optimized files to EXPORT_PATH"
   1.723 +	@$(ECHO) "create_jdk:       Create JDK image, export all files into it"
   1.724 +	@$(ECHO) "update_jdk:       Update JDK image with fresh exported files"
   1.725 +	@$(ECHO) " "
   1.726 +	@$(ECHO) "Other targets are:"
   1.727 +	@$(ECHO) "   $(C1_VM_TARGETS)"
   1.728 +	@$(ECHO) "   $(C2_VM_TARGETS)"
   1.729 +	@$(ECHO) "   $(MINIMAL1_VM_TARGETS)"
   1.730 +
   1.731 +# Variable help (only common ones used by this workspace)
   1.732 +variable_help: variable_help_intro variable_list variable_help_end
   1.733 +variable_help_intro:
   1.734 +	@$(ECHO) "--- Common Variables ---"
   1.735 +variable_help_end:
   1.736 +	@$(ECHO) " "
   1.737 +	@$(ECHO) "--- Make Arguments ---"
   1.738 +	@$(ECHO) "MAKE_ARGS=$(MAKE_ARGS)"
   1.739 +
   1.740 +# One line descriptions for the variables
   1.741 +SLASH_JAVA.desc            = Root of all build tools, e.g. /java or J:
   1.742 +OUTPUTDIR.desc             = Output directory, default is build/<osname>
   1.743 +BOOTDIR.desc               = JDK used to compile agent java source and test with
   1.744 +JDK_IMPORT_PATH.desc       = Promoted JDK to copy for 'create_jdk'
   1.745 +JDK_IMAGE_DIR.desc         = Directory to place JDK to copy
   1.746 +EXPORT_PATH.desc           = Directory to place files to export for JDK build
   1.747 +
   1.748 +# Make variables to print out (description and value)
   1.749 +VARIABLE_PRINTVAL_LIST +=       \
   1.750 +    SLASH_JAVA                  \
   1.751 +    OUTPUTDIR                   \
   1.752 +    BOOTDIR                     \
   1.753 +    JDK_IMPORT_PATH             \
   1.754 +    JDK_IMAGE_DIR               \
   1.755 +    EXPORT_PATH
   1.756 +
   1.757 +# Make variables that should refer to directories that exist
   1.758 +VARIABLE_CHECKDIR_LIST +=       \
   1.759 +    SLASH_JAVA                  \
   1.760 +    BOOTDIR                     \
   1.761 +    JDK_IMPORT_PATH
   1.762 +
   1.763 +# For pattern rules below, so all are treated the same
   1.764 +DO_PRINTVAL_LIST=$(VARIABLE_PRINTVAL_LIST:%=%.printval)
   1.765 +DO_CHECKDIR_LIST=$(VARIABLE_CHECKDIR_LIST:%=%.checkdir)
   1.766 +
   1.767 +# Complete variable check
   1.768 +variable_check: $(DO_CHECKDIR_LIST)
   1.769 +variable_list: $(DO_PRINTVAL_LIST) variable_check
   1.770 +
   1.771 +# Pattern rule for printing out a variable
   1.772 +%.printval:
   1.773 +	@$(ECHO) "  ALT_$* - $($*.desc)"
   1.774 +	@$(ECHO) "        $*=$($*)"
   1.775 +
   1.776 +# Pattern rule for checking to see if a variable with a directory exists
   1.777 +%.checkdir:
   1.778 +	@if [ ! -d $($*) ] ; then \
   1.779 +	    $(ECHO) "WARNING: $* does not exist, try $(MAKE) sanity"; \
   1.780 +	fi
   1.781 +
   1.782 +# Pattern rule for checking to see if a variable with a file exists
   1.783 +%.checkfil:
   1.784 +	@if [ ! -f $($*) ] ; then \
   1.785 +	    $(ECHO) "WARNING: $* does not exist, try $(MAKE) sanity"; \
   1.786 +	fi
   1.787 +
   1.788 +# Misc notes on help
   1.789 +notes_help:
   1.790 +	@$(ECHO) \
   1.791 +"--- Notes --- "
   1.792 +	@$(ECHO) \
   1.793 +"- JDK_IMPORT_PATH must refer to a compatible build, not all past promoted"
   1.794 +	@$(ECHO) \
   1.795 +"        builds or previous release JDK builds will work."
   1.796 +	@$(ECHO) \
   1.797 +"- The fastest builds have been when the workspace and the BOOTDIR are on"
   1.798 +	@$(ECHO) \
   1.799 +"        local disk."
   1.800 +
   1.801 +examples_help:
   1.802 +	@$(ECHO) \
   1.803 +"--- Examples --- "
   1.804 +	@$(ECHO) \
   1.805 +"  $(MAKE) all"
   1.806 +	@$(ECHO) \
   1.807 +"  $(MAKE) world"
   1.808 +	@$(ECHO) \
   1.809 +"  $(MAKE) ALT_BOOTDIR=/opt/java/jdk$(PREVIOUS_JDK_VERSION)"
   1.810 +	@$(ECHO) \
   1.811 +"  $(MAKE) ALT_JDK_IMPORT_PATH=/opt/java/jdk$(JDK_VERSION)"
   1.812 +
   1.813 +# Universal build support
   1.814 +ifeq ($(OS_VENDOR), Darwin)
   1.815 +ifeq ($(MACOSX_UNIVERSAL),true)
   1.816 +include $(GAMMADIR)/make/$(OSNAME)/makefiles/universal.gmk
   1.817 +endif
   1.818 +endif
   1.819 +
   1.820 +# Compatibility for transition to new naming
   1.821 +warn_jvmg_deprecated:
   1.822 +	echo "Warning: The jvmg target has been replaced with debug"
   1.823 +	echo "Warning: Please update your usage"
   1.824 +
   1.825 +jvmg: warn_jvmg_deprecated debug
   1.826 +
   1.827 +jvmg1: warn_jvmg_deprecated debug1
   1.828 +
   1.829 +jvmgminimal1: warn_jvmg_deprecated debugminimal1
   1.830 +
   1.831 +jvmgcore: warn_jvmg_deprecated debugcore
   1.832 +
   1.833 +jvmgzero: warn_jvmg_deprecated debugzero
   1.834 +
   1.835 +jvmgshark: warn_jvmg_deprecated debugshark
   1.836 +
   1.837 +# JPRT rule to build this workspace
   1.838 +include $(GAMMADIR)/make/jprt.gmk
   1.839 +
   1.840 +.PHONY: all world clobber clean help $(C1_VM_TARGETS) $(C2_VM_TARGETS) \
   1.841 +        $(MINIMAL1_VM_TARGETS) \
   1.842 +	generic_build1 generic_build2 generic_buildminimal1 generic_export \
   1.843 +	export_product export_fastdebug export_debug export_optimized \
   1.844 +	export_jdk_product export_jdk_fastdebug export_jdk_debug \
   1.845 +	create_jdk copy_jdk update_jdk test_jdk \
   1.846 +	copy_product_jdk copy_fastdebug_jdk copy_debug_jdk  \
   1.847 +	$(HS_ALT_MAKE)/Makefile.make

mercurial