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 # What you get with each target: 172 # 173 # debug* - "thin" libjvm_g - debug info linked into the gamma_g launcher 174 # fastdebug* - optimized compile, but with asserts enabled 175 # jvmg* - "fat" libjvm_g - debug info linked into libjvm_g.so 176 # optimized* - optimized compile, no asserts 177 # profiled* - gprof 178 # product* - the shippable thing: optimized compile, no asserts, -DPRODUCT 179 180 # This target list needs to be coordinated with the usage message 181 # in the build.sh script: 182 TARGETS = debug jvmg fastdebug optimized profiled product 183 184 ifeq ($(ZERO_BUILD), true) 185 SUBDIR_DOCS = $(OSNAME)_$(VARIANTARCH)_docs 186 else 187 SUBDIR_DOCS = $(OSNAME)_$(BUILDARCH)_docs 188 endif 189 SUBDIRS_C1 = $(addprefix $(OSNAME)_$(BUILDARCH)_compiler1/,$(TARGETS)) 190 SUBDIRS_C2 = $(addprefix $(OSNAME)_$(BUILDARCH)_compiler2/,$(TARGETS)) 191 SUBDIRS_TIERED = $(addprefix $(OSNAME)_$(BUILDARCH)_tiered/,$(TARGETS)) 192 SUBDIRS_CORE = $(addprefix $(OSNAME)_$(BUILDARCH)_core/,$(TARGETS)) 193 SUBDIRS_ZERO = $(addprefix $(OSNAME)_$(VARIANTARCH)_zero/,$(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 201 BUILDTREE_MAKE = $(GAMMADIR)/make/$(OSNAME)/makefiles/buildtree.make 202 BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OSNAME) ARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) 203 BUILDTREE_VARS += HOTSPOT_RELEASE_VERSION=$(HOTSPOT_RELEASE_VERSION) HOTSPOT_BUILD_VERSION=$(HOTSPOT_BUILD_VERSION) JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION) 204 205 BUILDTREE = $(MAKE) -f $(BUILDTREE_MAKE) $(BUILDTREE_VARS) 206 207 #------------------------------------------------------------------------------- 208 209 # Could make everything by default, but that would take a while. 210 all: 211 @echo "Try '$(MAKE) <target> ...' where <target> is one or more of" 212 @echo " $(TARGETS_C2)" 213 @echo " $(TARGETS_C1)" 214 @echo " $(TARGETS_CORE)" 215 @echo " $(TARGETS_ZERO)" 216 217 checks: check_os_version check_j2se_version 218 219 # We do not want people accidentally building on old systems (e.g. Linux 2.2.x, 220 # Solaris 2.5.1, 2.6). 221 # Disable this check by setting DISABLE_HOTSPOT_OS_VERSION_CHECK=ok. 222 223 SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 2.7% 224 OS_VERSION := $(shell uname -r) 225 EMPTY_IF_NOT_SUPPORTED = $(filter $(SUPPORTED_OS_VERSION),$(OS_VERSION)) 226 227 check_os_version: 228 ifeq ($(DISABLE_HOTSPOT_OS_VERSION_CHECK)$(EMPTY_IF_NOT_SUPPORTED),) 229 $(QUIETLY) >&2 echo "*** This OS is not supported:" `uname -a`; exit 1; 230 endif 231 232 # jvmti.make requires XSLT (J2SE 1.4.x or newer): 233 XSLT_CHECK = $(REMOTE) $(RUN.JAVAP) javax.xml.transform.TransformerFactory 234 # If not found then fail fast. 235 check_j2se_version: 249 ifdef FORCE_TIERED 250 $(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks 251 $(BUILDTREE) VARIANT=tiered FORCE_TIERED=1 252 else 253 $(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks 254 $(BUILDTREE) VARIANT=compiler2 255 endif 256 257 $(SUBDIRS_C1): $(BUILDTREE_MAKE) 258 $(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks 259 $(BUILDTREE) VARIANT=compiler1 260 261 $(SUBDIRS_CORE): $(BUILDTREE_MAKE) 262 $(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks 263 $(BUILDTREE) VARIANT=core 264 265 $(SUBDIRS_ZERO): $(BUILDTREE_MAKE) platform_zero 266 $(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks 267 $(BUILDTREE) VARIANT=zero VARIANTARCH=$(VARIANTARCH) 268 269 platform_zero: $(GAMMADIR)/make/$(OSNAME)/platform_zero.in 270 $(SED) 's/@ZERO_ARCHDEF@/$(ZERO_ARCHDEF)/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@ 271 272 # Define INSTALL=y at command line to automatically copy JVM into JAVA_HOME 273 274 $(TARGETS_C2): $(SUBDIRS_C2) 275 cd $(OSNAME)_$(BUILDARCH)_compiler2/$@ && $(MAKE) $(MFLAGS) 276 cd $(OSNAME)_$(BUILDARCH)_compiler2/$@ && ./test_gamma 277 ifdef INSTALL 278 cd $(OSNAME)_$(BUILDARCH)_compiler2/$@ && $(MAKE) $(MFLAGS) install 279 endif 280 281 $(TARGETS_TIERED): $(SUBDIRS_TIERED) 282 cd $(OSNAME)_$(BUILDARCH)_tiered/$(patsubst %tiered,%,$@) && $(MAKE) $(MFLAGS) 283 cd $(OSNAME)_$(BUILDARCH)_tiered/$(patsubst %tiered,%,$@) && ./test_gamma 284 ifdef INSTALL 285 cd $(OSNAME)_$(BUILDARCH)_tiered/$(patsubst %tiered,%,$@) && $(MAKE) $(MFLAGS) install 286 endif 287 288 $(TARGETS_C1): $(SUBDIRS_C1) 289 cd $(OSNAME)_$(BUILDARCH)_compiler1/$(patsubst %1,%,$@) && $(MAKE) $(MFLAGS) 290 cd $(OSNAME)_$(BUILDARCH)_compiler1/$(patsubst %1,%,$@) && ./test_gamma 291 ifdef INSTALL 292 cd $(OSNAME)_$(BUILDARCH)_compiler1/$(patsubst %1,%,$@) && $(MAKE) $(MFLAGS) install 293 endif 294 295 $(TARGETS_CORE): $(SUBDIRS_CORE) 296 cd $(OSNAME)_$(BUILDARCH)_core/$(patsubst %core,%,$@) && $(MAKE) $(MFLAGS) 297 cd $(OSNAME)_$(BUILDARCH)_core/$(patsubst %core,%,$@) && ./test_gamma 298 ifdef INSTALL 299 cd $(OSNAME)_$(BUILDARCH)_core/$(patsubst %core,%,$@) && $(MAKE) $(MFLAGS) install 300 endif 301 302 $(TARGETS_ZERO): $(SUBDIRS_ZERO) 303 cd $(OSNAME)_$(VARIANTARCH)_zero/$(patsubst %zero,%,$@) && $(MAKE) $(MFLAGS) 304 cd $(OSNAME)_$(VARIANTARCH)_zero/$(patsubst %zero,%,$@) && ./test_gamma 305 ifdef INSTALL 306 cd $(OSNAME)_$(VARIANTARCH)_zero/$(patsubst %zero,%,$@) && $(MAKE) $(MFLAGS) install 307 endif 308 309 # Just build the tree, and nothing else: 310 tree: $(SUBDIRS_C2) 311 tree1: $(SUBDIRS_C1) 312 treecore: $(SUBDIRS_CORE) 313 treezero: $(SUBDIRS_ZERO) 314 315 # Doc target. This is the same for all build options. 316 # Hence create a docs directory beside ...$(ARCH)_[...] 317 docs: checks 318 $(QUIETLY) mkdir -p $(SUBDIR_DOCS) 319 $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/makefiles/jvmti.make $(MFLAGS) $(BUILDTREE_VARS) JvmtiOutDir=$(SUBDIR_DOCS) jvmtidocs 320 321 # Synonyms for win32-like targets. 322 compiler2: jvmg product 323 324 compiler1: jvmg1 product1 325 326 core: jvmgcore productcore 327 328 zero: jvmgzero productzero 329 330 clean_docs: 331 rm -rf $(SUBDIR_DOCS) 332 333 clean_compiler1 clean_compiler2 clean_core clean_zero: 334 rm -rf $(OSNAME)_$(BUILDARCH)_$(subst clean_,,$@) 335 336 clean: clean_compiler2 clean_compiler1 clean_core clean_zero clean_docs 337 338 include $(GAMMADIR)/make/$(OSNAME)/makefiles/cscope.make 339 340 #------------------------------------------------------------------------------- 341 342 .PHONY: $(TARGETS_C2) $(TARGETS_C1) $(TARGETS_CORE) $(TARGETS_ZERO) 343 .PHONY: tree tree1 treecore treezero 344 .PHONY: all compiler1 compiler2 core zero 345 .PHONY: clean clean_compiler1 clean_compiler2 clean_core clean_zero docs clean_docs 346 .PHONY: checks check_os_version check_j2se_version | 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 # What you get with each target: 179 # 180 # debug* - "thin" libjvm_g - debug info linked into the gamma_g launcher 181 # fastdebug* - optimized compile, but with asserts enabled 182 # jvmg* - "fat" libjvm_g - debug info linked into libjvm_g.so 183 # optimized* - optimized compile, no asserts 184 # profiled* - gprof 185 # product* - the shippable thing: optimized compile, no asserts, -DPRODUCT 186 187 # This target list needs to be coordinated with the usage message 188 # in the build.sh script: 189 TARGETS = debug jvmg fastdebug optimized profiled product 190 191 ifeq ($(ZERO_BUILD), true) 192 SUBDIR_DOCS = $(OSNAME)_$(VARIANTARCH)_docs 193 else 194 SUBDIR_DOCS = $(OSNAME)_$(BUILDARCH)_docs 195 endif 196 SUBDIRS_C1 = $(addprefix $(OSNAME)_$(BUILDARCH)_compiler1/,$(TARGETS)) 197 SUBDIRS_C2 = $(addprefix $(OSNAME)_$(BUILDARCH)_compiler2/,$(TARGETS)) 198 SUBDIRS_TIERED = $(addprefix $(OSNAME)_$(BUILDARCH)_tiered/,$(TARGETS)) 199 SUBDIRS_CORE = $(addprefix $(OSNAME)_$(BUILDARCH)_core/,$(TARGETS)) 200 SUBDIRS_ZERO = $(addprefix $(OSNAME)_$(VARIANTARCH)_zero/,$(TARGETS)) 201 SUBDIRS_SHARK = $(addprefix $(OSNAME)_$(VARIANTARCH)_shark/,$(TARGETS)) 202 203 TARGETS_C2 = $(TARGETS) 204 TARGETS_C1 = $(addsuffix 1,$(TARGETS)) 205 TARGETS_TIERED = $(addsuffix tiered,$(TARGETS)) 206 TARGETS_CORE = $(addsuffix core,$(TARGETS)) 207 TARGETS_ZERO = $(addsuffix zero,$(TARGETS)) 208 TARGETS_SHARK = $(addsuffix shark,$(TARGETS)) 209 210 BUILDTREE_MAKE = $(GAMMADIR)/make/$(OSNAME)/makefiles/buildtree.make 211 BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OSNAME) ARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) 212 BUILDTREE_VARS += HOTSPOT_RELEASE_VERSION=$(HOTSPOT_RELEASE_VERSION) HOTSPOT_BUILD_VERSION=$(HOTSPOT_BUILD_VERSION) JRE_RELEASE_VERSION=$(JRE_RELEASE_VERSION) 213 214 BUILDTREE = $(MAKE) -f $(BUILDTREE_MAKE) $(BUILDTREE_VARS) 215 216 #------------------------------------------------------------------------------- 217 218 # Could make everything by default, but that would take a while. 219 all: 220 @echo "Try '$(MAKE) <target> ...' where <target> is one or more of" 221 @echo " $(TARGETS_C2)" 222 @echo " $(TARGETS_C1)" 223 @echo " $(TARGETS_CORE)" 224 @echo " $(TARGETS_ZERO)" 225 @echo " $(TARGETS_SHARK)" 226 227 checks: check_os_version check_j2se_version 228 229 # We do not want people accidentally building on old systems (e.g. Linux 2.2.x, 230 # Solaris 2.5.1, 2.6). 231 # Disable this check by setting DISABLE_HOTSPOT_OS_VERSION_CHECK=ok. 232 233 SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 2.7% 234 OS_VERSION := $(shell uname -r) 235 EMPTY_IF_NOT_SUPPORTED = $(filter $(SUPPORTED_OS_VERSION),$(OS_VERSION)) 236 237 check_os_version: 238 ifeq ($(DISABLE_HOTSPOT_OS_VERSION_CHECK)$(EMPTY_IF_NOT_SUPPORTED),) 239 $(QUIETLY) >&2 echo "*** This OS is not supported:" `uname -a`; exit 1; 240 endif 241 242 # jvmti.make requires XSLT (J2SE 1.4.x or newer): 243 XSLT_CHECK = $(REMOTE) $(RUN.JAVAP) javax.xml.transform.TransformerFactory 244 # If not found then fail fast. 245 check_j2se_version: 259 ifdef FORCE_TIERED 260 $(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks 261 $(BUILDTREE) VARIANT=tiered FORCE_TIERED=1 262 else 263 $(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks 264 $(BUILDTREE) VARIANT=compiler2 265 endif 266 267 $(SUBDIRS_C1): $(BUILDTREE_MAKE) 268 $(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks 269 $(BUILDTREE) VARIANT=compiler1 270 271 $(SUBDIRS_CORE): $(BUILDTREE_MAKE) 272 $(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks 273 $(BUILDTREE) VARIANT=core 274 275 $(SUBDIRS_ZERO): $(BUILDTREE_MAKE) platform_zero 276 $(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks 277 $(BUILDTREE) VARIANT=zero VARIANTARCH=$(VARIANTARCH) 278 279 $(SUBDIRS_SHARK): $(BUILDTREE_MAKE) platform_zero 280 $(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks 281 $(BUILDTREE) VARIANT=shark VARIANTARCH=$(VARIANTARCH) 282 283 platform_zero: $(GAMMADIR)/make/$(OSNAME)/platform_zero.in 284 $(SED) 's/@ZERO_ARCHDEF@/$(ZERO_ARCHDEF)/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@ 285 286 # Define INSTALL=y at command line to automatically copy JVM into JAVA_HOME 287 288 $(TARGETS_C2): $(SUBDIRS_C2) 289 cd $(OSNAME)_$(BUILDARCH)_compiler2/$@ && $(MAKE) $(MFLAGS) 290 cd $(OSNAME)_$(BUILDARCH)_compiler2/$@ && ./test_gamma 291 ifdef INSTALL 292 cd $(OSNAME)_$(BUILDARCH)_compiler2/$@ && $(MAKE) $(MFLAGS) install 293 endif 294 295 $(TARGETS_TIERED): $(SUBDIRS_TIERED) 296 cd $(OSNAME)_$(BUILDARCH)_tiered/$(patsubst %tiered,%,$@) && $(MAKE) $(MFLAGS) 297 cd $(OSNAME)_$(BUILDARCH)_tiered/$(patsubst %tiered,%,$@) && ./test_gamma 298 ifdef INSTALL 299 cd $(OSNAME)_$(BUILDARCH)_tiered/$(patsubst %tiered,%,$@) && $(MAKE) $(MFLAGS) install 300 endif 301 302 $(TARGETS_C1): $(SUBDIRS_C1) 303 cd $(OSNAME)_$(BUILDARCH)_compiler1/$(patsubst %1,%,$@) && $(MAKE) $(MFLAGS) 304 cd $(OSNAME)_$(BUILDARCH)_compiler1/$(patsubst %1,%,$@) && ./test_gamma 305 ifdef INSTALL 306 cd $(OSNAME)_$(BUILDARCH)_compiler1/$(patsubst %1,%,$@) && $(MAKE) $(MFLAGS) install 307 endif 308 309 $(TARGETS_CORE): $(SUBDIRS_CORE) 310 cd $(OSNAME)_$(BUILDARCH)_core/$(patsubst %core,%,$@) && $(MAKE) $(MFLAGS) 311 cd $(OSNAME)_$(BUILDARCH)_core/$(patsubst %core,%,$@) && ./test_gamma 312 ifdef INSTALL 313 cd $(OSNAME)_$(BUILDARCH)_core/$(patsubst %core,%,$@) && $(MAKE) $(MFLAGS) install 314 endif 315 316 $(TARGETS_ZERO): $(SUBDIRS_ZERO) 317 cd $(OSNAME)_$(VARIANTARCH)_zero/$(patsubst %zero,%,$@) && $(MAKE) $(MFLAGS) 318 cd $(OSNAME)_$(VARIANTARCH)_zero/$(patsubst %zero,%,$@) && ./test_gamma 319 ifdef INSTALL 320 cd $(OSNAME)_$(VARIANTARCH)_zero/$(patsubst %zero,%,$@) && $(MAKE) $(MFLAGS) install 321 endif 322 323 $(TARGETS_SHARK): $(SUBDIRS_SHARK) 324 cd $(OSNAME)_$(VARIANTARCH)_shark/$(patsubst %shark,%,$@) && $(MAKE) $(MFLAGS) 325 cd $(OSNAME)_$(VARIANTARCH)_shark/$(patsubst %shark,%,$@) && ./test_gamma 326 ifdef INSTALL 327 cd $(OSNAME)_$(VARIANTARCH)_shark/$(patsubst %shark,%,$@) && $(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 337 # Doc target. This is the same for all build options. 338 # Hence create a docs directory beside ...$(ARCH)_[...] 339 docs: checks 340 $(QUIETLY) mkdir -p $(SUBDIR_DOCS) 341 $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/makefiles/jvmti.make $(MFLAGS) $(BUILDTREE_VARS) JvmtiOutDir=$(SUBDIR_DOCS) jvmtidocs 342 343 # Synonyms for win32-like targets. 344 compiler2: jvmg product 345 346 compiler1: jvmg1 product1 347 348 core: jvmgcore productcore 349 350 zero: jvmgzero productzero 351 352 shark: jvmgshark productshark 353 354 clean_docs: 355 rm -rf $(SUBDIR_DOCS) 356 357 clean_compiler1 clean_compiler2 clean_core clean_zero clean_shark: 358 rm -rf $(OSNAME)_$(BUILDARCH)_$(subst clean_,,$@) 359 360 clean: clean_compiler2 clean_compiler1 clean_core clean_zero clean_shark clean_docs 361 362 include $(GAMMADIR)/make/$(OSNAME)/makefiles/cscope.make 363 364 #------------------------------------------------------------------------------- 365 366 .PHONY: $(TARGETS_C2) $(TARGETS_C1) $(TARGETS_CORE) $(TARGETS_ZERO) $(TARGETS_SHARK) 367 .PHONY: tree tree1 treecore treezero treeshark 368 .PHONY: all compiler1 compiler2 core zero shark 369 .PHONY: clean clean_compiler1 clean_compiler2 clean_core clean_zero clean_shark docs clean_docs 370 .PHONY: checks check_os_version check_j2se_version |