comparison make/Makefile @ 6854:fb19af007ffc

7189254: Change makefiles for more flexibility to override defaults Summary: Change makefiles so that targets and parameters can be overridden by alternate makefiles. Reviewed-by: dholmes, coleenp
author jprovino
date Wed, 10 Oct 2012 14:35:58 -0400
parents 74c359c4a9e5
children a3e2f723f2a5
comparison
equal deleted inserted replaced
6830:81e878c53615 6854:fb19af007ffc
74 include defs.make 74 include defs.make
75 endif 75 endif
76 76
77 include $(GAMMADIR)/make/altsrc.make 77 include $(GAMMADIR)/make/altsrc.make
78 78
79 -include $(HS_ALT_MAKE)/Makefile.make
80
79 ifneq ($(ALT_OUTPUTDIR),) 81 ifneq ($(ALT_OUTPUTDIR),)
80 ALT_OUT=ALT_OUTPUTDIR=$(ALT_OUTPUTDIR) 82 ALT_OUT=ALT_OUTPUTDIR=$(ALT_OUTPUTDIR)
81 else 83 else
82 ALT_OUT= 84 ALT_OUT=
83 endif 85 endif
86 C1_VM_TARGETS=product1 fastdebug1 optimized1 jvmg1 88 C1_VM_TARGETS=product1 fastdebug1 optimized1 jvmg1
87 C2_VM_TARGETS=product fastdebug optimized jvmg 89 C2_VM_TARGETS=product fastdebug optimized jvmg
88 KERNEL_VM_TARGETS=productkernel fastdebugkernel optimizedkernel jvmgkernel 90 KERNEL_VM_TARGETS=productkernel fastdebugkernel optimizedkernel jvmgkernel
89 ZERO_VM_TARGETS=productzero fastdebugzero optimizedzero jvmgzero 91 ZERO_VM_TARGETS=productzero fastdebugzero optimizedzero jvmgzero
90 SHARK_VM_TARGETS=productshark fastdebugshark optimizedshark jvmgshark 92 SHARK_VM_TARGETS=productshark fastdebugshark optimizedshark jvmgshark
91 93 MINIMAL1_VM_TARGETS=productminimal1 fastdebugminimal1 jvmgminimal1
92 COMMON_VM_PRODUCT_TARGETS=product product1 productkernel docs export_product 94
93 COMMON_VM_FASTDEBUG_TARGETS=fastdebug fastdebug1 fastdebugkernel docs export_fastdebug 95 COMMON_VM_PRODUCT_TARGETS=product product1 docs export_product
94 COMMON_VM_DEBUG_TARGETS=jvmg jvmg1 jvmgkernel docs export_debug 96 COMMON_VM_FASTDEBUG_TARGETS=fastdebug fastdebug1 docs export_fastdebug
97 COMMON_VM_DEBUG_TARGETS=jvmg jvmg1 docs export_debug
95 98
96 # JDK directory list 99 # JDK directory list
97 JDK_DIRS=bin include jre lib demo 100 JDK_DIRS=bin include jre lib demo
98 101
99 all: all_product all_fastdebug 102 all: all_product all_fastdebug
103
104 ifeq ($(JVM_VARIANT_MINIMAL1),true)
105 all_product: productminimal1
106 all_fastdebug: fastdebugminimal1
107 all_debug: jvmgminimal1
108 endif
100 109
101 ifdef BUILD_CLIENT_ONLY 110 ifdef BUILD_CLIENT_ONLY
102 all_product: product1 docs export_product 111 all_product: product1 docs export_product
103 all_fastdebug: fastdebug1 docs export_fastdebug 112 all_fastdebug: fastdebug1 docs export_fastdebug
104 all_debug: jvmg1 docs export_debug 113 all_debug: jvmg1 docs export_debug
112 all_fastdebug: $(COMMON_VM_FASTDEBUG_TARGETS) 121 all_fastdebug: $(COMMON_VM_FASTDEBUG_TARGETS)
113 all_debug: $(COMMON_VM_DEBUG_TARGETS) 122 all_debug: $(COMMON_VM_DEBUG_TARGETS)
114 endif 123 endif
115 endif 124 endif
116 125
117 all_optimized: optimized optimized1 optimizedkernel docs export_optimized 126 all_optimized: optimized optimized1 docs export_optimized
118 127
119 allzero: all_productzero all_fastdebugzero 128 allzero: all_productzero all_fastdebugzero
120 all_productzero: productzero docs export_product 129 all_productzero: productzero docs export_product
121 all_fastdebugzero: fastdebugzero docs export_fastdebug 130 all_fastdebugzero: fastdebugzero docs export_fastdebug
122 all_debugzero: jvmgzero docs export_debug 131 all_debugzero: jvmgzero docs export_debug
164 173
165 $(SHARK_VM_TARGETS): 174 $(SHARK_VM_TARGETS):
166 $(CD) $(GAMMADIR)/make; \ 175 $(CD) $(GAMMADIR)/make; \
167 $(MAKE) BUILD_FLAVOR=$(@:%shark=%) VM_TARGET=$@ \ 176 $(MAKE) BUILD_FLAVOR=$(@:%shark=%) VM_TARGET=$@ \
168 generic_buildshark $(ALT_OUT) 177 generic_buildshark $(ALT_OUT)
178
179 $(MINIMAL1_VM_TARGETS):
180 $(CD) $(GAMMADIR)/make; \
181 $(MAKE) BUILD_FLAVOR=$(@:%minimal1=%) VM_TARGET=$@ \
182 generic_buildminimal1 $(ALT_OUT)
169 183
170 # Build compiler1 (client) rule, different for platforms 184 # Build compiler1 (client) rule, different for platforms
171 generic_build1: 185 generic_build1:
172 $(MKDIR) -p $(OUTPUTDIR) 186 $(MKDIR) -p $(OUTPUTDIR)
173 ifeq ($(OSNAME),windows) 187 ifeq ($(OSNAME),windows)
236 generic_buildshark: 250 generic_buildshark:
237 $(MKDIR) -p $(OUTPUTDIR) 251 $(MKDIR) -p $(OUTPUTDIR)
238 $(CD) $(OUTPUTDIR); \ 252 $(CD) $(OUTPUTDIR); \
239 $(MAKE) -f $(ABS_OS_MAKEFILE) \ 253 $(MAKE) -f $(ABS_OS_MAKEFILE) \
240 $(MAKE_ARGS) $(VM_TARGET) 254 $(MAKE_ARGS) $(VM_TARGET)
255
256 generic_buildminimal1:
257 ifeq ($(JVM_VARIANT_MINIMAL1),true)
258 $(MKDIR) -p $(OUTPUTDIR)
259 ifeq ($(ARCH_DATA_MODEL), 32)
260 ifeq ($(OSNAME),windows)
261 $(ECHO) "No ($(VM_TARGET)) for $(OSNAME) ARCH_DATA_MODEL=$(ARCH_DATA_MODEL)" ;
262 else
263 ifeq ($(OSNAME),solaris)
264 $(ECHO) "No ($(VM_TARGET)) for $(OSNAME) ARCH_DATA_MODEL=$(ARCH_DATA_MODEL)" ;
265 else
266 $(CD) $(OUTPUTDIR); \
267 $(MAKE) -f $(ABS_OS_MAKEFILE) $(MAKE_ARGS) $(VM_TARGET) ;
268 endif
269 endif
270 else
271 @$(ECHO) "No ($(VM_TARGET)) for $(OSNAME) ARCH_DATA_MODEL=$(ARCH_DATA_MODEL)"
272 endif
273 else
274 @$(ECHO) "Error: trying to build a minimal target but JVM_VARIANT_MINIMAL1 is not true."
275 endif
241 276
242 # Export file rule 277 # Export file rule
243 generic_export: $(EXPORT_LIST) 278 generic_export: $(EXPORT_LIST)
244 export_product: 279 export_product:
245 $(MAKE) BUILD_FLAVOR=$(@:export_%=%) VM_SUBDIR=$(@:export_%=%) \ 280 $(MAKE) BUILD_FLAVOR=$(@:export_%=%) VM_SUBDIR=$(@:export_%=%) \
285 C1_DIR=$(C1_BASE_DIR)/$(VM_SUBDIR) 320 C1_DIR=$(C1_BASE_DIR)/$(VM_SUBDIR)
286 C2_DIR=$(C2_BASE_DIR)/$(VM_SUBDIR) 321 C2_DIR=$(C2_BASE_DIR)/$(VM_SUBDIR)
287 KERNEL_DIR=$(KERNEL_BASE_DIR)/$(VM_SUBDIR) 322 KERNEL_DIR=$(KERNEL_BASE_DIR)/$(VM_SUBDIR)
288 ZERO_DIR=$(ZERO_BASE_DIR)/$(VM_SUBDIR) 323 ZERO_DIR=$(ZERO_BASE_DIR)/$(VM_SUBDIR)
289 SHARK_DIR=$(SHARK_BASE_DIR)/$(VM_SUBDIR) 324 SHARK_DIR=$(SHARK_BASE_DIR)/$(VM_SUBDIR)
325 MINIMAL1_BASE_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_minimal1
326 MINIMAL1_DIR=$(MINIMAL1_BASE_DIR)/$(VM_SUBDIR)
290 327
291 ifeq ($(JVM_VARIANT_SERVER), true) 328 ifeq ($(JVM_VARIANT_SERVER), true)
292 MISC_DIR=$(C2_DIR) 329 MISC_DIR=$(C2_DIR)
293 GEN_DIR=$(C2_BASE_DIR)/generated 330 GEN_DIR=$(C2_BASE_DIR)/generated
294 endif 331 endif
306 endif 343 endif
307 ifeq ($(JVM_VARIANT_ZERO), true) 344 ifeq ($(JVM_VARIANT_ZERO), true)
308 MISC_DIR=$(ZERO_DIR) 345 MISC_DIR=$(ZERO_DIR)
309 GEN_DIR=$(ZERO_BASE_DIR)/generated 346 GEN_DIR=$(ZERO_BASE_DIR)/generated
310 endif 347 endif
348 ifeq ($(JVM_VARIANT_MINIMAL1), true)
349 MISC_DIR=$(MINIMAL1_DIR)
350 GEN_DIR=$(MINIMAL1_BASE_DIR)/generated
351 endif
311 352
312 # Bin files (windows) 353 # Bin files (windows)
313 ifeq ($(OSNAME),windows) 354 ifeq ($(OSNAME),windows)
314 355
315 # Get jvm.lib 356 # Get jvm.lib
354 $(EXPORT_KERNEL_DIR)/%.pdb: $(KERNEL_DIR)/%.pdb 395 $(EXPORT_KERNEL_DIR)/%.pdb: $(KERNEL_DIR)/%.pdb
355 $(install-file) 396 $(install-file)
356 $(EXPORT_KERNEL_DIR)/%.map: $(KERNEL_DIR)/%.map 397 $(EXPORT_KERNEL_DIR)/%.map: $(KERNEL_DIR)/%.map
357 $(install-file) 398 $(install-file)
358 endif 399 endif
400
401 # Minimal JVM files always come from minimal area
402 $(EXPORT_MINIMAL_DIR)/%.diz: $(MINIMAL1_DIR)/%.diz
403 $(install-file)
404 $(EXPORT_MINIMAL_DIR)/%.dll: $(MINIMAL1_DIR)/%.dll
405 $(install-file)
406 $(EXPORT_MINIMAL_DIR)/%.pdb: $(MINIMAL1_DIR)/%.pdb
407 $(install-file)
408 $(EXPORT_MINIMAL_DIR)/%.map: $(MINIMAL1_DIR)/%.map
409 $(install-file)
359 410
360 # Shared Library 411 # Shared Library
361 ifneq ($(OSNAME),windows) 412 ifneq ($(OSNAME),windows)
362 ifeq ($(JVM_VARIANT_SERVER), true) 413 ifeq ($(JVM_VARIANT_SERVER), true)
363 $(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(C2_DIR)/%.$(LIBRARY_SUFFIX) 414 $(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(C2_DIR)/%.$(LIBRARY_SUFFIX)
409 $(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(ZERO_DIR)/%.$(LIBRARY_SUFFIX) 460 $(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(ZERO_DIR)/%.$(LIBRARY_SUFFIX)
410 $(install-file) 461 $(install-file)
411 $(EXPORT_SERVER_DIR)/%.$(LIBRARY_SUFFIX): $(ZERO_DIR)/%.$(LIBRARY_SUFFIX) 462 $(EXPORT_SERVER_DIR)/%.$(LIBRARY_SUFFIX): $(ZERO_DIR)/%.$(LIBRARY_SUFFIX)
412 $(install-file) 463 $(install-file)
413 endif 464 endif
465 ifeq ($(JVM_VARIANT_MINIMAL1), true)
466 $(EXPORT_JRE_LIB_ARCH_DIR)/%.$(LIBRARY_SUFFIX): $(MINIMAL1_DIR)/%.$(LIBRARY_SUFFIX)
467 $(install-file)
468 $(EXPORT_MINIMAL_DIR)/%.$(LIBRARY_SUFFIX): $(MINIMAL1_DIR)/%.$(LIBRARY_SUFFIX)
469 $(install-file)
470 $(EXPORT_MINIMAL_DIR)/64/%.$(LIBRARY_SUFFIX): $(MINIMAL1_DIR)/%.$(LIBRARY_SUFFIX)
471 $(install-file)
472 $(EXPORT_JRE_LIB_ARCH_DIR)/%.debuginfo: $(MINIMAL1_DIR)/%.debuginfo
473 $(install-file)
474 $(EXPORT_MINIMAL_DIR)/%.debuginfo: $(MINIMAL1_DIR)/%.debuginfo
475 $(install-file)
476 $(EXPORT_MINIMAL_DIR)/64/%.debuginfo: $(MINIMAL1_DIR)/%.debuginfo
477 $(install-file)
478 $(EXPORT_JRE_LIB_ARCH_DIR)/%.diz: $(MINIMAL1_DIR)/%.diz
479 $(install-file)
480 $(EXPORT_MINIMAL_DIR)/%.diz: $(MINIMAL1_DIR)/%.diz
481 $(install-file)
482 $(EXPORT_MINIMAL_DIR)/64/%.diz: $(MINIMAL1_DIR)/%.diz
483 $(install-file)
484 endif
414 endif 485 endif
415 486
416 # Jar file (sa-jdi.jar) 487 # Jar file (sa-jdi.jar)
417 $(EXPORT_LIB_DIR)/%.jar: $(GEN_DIR)/%.jar 488 $(EXPORT_LIB_DIR)/%.jar: $(GEN_DIR)/%.jar
418 $(install-file) 489 $(install-file)
449 # Doc files (jvmti.html) 520 # Doc files (jvmti.html)
450 $(EXPORT_DOCS_DIR)/platform/jvmti/%: $(DOCS_DIR)/% 521 $(EXPORT_DOCS_DIR)/platform/jvmti/%: $(DOCS_DIR)/%
451 $(install-file) 522 $(install-file)
452 523
453 # Xusage file 524 # Xusage file
454 $(EXPORT_SERVER_DIR)/Xusage.txt $(EXPORT_CLIENT_DIR)/Xusage.txt $(EXPORT_KERNEL_DIR)/Xusage.txt: $(XUSAGE) 525 $(EXPORT_SERVER_DIR)/Xusage.txt $(EXPORT_CLIENT_DIR)/Xusage.txt $(EXPORT_KERNEL_DIR)/Xusage.txt $(EXPORT_MINIMAL_DIR)/Xusage.txt: $(XUSAGE)
455 $(prep-target) 526 $(prep-target)
456 $(RM) $@.temp 527 $(RM) $@.temp
457 $(SED) 's/\(separated by \)[;:]/\1$(PATH_SEP)/g' $< > $@.temp 528 $(SED) 's/\(separated by \)[;:]/\1$(PATH_SEP)/g' $< > $@.temp
458 $(MV) $@.temp $@ 529 $(MV) $@.temp $@
459 530
465 $(RM) -r $(C1_DIR) 536 $(RM) -r $(C1_DIR)
466 $(RM) -r $(C2_DIR) 537 $(RM) -r $(C2_DIR)
467 $(RM) -r $(KERNEL_DIR) 538 $(RM) -r $(KERNEL_DIR)
468 $(RM) -r $(ZERO_DIR) 539 $(RM) -r $(ZERO_DIR)
469 $(RM) -r $(SHARK_DIR) 540 $(RM) -r $(SHARK_DIR)
541 $(RM) -r $(MINIMAL1_DIR)
470 clean_export: 542 clean_export:
471 $(RM) -r $(EXPORT_PATH) 543 $(RM) -r $(EXPORT_PATH)
472 clean_jdk: 544 clean_jdk:
473 $(RM) -r $(JDK_IMAGE_DIR) 545 $(RM) -r $(JDK_IMAGE_DIR)
474 546
572 @$(ECHO) "export_debug: Export debug files to EXPORT_PATH" 644 @$(ECHO) "export_debug: Export debug files to EXPORT_PATH"
573 @$(ECHO) "export_optimized: Export optimized files to EXPORT_PATH" 645 @$(ECHO) "export_optimized: Export optimized files to EXPORT_PATH"
574 @$(ECHO) "create_jdk: Create JDK image, export all files into it" 646 @$(ECHO) "create_jdk: Create JDK image, export all files into it"
575 @$(ECHO) "update_jdk: Update JDK image with fresh exported files" 647 @$(ECHO) "update_jdk: Update JDK image with fresh exported files"
576 @$(ECHO) " " 648 @$(ECHO) " "
577 @$(ECHO) "Others targets are:" 649 @$(ECHO) "Other targets are:"
578 @$(ECHO) " $(C1_VM_TARGETS)" 650 @$(ECHO) " $(C1_VM_TARGETS)"
579 @$(ECHO) " $(C2_VM_TARGETS)" 651 @$(ECHO) " $(C2_VM_TARGETS)"
580 @$(ECHO) " $(KERNEL_VM_TARGETS)" 652 @$(ECHO) " $(KERNEL_VM_TARGETS)"
653 @$(ECHO) " $(MINIMAL1_VM_TARGETS)"
581 654
582 # Variable help (only common ones used by this workspace) 655 # Variable help (only common ones used by this workspace)
583 variable_help: variable_help_intro variable_list variable_help_end 656 variable_help: variable_help_intro variable_list variable_help_end
584 variable_help_intro: 657 variable_help_intro:
585 @$(ECHO) "--- Common Variables ---" 658 @$(ECHO) "--- Common Variables ---"
670 743
671 # JPRT rule to build this workspace 744 # JPRT rule to build this workspace
672 include $(GAMMADIR)/make/jprt.gmk 745 include $(GAMMADIR)/make/jprt.gmk
673 746
674 .PHONY: all world clobber clean help $(C1_VM_TARGETS) $(C2_VM_TARGETS) \ 747 .PHONY: all world clobber clean help $(C1_VM_TARGETS) $(C2_VM_TARGETS) \
675 $(KERNEL_VM_TARGETS) \ 748 $(KERNEL_VM_TARGETS) $(MINIMAL1_VM_TARGETS) \
676 generic_build1 generic_build2 generic_buildkernel generic_export \ 749 generic_build1 generic_build2 generic_buildkernel generic_buildminimal1 generic_export \
677 export_product export_fastdebug export_debug export_optimized \ 750 export_product export_fastdebug export_debug export_optimized \
678 export_jdk_product export_jdk_fastdebug export_jdk_debug \ 751 export_jdk_product export_jdk_fastdebug export_jdk_debug \
679 create_jdk copy_jdk update_jdk test_jdk \ 752 create_jdk copy_jdk update_jdk test_jdk \
680 copy_product_jdk copy_fastdebug_jdk copy_debug_jdk 753 copy_product_jdk copy_fastdebug_jdk copy_debug_jdk \
754 $(HS_ALT_MAKE)/Makefile.make