Mon, 06 Feb 2012 09:14:22 +0100
7141242: build-infra merge: Rename CPP->CXX and LINK->LD
Summary: Cleaned up make variables for compilers and linker to consistently use CXX for C++ compiler, CC for C compiler and LD for linker.
Reviewed-by: dholmes, ohrstrom
duke@435 | 1 | # |
trims@2708 | 2 | # Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved. |
duke@435 | 3 | # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
duke@435 | 4 | # |
duke@435 | 5 | # This code is free software; you can redistribute it and/or modify it |
duke@435 | 6 | # under the terms of the GNU General Public License version 2 only, as |
duke@435 | 7 | # published by the Free Software Foundation. |
duke@435 | 8 | # |
duke@435 | 9 | # This code is distributed in the hope that it will be useful, but WITHOUT |
duke@435 | 10 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
duke@435 | 11 | # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
duke@435 | 12 | # version 2 for more details (a copy is included in the LICENSE file that |
duke@435 | 13 | # accompanied this code). |
duke@435 | 14 | # |
duke@435 | 15 | # You should have received a copy of the GNU General Public License version |
duke@435 | 16 | # 2 along with this work; if not, write to the Free Software Foundation, |
duke@435 | 17 | # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
duke@435 | 18 | # |
trims@1907 | 19 | # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
trims@1907 | 20 | # or visit www.oracle.com if you need additional information or have any |
trims@1907 | 21 | # questions. |
duke@435 | 22 | # |
duke@435 | 23 | # |
duke@435 | 24 | |
duke@435 | 25 | # top.make is included in the Makefile in the build directories. |
duke@435 | 26 | # It DOES NOT include the vm dependency info in order to be faster. |
andrew@1406 | 27 | # Its main job is to implement the incremental form of make lists. |
duke@435 | 28 | # It also: |
duke@435 | 29 | # -builds and runs adlc via adlc.make |
duke@435 | 30 | # -generates JVMTI source and docs via jvmti.make (JSR-163) |
duke@435 | 31 | # -generate sa-jdi.jar (JDI binding to core files) |
duke@435 | 32 | |
duke@435 | 33 | # It assumes the following flags are set: |
stefank@2314 | 34 | # CFLAGS Platform_file, Src_Dirs_I, Src_Dirs_V, SYSDEFS, AOUT, Jvm_Obj_Files |
duke@435 | 35 | |
duke@435 | 36 | # -- D. Ungar (5/97) from a file by Bill Bush |
duke@435 | 37 | |
duke@435 | 38 | # Don't override the built-in $(MAKE). |
duke@435 | 39 | # Instead, use "gmake" (or "gnumake") from the command line. --Rose |
duke@435 | 40 | #MAKE = gmake |
duke@435 | 41 | |
kamg@2515 | 42 | include $(GAMMADIR)/make/altsrc.make |
kamg@2515 | 43 | |
duke@435 | 44 | GENERATED = ../generated |
duke@435 | 45 | VM = $(GAMMADIR)/src/share/vm |
duke@435 | 46 | Plat_File = $(Platform_file) |
duke@435 | 47 | CDG = cd $(GENERATED); |
duke@435 | 48 | |
stefank@2314 | 49 | Cached_plat = $(GENERATED)/platform.current |
duke@435 | 50 | |
duke@435 | 51 | AD_Dir = $(GENERATED)/adfiles |
duke@435 | 52 | ADLC = $(AD_Dir)/adlc |
kamg@2515 | 53 | AD_Spec = $(call altsrc-replace,$(HS_COMMON_SRC)/cpu/$(Platform_arch)/vm/$(Platform_arch_model).ad) |
kamg@2515 | 54 | AD_Src = $(call altsrc-replace,$(HS_COMMON_SRC)/share/vm/adlc) |
kvn@868 | 55 | AD_Names = ad_$(Platform_arch_model).hpp ad_$(Platform_arch_model).cpp |
duke@435 | 56 | AD_Files = $(AD_Names:%=$(AD_Dir)/%) |
duke@435 | 57 | |
duke@435 | 58 | # AD_Files_If_Required/COMPILER1 = ad_stuff |
duke@435 | 59 | AD_Files_If_Required/COMPILER2 = ad_stuff |
duke@435 | 60 | AD_Files_If_Required/TIERED = ad_stuff |
duke@435 | 61 | AD_Files_If_Required = $(AD_Files_If_Required/$(TYPE)) |
duke@435 | 62 | |
duke@435 | 63 | # Wierd argument adjustment for "gnumake -j..." |
duke@435 | 64 | adjust-mflags = $(GENERATED)/adjust-mflags |
duke@435 | 65 | MFLAGS-adjusted = -r `$(adjust-mflags) "$(MFLAGS)" "$(HOTSPOT_BUILD_JOBS)"` |
duke@435 | 66 | |
duke@435 | 67 | |
stefank@2314 | 68 | # default target: update lists, make vm |
duke@435 | 69 | # done in stages to force sequential order with parallel make |
duke@435 | 70 | # |
duke@435 | 71 | |
duke@435 | 72 | default: vm_build_preliminaries the_vm |
duke@435 | 73 | @echo All done. |
duke@435 | 74 | |
duke@435 | 75 | # This is an explicit dependency for the sake of parallel makes. |
stefank@2314 | 76 | vm_build_preliminaries: checks $(Cached_plat) $(AD_Files_If_Required) jvmti_stuff sa_stuff |
duke@435 | 77 | @# We need a null action here, so implicit rules don't get consulted. |
duke@435 | 78 | |
stefank@2314 | 79 | $(Cached_plat): $(Plat_File) |
stefank@2314 | 80 | $(CDG) cp $(Plat_File) $(Cached_plat) |
duke@435 | 81 | |
duke@435 | 82 | # make AD files as necessary |
stefank@2314 | 83 | ad_stuff: $(Cached_plat) $(adjust-mflags) |
duke@435 | 84 | @$(MAKE) -f adlc.make $(MFLAGS-adjusted) |
duke@435 | 85 | |
duke@435 | 86 | # generate JVMTI files from the spec |
stefank@2314 | 87 | jvmti_stuff: $(Cached_plat) $(adjust-mflags) |
duke@435 | 88 | @$(MAKE) -f jvmti.make $(MFLAGS-adjusted) |
duke@435 | 89 | |
duke@435 | 90 | # generate SA jar files and native header |
duke@435 | 91 | sa_stuff: |
duke@435 | 92 | @$(MAKE) -f sa.make $(MFLAGS-adjusted) |
duke@435 | 93 | |
duke@435 | 94 | # and the VM: must use other makefile with dependencies included |
duke@435 | 95 | |
duke@435 | 96 | # We have to go to great lengths to get control over the -jN argument |
duke@435 | 97 | # to the recursive invocation of vm.make. The problem is that gnumake |
duke@435 | 98 | # resets -jN to -j1 for recursive runs. (How helpful.) |
duke@435 | 99 | # Note that the user must specify the desired parallelism level via a |
duke@435 | 100 | # command-line or environment variable name HOTSPOT_BUILD_JOBS. |
kamg@526 | 101 | $(adjust-mflags): $(GAMMADIR)/make/$(Platform_os_family)/makefiles/adjust-mflags.sh |
duke@435 | 102 | @+rm -f $@ $@+ |
duke@435 | 103 | @+cat $< > $@+ |
duke@435 | 104 | @+chmod +x $@+ |
duke@435 | 105 | @+mv $@+ $@ |
duke@435 | 106 | |
duke@435 | 107 | the_vm: vm_build_preliminaries $(adjust-mflags) |
duke@435 | 108 | @$(MAKE) -f vm.make $(MFLAGS-adjusted) |
duke@435 | 109 | |
duke@435 | 110 | install: the_vm |
duke@435 | 111 | @$(MAKE) -f vm.make install |
duke@435 | 112 | |
duke@435 | 113 | # next rules support "make foo.[oi]" |
duke@435 | 114 | |
duke@435 | 115 | %.o %.i %.s: |
duke@435 | 116 | $(MAKE) -f vm.make $(MFLAGS) $@ |
duke@435 | 117 | #$(MAKE) -f vm.make $@ |
duke@435 | 118 | |
duke@435 | 119 | # this should force everything to be rebuilt |
duke@435 | 120 | clean: |
duke@435 | 121 | rm -f $(GENERATED)/*.class |
duke@435 | 122 | $(MAKE) -f vm.make $(MFLAGS) clean |
duke@435 | 123 | |
duke@435 | 124 | # just in case it doesn't, this should do it |
duke@435 | 125 | realclean: |
duke@435 | 126 | $(MAKE) -f vm.make $(MFLAGS) clean |
duke@435 | 127 | rm -fr $(GENERATED) |
duke@435 | 128 | |
duke@435 | 129 | .PHONY: default vm_build_preliminaries |
duke@435 | 130 | .PHONY: lists ad_stuff jvmti_stuff sa_stuff the_vm clean realclean |
duke@435 | 131 | .PHONY: checks check_os_version install |