103 -e "s=^/net/$(HOST)/home/=/home/=" \ 104 -e "s=^/net/$(HOST)/java/=/java/=" \ 105 -e "s=^/net/$(HOST)/lab/=/lab/=" \ 106 ) 107 # Don't use the new value for GAMMADIR unless a file with the new 108 # name actually exists. 109 ifneq ($(wildcard $(NEW_GAMMADIR)),) 110 GAMMADIR := $(NEW_GAMMADIR) 111 endif 112 endif 113 114 endif 115 116 117 # There is a (semi-) regular correspondence between make targets and actions: 118 # 119 # Target Tree Type Build Dir 120 # 121 # debug compiler2 <os>_<arch>_compiler2/debug 122 # fastdebug compiler2 <os>_<arch>_compiler2/fastdebug 123 # jvmg compiler2 <os>_<arch>_compiler2/jvmg 124 # optimized compiler2 <os>_<arch>_compiler2/optimized 125 # profiled compiler2 <os>_<arch>_compiler2/profiled 126 # product compiler2 <os>_<arch>_compiler2/product 127 # 128 # debug1 compiler1 <os>_<arch>_compiler1/debug 129 # fastdebug1 compiler1 <os>_<arch>_compiler1/fastdebug 130 # jvmg1 compiler1 <os>_<arch>_compiler1/jvmg 131 # optimized1 compiler1 <os>_<arch>_compiler1/optimized 132 # profiled1 compiler1 <os>_<arch>_compiler1/profiled 133 # product1 compiler1 <os>_<arch>_compiler1/product 134 # 135 # debugcore core <os>_<arch>_core/debug 136 # fastdebugcore core <os>_<arch>_core/fastdebug 137 # jvmgcore core <os>_<arch>_core/jvmg 138 # optimizedcore core <os>_<arch>_core/optimized 139 # profiledcore core <os>_<arch>_core/profiled 140 # productcore core <os>_<arch>_core/product 141 # 142 # What you get with each target: 143 # 144 # debug* - "thin" libjvm - debug info linked into the gamma launcher 145 # fastdebug* - optimized compile, but with asserts enabled 146 # jvmg* - "fat" libjvm - debug info linked into libjvm.so 147 # optimized* - optimized compile, no asserts 148 # profiled* - gprof 149 # product* - the shippable thing: optimized compile, no asserts, -DPRODUCT 150 151 # This target list needs to be coordinated with the usage message 152 # in the build.sh script: 153 TARGETS = debug jvmg fastdebug optimized profiled product 154 155 SUBDIR_DOCS = $(OSNAME)_$(BUILDARCH)_docs 156 SUBDIRS_C1 = $(addprefix $(OSNAME)_$(BUILDARCH)_compiler1/,$(TARGETS)) 157 SUBDIRS_C2 = $(addprefix $(OSNAME)_$(BUILDARCH)_compiler2/,$(TARGETS)) 158 SUBDIRS_TIERED = $(addprefix $(OSNAME)_$(BUILDARCH)_tiered/,$(TARGETS)) 159 SUBDIRS_CORE = $(addprefix $(OSNAME)_$(BUILDARCH)_core/,$(TARGETS)) 160 161 TARGETS_C2 = $(TARGETS) 162 TARGETS_C1 = $(addsuffix 1,$(TARGETS)) 163 TARGETS_TIERED = $(addsuffix tiered,$(TARGETS)) 164 TARGETS_CORE = $(addsuffix core,$(TARGETS)) 165 166 BUILDTREE_MAKE = $(GAMMADIR)/make/$(OSNAME)/makefiles/buildtree.make 167 BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OSNAME) ARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) 168 BUILDTREE_VARS += HOTSPOT_RELEASE_VERSION=$(HOTSPOT_RELEASE_VERSION) HOTSPOT_BUILD_VERSION=$(HOTSPOT_BUILD_VERSION) JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION) 169 BUILDTREE_VARS += ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS) OBJCOPY=$(OBJCOPY) STRIP_POLICY=$(STRIP_POLICY) ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES) ZIPEXE=$(ZIPEXE) 170 171 BUILDTREE = $(MAKE) -f $(BUILDTREE_MAKE) $(BUILDTREE_VARS) 172 173 #------------------------------------------------------------------------------- 250 $(TARGETS_CORE): $(SUBDIRS_CORE) 251 cd $(OSNAME)_$(BUILDARCH)_core/$(patsubst %core,%,$@) && $(MAKE) $(MFLAGS) 252 ifdef INSTALL 253 cd $(OSNAME)_$(BUILDARCH)_core/$(patsubst %core,%,$@) && $(MAKE) $(MFLAGS) install 254 endif 255 256 # Just build the tree, and nothing else: 257 tree: $(SUBDIRS_C2) 258 tree1: $(SUBDIRS_C1) 259 treecore: $(SUBDIRS_CORE) 260 261 # Doc target. This is the same for all build options. 262 # Hence create a docs directory beside ...$(ARCH)_[...] 263 # We specify 'BUILD_FLAVOR=product' so that the proper 264 # ENABLE_FULL_DEBUG_SYMBOLS value is used. 265 docs: checks 266 $(QUIETLY) mkdir -p $(SUBDIR_DOCS) 267 $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/makefiles/jvmti.make $(MFLAGS) $(BUILDTREE_VARS) JvmtiOutDir=$(SUBDIR_DOCS) BUILD_FLAVOR=product jvmtidocs 268 269 # Synonyms for win32-like targets. 270 compiler2: jvmg product 271 272 compiler1: jvmg1 product1 273 274 core: jvmgcore productcore 275 276 clean_docs: 277 rm -rf $(SUBDIR_DOCS) 278 279 clean_compiler1 clean_compiler2 clean_core: 280 rm -rf $(OSNAME)_$(BUILDARCH)_$(subst clean_,,$@) 281 282 clean: clean_compiler2 clean_compiler1 clean_core clean_docs 283 284 include $(GAMMADIR)/make/cscope.make 285 286 #------------------------------------------------------------------------------- 287 288 .PHONY: $(TARGETS_C2) $(TARGETS_C1) $(TARGETS_CORE) 289 .PHONY: tree tree1 treecore 290 .PHONY: all compiler1 compiler2 core 291 .PHONY: clean clean_compiler1 clean_compiler2 clean_core docs clean_docs 292 .PHONY: checks check_os_version check_j2se_version | 103 -e "s=^/net/$(HOST)/home/=/home/=" \ 104 -e "s=^/net/$(HOST)/java/=/java/=" \ 105 -e "s=^/net/$(HOST)/lab/=/lab/=" \ 106 ) 107 # Don't use the new value for GAMMADIR unless a file with the new 108 # name actually exists. 109 ifneq ($(wildcard $(NEW_GAMMADIR)),) 110 GAMMADIR := $(NEW_GAMMADIR) 111 endif 112 endif 113 114 endif 115 116 117 # There is a (semi-) regular correspondence between make targets and actions: 118 # 119 # Target Tree Type Build Dir 120 # 121 # debug compiler2 <os>_<arch>_compiler2/debug 122 # fastdebug compiler2 <os>_<arch>_compiler2/fastdebug 123 # optimized compiler2 <os>_<arch>_compiler2/optimized 124 # product compiler2 <os>_<arch>_compiler2/product 125 # 126 # debug1 compiler1 <os>_<arch>_compiler1/debug 127 # fastdebug1 compiler1 <os>_<arch>_compiler1/fastdebug 128 # optimized1 compiler1 <os>_<arch>_compiler1/optimized 129 # product1 compiler1 <os>_<arch>_compiler1/product 130 # 131 # debugcore core <os>_<arch>_core/debug 132 # fastdebugcore core <os>_<arch>_core/fastdebug 133 # optimizedcore core <os>_<arch>_core/optimized 134 # productcore core <os>_<arch>_core/product 135 # 136 # What you get with each target: 137 # 138 # debug* - debug compile with asserts enabled 139 # fastdebug* - optimized compile, but with asserts enabled 140 # optimized* - optimized compile, no asserts 141 # product* - the shippable thing: optimized compile, no asserts, -DPRODUCT 142 143 # This target list needs to be coordinated with the usage message 144 # in the build.sh script: 145 TARGETS = debug fastdebug optimized product 146 147 SUBDIR_DOCS = $(OSNAME)_$(BUILDARCH)_docs 148 SUBDIRS_C1 = $(addprefix $(OSNAME)_$(BUILDARCH)_compiler1/,$(TARGETS)) 149 SUBDIRS_C2 = $(addprefix $(OSNAME)_$(BUILDARCH)_compiler2/,$(TARGETS)) 150 SUBDIRS_TIERED = $(addprefix $(OSNAME)_$(BUILDARCH)_tiered/,$(TARGETS)) 151 SUBDIRS_CORE = $(addprefix $(OSNAME)_$(BUILDARCH)_core/,$(TARGETS)) 152 153 TARGETS_C2 = $(TARGETS) 154 TARGETS_C1 = $(addsuffix 1,$(TARGETS)) 155 TARGETS_TIERED = $(addsuffix tiered,$(TARGETS)) 156 TARGETS_CORE = $(addsuffix core,$(TARGETS)) 157 158 BUILDTREE_MAKE = $(GAMMADIR)/make/$(OSNAME)/makefiles/buildtree.make 159 BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OSNAME) ARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) 160 BUILDTREE_VARS += HOTSPOT_RELEASE_VERSION=$(HOTSPOT_RELEASE_VERSION) HOTSPOT_BUILD_VERSION=$(HOTSPOT_BUILD_VERSION) JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION) 161 BUILDTREE_VARS += ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS) OBJCOPY=$(OBJCOPY) STRIP_POLICY=$(STRIP_POLICY) ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES) ZIPEXE=$(ZIPEXE) 162 163 BUILDTREE = $(MAKE) -f $(BUILDTREE_MAKE) $(BUILDTREE_VARS) 164 165 #------------------------------------------------------------------------------- 242 $(TARGETS_CORE): $(SUBDIRS_CORE) 243 cd $(OSNAME)_$(BUILDARCH)_core/$(patsubst %core,%,$@) && $(MAKE) $(MFLAGS) 244 ifdef INSTALL 245 cd $(OSNAME)_$(BUILDARCH)_core/$(patsubst %core,%,$@) && $(MAKE) $(MFLAGS) install 246 endif 247 248 # Just build the tree, and nothing else: 249 tree: $(SUBDIRS_C2) 250 tree1: $(SUBDIRS_C1) 251 treecore: $(SUBDIRS_CORE) 252 253 # Doc target. This is the same for all build options. 254 # Hence create a docs directory beside ...$(ARCH)_[...] 255 # We specify 'BUILD_FLAVOR=product' so that the proper 256 # ENABLE_FULL_DEBUG_SYMBOLS value is used. 257 docs: checks 258 $(QUIETLY) mkdir -p $(SUBDIR_DOCS) 259 $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/makefiles/jvmti.make $(MFLAGS) $(BUILDTREE_VARS) JvmtiOutDir=$(SUBDIR_DOCS) BUILD_FLAVOR=product jvmtidocs 260 261 # Synonyms for win32-like targets. 262 compiler2: debug product 263 264 compiler1: debug1 product1 265 266 core: debugcore productcore 267 268 warn_jvmg_deprecated: 269 echo "Warning: The jvmg target has been replaced with debug" 270 echo "Warning: Please update your usage" 271 272 jvmg: warn_jvmg_deprecated debug 273 274 jvmg1: warn_jvmg_deprecated debug1 275 276 jvmgcore: warn_jvmg_deprecated debugcore 277 278 clean_docs: 279 rm -rf $(SUBDIR_DOCS) 280 281 clean_compiler1 clean_compiler2 clean_core: 282 rm -rf $(OSNAME)_$(BUILDARCH)_$(subst clean_,,$@) 283 284 clean: clean_compiler2 clean_compiler1 clean_core clean_docs 285 286 include $(GAMMADIR)/make/cscope.make 287 288 #------------------------------------------------------------------------------- 289 290 .PHONY: $(TARGETS_C2) $(TARGETS_C1) $(TARGETS_CORE) 291 .PHONY: tree tree1 treecore 292 .PHONY: all compiler1 compiler2 core 293 .PHONY: clean clean_compiler1 clean_compiler2 clean_core docs clean_docs 294 .PHONY: checks check_os_version check_j2se_version |