125 ) 126 # Don't use the new value for GAMMADIR unless a file with the new 127 # name actually exists. 128 ifneq ($(wildcard $(NEW_GAMMADIR)),) 129 GAMMADIR := $(NEW_GAMMADIR) 130 endif 131 endif 132 133 endif 134 135 # BUILDARCH is set to "zero" for Zero builds. VARIANTARCH 136 # is used to give the build directories meaningful names. 137 VARIANTARCH = $(subst i386,i486,$(ZERO_LIBARCH)) 138 139 # There is a (semi-) regular correspondence between make targets and actions: 140 # 141 # Target Tree Type Build Dir 142 # 143 # debug compiler2 <os>_<arch>_compiler2/debug 144 # fastdebug compiler2 <os>_<arch>_compiler2/fastdebug 145 # jvmg compiler2 <os>_<arch>_compiler2/jvmg 146 # optimized compiler2 <os>_<arch>_compiler2/optimized 147 # profiled compiler2 <os>_<arch>_compiler2/profiled 148 # product compiler2 <os>_<arch>_compiler2/product 149 # 150 # debug1 compiler1 <os>_<arch>_compiler1/debug 151 # fastdebug1 compiler1 <os>_<arch>_compiler1/fastdebug 152 # jvmg1 compiler1 <os>_<arch>_compiler1/jvmg 153 # optimized1 compiler1 <os>_<arch>_compiler1/optimized 154 # profiled1 compiler1 <os>_<arch>_compiler1/profiled 155 # product1 compiler1 <os>_<arch>_compiler1/product 156 # 157 # debugcore core <os>_<arch>_core/debug 158 # fastdebugcore core <os>_<arch>_core/fastdebug 159 # jvmgcore core <os>_<arch>_core/jvmg 160 # optimizedcore core <os>_<arch>_core/optimized 161 # profiledcore core <os>_<arch>_core/profiled 162 # productcore core <os>_<arch>_core/product 163 # 164 # debugzero zero <os>_<arch>_zero/debug 165 # fastdebugzero zero <os>_<arch>_zero/fastdebug 166 # jvmgzero zero <os>_<arch>_zero/jvmg 167 # optimizedzero zero <os>_<arch>_zero/optimized 168 # profiledzero zero <os>_<arch>_zero/profiled 169 # productzero zero <os>_<arch>_zero/product 170 # 171 # debugshark shark <os>_<arch>_shark/debug 172 # fastdebugshark shark <os>_<arch>_shark/fastdebug 173 # jvmgshark shark <os>_<arch>_shark/jvmg 174 # optimizedshark shark <os>_<arch>_shark/optimized 175 # profiledshark shark <os>_<arch>_shark/profiled 176 # productshark shark <os>_<arch>_shark/product 177 # 178 # fastdebugminimal1 minimal1 <os>_<arch>_minimal1/fastdebug 179 # jvmgminimal1 minimal1 <os>_<arch>_minimal1/jvmg 180 # productminimal1 minimal1 <os>_<arch>_minimal1/product 181 # 182 # What you get with each target: 183 # 184 # debug* - "thin" libjvm - debug info linked into the gamma launcher 185 # fastdebug* - optimized compile, but with asserts enabled 186 # jvmg* - "fat" libjvm - debug info linked into libjvm.so 187 # optimized* - optimized compile, no asserts 188 # profiled* - gprof 189 # product* - the shippable thing: optimized compile, no asserts, -DPRODUCT 190 191 # This target list needs to be coordinated with the usage message 192 # in the build.sh script: 193 TARGETS = debug jvmg fastdebug optimized profiled product 194 195 ifeq ($(findstring true, $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true) 196 SUBDIR_DOCS = $(OSNAME)_$(VARIANTARCH)_docs 197 else 198 SUBDIR_DOCS = $(OSNAME)_$(BUILDARCH)_docs 199 endif 200 SUBDIRS_C1 = $(addprefix $(OSNAME)_$(BUILDARCH)_compiler1/,$(TARGETS)) 201 SUBDIRS_C2 = $(addprefix $(OSNAME)_$(BUILDARCH)_compiler2/,$(TARGETS)) 202 SUBDIRS_TIERED = $(addprefix $(OSNAME)_$(BUILDARCH)_tiered/,$(TARGETS)) 203 SUBDIRS_CORE = $(addprefix $(OSNAME)_$(BUILDARCH)_core/,$(TARGETS)) 204 SUBDIRS_ZERO = $(addprefix $(OSNAME)_$(VARIANTARCH)_zero/,$(TARGETS)) 205 SUBDIRS_SHARK = $(addprefix $(OSNAME)_$(VARIANTARCH)_shark/,$(TARGETS)) 206 SUBDIRS_MINIMAL1 = $(addprefix $(OSNAME)_$(BUILDARCH)_minimal1/,$(TARGETS)) 207 208 TARGETS_C2 = $(TARGETS) 209 TARGETS_C1 = $(addsuffix 1,$(TARGETS)) 210 TARGETS_TIERED = $(addsuffix tiered,$(TARGETS)) 211 TARGETS_CORE = $(addsuffix core,$(TARGETS)) 212 TARGETS_ZERO = $(addsuffix zero,$(TARGETS)) 213 TARGETS_SHARK = $(addsuffix shark,$(TARGETS)) 340 cd $(OSNAME)_$(BUILDARCH)_minimal1/$(patsubst %minimal1,%,$@) && $(MAKE) $(MFLAGS) install 341 endif 342 343 # Just build the tree, and nothing else: 344 tree: $(SUBDIRS_C2) 345 tree1: $(SUBDIRS_C1) 346 treecore: $(SUBDIRS_CORE) 347 treezero: $(SUBDIRS_ZERO) 348 treeshark: $(SUBDIRS_SHARK) 349 treeminimal1: $(SUBDIRS_MINIMAL1) 350 351 # Doc target. This is the same for all build options. 352 # Hence create a docs directory beside ...$(ARCH)_[...] 353 # We specify 'BUILD_FLAVOR=product' so that the proper 354 # ENABLE_FULL_DEBUG_SYMBOLS value is used. 355 docs: checks 356 $(QUIETLY) mkdir -p $(SUBDIR_DOCS) 357 $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/makefiles/jvmti.make $(MFLAGS) $(BUILDTREE_VARS) JvmtiOutDir=$(SUBDIR_DOCS) BUILD_FLAVOR=product jvmtidocs 358 359 # Synonyms for win32-like targets. 360 compiler2: jvmg product 361 362 compiler1: jvmg1 product1 363 364 core: jvmgcore productcore 365 366 zero: jvmgzero productzero 367 368 shark: jvmgshark productshark 369 370 clean_docs: 371 rm -rf $(SUBDIR_DOCS) 372 373 clean_compiler1 clean_compiler2 clean_core clean_zero clean_shark clean_minimal1: 374 rm -rf $(OSNAME)_$(BUILDARCH)_$(subst clean_,,$@) 375 376 clean: clean_compiler2 clean_compiler1 clean_core clean_zero clean_shark clean_minimal1 clean_docs 377 378 include $(GAMMADIR)/make/cscope.make 379 380 # 381 # Include alternate Makefile if it exists. 382 # 383 -include $(HS_ALT_MAKE)/$(OSNAME)/Makefile.make 384 385 #------------------------------------------------------------------------------- 386 387 .PHONY: $(TARGETS_C2) $(TARGETS_C1) $(TARGETS_CORE) $(TARGETS_ZERO) $(TARGETS_SHARK) $(TARGETS_MINIMAL1) 388 .PHONY: tree tree1 treecore treezero treeshark | 125 ) 126 # Don't use the new value for GAMMADIR unless a file with the new 127 # name actually exists. 128 ifneq ($(wildcard $(NEW_GAMMADIR)),) 129 GAMMADIR := $(NEW_GAMMADIR) 130 endif 131 endif 132 133 endif 134 135 # BUILDARCH is set to "zero" for Zero builds. VARIANTARCH 136 # is used to give the build directories meaningful names. 137 VARIANTARCH = $(subst i386,i486,$(ZERO_LIBARCH)) 138 139 # There is a (semi-) regular correspondence between make targets and actions: 140 # 141 # Target Tree Type Build Dir 142 # 143 # debug compiler2 <os>_<arch>_compiler2/debug 144 # fastdebug compiler2 <os>_<arch>_compiler2/fastdebug 145 # optimized compiler2 <os>_<arch>_compiler2/optimized 146 # product compiler2 <os>_<arch>_compiler2/product 147 # 148 # debug1 compiler1 <os>_<arch>_compiler1/debug 149 # fastdebug1 compiler1 <os>_<arch>_compiler1/fastdebug 150 # optimized1 compiler1 <os>_<arch>_compiler1/optimized 151 # product1 compiler1 <os>_<arch>_compiler1/product 152 # 153 # debugcore core <os>_<arch>_core/debug 154 # fastdebugcore core <os>_<arch>_core/fastdebug 155 # optimizedcore core <os>_<arch>_core/optimized 156 # productcore core <os>_<arch>_core/product 157 # 158 # debugzero zero <os>_<arch>_zero/debug 159 # fastdebugzero zero <os>_<arch>_zero/fastdebug 160 # optimizedzero zero <os>_<arch>_zero/optimized 161 # productzero zero <os>_<arch>_zero/product 162 # 163 # debugshark shark <os>_<arch>_shark/debug 164 # fastdebugshark shark <os>_<arch>_shark/fastdebug 165 # optimizedshark shark <os>_<arch>_shark/optimized 166 # productshark shark <os>_<arch>_shark/product 167 # 168 # fastdebugminimal1 minimal1 <os>_<arch>_minimal1/fastdebug 169 # productminimal1 minimal1 <os>_<arch>_minimal1/product 170 # 171 # What you get with each target: 172 # 173 # debug* - debug compile with asserts enabled 174 # fastdebug* - optimized compile, but with asserts enabled 175 # optimized* - optimized compile, no asserts 176 # product* - the shippable thing: optimized compile, no asserts, -DPRODUCT 177 178 # This target list needs to be coordinated with the usage message 179 # in the build.sh script: 180 TARGETS = debug fastdebug optimized product 181 182 ifeq ($(findstring true, $(JVM_VARIANT_ZERO) $(JVM_VARIANT_ZEROSHARK)), true) 183 SUBDIR_DOCS = $(OSNAME)_$(VARIANTARCH)_docs 184 else 185 SUBDIR_DOCS = $(OSNAME)_$(BUILDARCH)_docs 186 endif 187 SUBDIRS_C1 = $(addprefix $(OSNAME)_$(BUILDARCH)_compiler1/,$(TARGETS)) 188 SUBDIRS_C2 = $(addprefix $(OSNAME)_$(BUILDARCH)_compiler2/,$(TARGETS)) 189 SUBDIRS_TIERED = $(addprefix $(OSNAME)_$(BUILDARCH)_tiered/,$(TARGETS)) 190 SUBDIRS_CORE = $(addprefix $(OSNAME)_$(BUILDARCH)_core/,$(TARGETS)) 191 SUBDIRS_ZERO = $(addprefix $(OSNAME)_$(VARIANTARCH)_zero/,$(TARGETS)) 192 SUBDIRS_SHARK = $(addprefix $(OSNAME)_$(VARIANTARCH)_shark/,$(TARGETS)) 193 SUBDIRS_MINIMAL1 = $(addprefix $(OSNAME)_$(BUILDARCH)_minimal1/,$(TARGETS)) 194 195 TARGETS_C2 = $(TARGETS) 196 TARGETS_C1 = $(addsuffix 1,$(TARGETS)) 197 TARGETS_TIERED = $(addsuffix tiered,$(TARGETS)) 198 TARGETS_CORE = $(addsuffix core,$(TARGETS)) 199 TARGETS_ZERO = $(addsuffix zero,$(TARGETS)) 200 TARGETS_SHARK = $(addsuffix shark,$(TARGETS)) 327 cd $(OSNAME)_$(BUILDARCH)_minimal1/$(patsubst %minimal1,%,$@) && $(MAKE) $(MFLAGS) install 328 endif 329 330 # Just build the tree, and nothing else: 331 tree: $(SUBDIRS_C2) 332 tree1: $(SUBDIRS_C1) 333 treecore: $(SUBDIRS_CORE) 334 treezero: $(SUBDIRS_ZERO) 335 treeshark: $(SUBDIRS_SHARK) 336 treeminimal1: $(SUBDIRS_MINIMAL1) 337 338 # Doc target. This is the same for all build options. 339 # Hence create a docs directory beside ...$(ARCH)_[...] 340 # We specify 'BUILD_FLAVOR=product' so that the proper 341 # ENABLE_FULL_DEBUG_SYMBOLS value is used. 342 docs: checks 343 $(QUIETLY) mkdir -p $(SUBDIR_DOCS) 344 $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/makefiles/jvmti.make $(MFLAGS) $(BUILDTREE_VARS) JvmtiOutDir=$(SUBDIR_DOCS) BUILD_FLAVOR=product jvmtidocs 345 346 # Synonyms for win32-like targets. 347 compiler2: debug product 348 349 compiler1: debug1 product1 350 351 core: debugcore productcore 352 353 zero: debugzero productzero 354 355 shark: debugshark productshark 356 357 warn_jvmg_deprecated: 358 echo "Warning: The jvmg target has been replaced with debug" 359 echo "Warning: Please update your usage" 360 361 jvmg: warn_jvmg_deprecated debug 362 363 jvmg1: warn_jvmg_deprecated debug1 364 365 jvmgcore: warn_jvmg_deprecated debugcore 366 367 jvmgzero: warn_jvmg_deprecated debugzero 368 369 jvmgshark: warn_jvmg_deprecated debugshark 370 371 clean_docs: 372 rm -rf $(SUBDIR_DOCS) 373 374 clean_compiler1 clean_compiler2 clean_core clean_zero clean_shark clean_minimal1: 375 rm -rf $(OSNAME)_$(BUILDARCH)_$(subst clean_,,$@) 376 377 clean: clean_compiler2 clean_compiler1 clean_core clean_zero clean_shark clean_minimal1 clean_docs 378 379 include $(GAMMADIR)/make/cscope.make 380 381 # 382 # Include alternate Makefile if it exists. 383 # 384 -include $(HS_ALT_MAKE)/$(OSNAME)/Makefile.make 385 386 #------------------------------------------------------------------------------- 387 388 .PHONY: $(TARGETS_C2) $(TARGETS_C1) $(TARGETS_CORE) $(TARGETS_ZERO) $(TARGETS_SHARK) $(TARGETS_MINIMAL1) 389 .PHONY: tree tree1 treecore treezero treeshark |