Mercurial > hg > graal-compiler
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 |