Mercurial > hg > truffle
annotate make/windows/build.make @ 12690:c3bdd186e6cf
fix possible NPE in TruffleCompiler with TraceTruffleCompilation and background compilation enabled.
With background compilation, the installed code can already be invalidated when compiledMethod.getCode() is called, in which case it returns null.
author | Andreas Woess <andreas.woess@jku.at> |
---|---|
date | Wed, 06 Nov 2013 13:31:28 +0100 |
parents | 836a62f43af9 |
children | be896a1983c0 |
rev | line source |
---|---|
0 | 1 # |
9152 | 2 # Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. |
0 | 3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 # | |
5 # This code is free software; you can redistribute it and/or modify it | |
6 # under the terms of the GNU General Public License version 2 only, as | |
7 # published by the Free Software Foundation. | |
8 # | |
9 # This code is distributed in the hope that it will be useful, but WITHOUT | |
10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
11 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
12 # version 2 for more details (a copy is included in the LICENSE file that | |
13 # accompanied this code). | |
14 # | |
15 # You should have received a copy of the GNU General Public License version | |
16 # 2 along with this work; if not, write to the Free Software Foundation, | |
17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | |
18 # | |
1552
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
1328
diff
changeset
|
19 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
1328
diff
changeset
|
20 # or visit www.oracle.com if you need additional information or have any |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
1328
diff
changeset
|
21 # questions. |
1783 | 22 # |
0 | 23 # |
24 | |
25 # Note: this makefile is invoked both from build.bat and from the J2SE | |
26 # control workspace in exactly the same manner; the required | |
27 # environment variables (Variant, WorkSpace, BootStrapDir, BuildUser, HOTSPOT_BUILD_VERSION) | |
28 # are passed in as command line arguments. | |
29 | |
1328
39e409a664b3
6938185: 3/4 6923488 breaks Windows command shell builds
dcubed
parents:
1322
diff
changeset
|
30 # Note: Running nmake or build.bat from the Windows command shell requires |
39e409a664b3
6938185: 3/4 6923488 breaks Windows command shell builds
dcubed
parents:
1322
diff
changeset
|
31 # that "sh" be accessible on the PATH. An MKS install does this. |
39e409a664b3
6938185: 3/4 6923488 breaks Windows command shell builds
dcubed
parents:
1322
diff
changeset
|
32 |
0 | 33 # SA components are built if BUILD_WIN_SA=1 is specified. |
34 # See notes in README. This produces files: | |
35 # 1. sa-jdi.jar - This is built before building jvm.dll | |
7408
892acf0431ef
7153050: remove crufty '_g' support from HotSpot repo makefiles
dcubed
parents:
6022
diff
changeset
|
36 # 2. sawindbg.dll - Native library for SA - This is built after jvm.dll |
0 | 37 # - Also, .lib, .map, .pdb. |
38 # | |
39 # Please refer to ./makefiles/sa.make | |
40 | |
41 # If we haven't set an ARCH yet use x86 | |
42 # create.bat and build.bat will set it, if used. | |
43 !ifndef ARCH | |
44 ARCH=x86 | |
45 !endif | |
46 | |
47 | |
48 # Must be one of these values (if value comes in from env, can't trust it) | |
49 !if "$(ARCH)" != "x86" | |
50 !if "$(ARCH)" != "ia64" | |
51 ARCH=x86 | |
52 !endif | |
53 !endif | |
54 | |
55 # At this point we should be certain that ARCH has a definition | |
56 # now determine the BUILDARCH | |
57 # | |
58 | |
59 # the default BUILDARCH | |
60 BUILDARCH=i486 | |
61 | |
62 # Allow control workspace to force Itanium or AMD64 builds with LP64 | |
63 ARCH_TEXT= | |
64 !ifdef LP64 | |
65 !if "$(LP64)" == "1" | |
66 ARCH_TEXT=64-Bit | |
67 !if "$(ARCH)" == "x86" | |
68 BUILDARCH=amd64 | |
69 !else | |
70 BUILDARCH=ia64 | |
71 !endif | |
72 !endif | |
73 !endif | |
74 | |
75 !if "$(BUILDARCH)" != "ia64" | |
76 !ifndef CC_INTERP | |
1918 | 77 !ifndef FORCE_TIERED |
0 | 78 FORCE_TIERED=1 |
79 !endif | |
80 !endif | |
1918 | 81 !endif |
0 | 82 |
83 !if "$(BUILDARCH)" == "amd64" | |
84 Platform_arch=x86 | |
85 Platform_arch_model=x86_64 | |
86 !endif | |
87 !if "$(BUILDARCH)" == "i486" | |
88 Platform_arch=x86 | |
89 Platform_arch_model=x86_32 | |
90 !endif | |
91 | |
92 # Supply these from the command line or the environment | |
93 # It doesn't make sense to default this one | |
94 Variant= | |
95 # It doesn't make sense to default this one | |
96 WorkSpace= | |
97 | |
98 variantDir = windows_$(BUILDARCH)_$(Variant) | |
99 | |
100 realVariant=$(Variant) | |
101 VARIANT_TEXT=Core | |
102 !if "$(Variant)" == "compiler1" | |
103 VARIANT_TEXT=Client | |
104 !elseif "$(Variant)" == "compiler2" | |
1918 | 105 !if "$(FORCE_TIERED)" == "1" |
0 | 106 VARIANT_TEXT=Server |
107 realVariant=tiered | |
108 !else | |
109 VARIANT_TEXT=Server | |
110 !endif | |
111 !elseif "$(Variant)" == "tiered" | |
112 VARIANT_TEXT=Tiered | |
4572
76841bdd5f3e
(Windows) Add Graal build configurations (with GRAAL defined) and fix build command.
Andreas Woess <andreas.woess@jku.at>
parents:
3310
diff
changeset
|
113 !elseif "$(Variant)" == "graal" |
76841bdd5f3e
(Windows) Add Graal build configurations (with GRAAL defined) and fix build command.
Andreas Woess <andreas.woess@jku.at>
parents:
3310
diff
changeset
|
114 VARIANT_TEXT=Graal |
0 | 115 !endif |
116 | |
117 ######################################################################### | |
7408
892acf0431ef
7153050: remove crufty '_g' support from HotSpot repo makefiles
dcubed
parents:
6022
diff
changeset
|
118 # Parameters for VERSIONINFO resource for jvm.dll. |
0 | 119 # These can be overridden via the nmake.exe command line. |
120 # They are overridden by RE during the control builds. | |
121 # | |
122 !include "$(WorkSpace)/make/hotspot_version" | |
123 | |
91
a294fd0c4b38
6583644: Move all managed/SCCS files out of 'build' into 'make' directory
kamg
parents:
0
diff
changeset
|
124 # Define HOTSPOT_VM_DISTRO based on settings in make/openjdk_distro |
a294fd0c4b38
6583644: Move all managed/SCCS files out of 'build' into 'make' directory
kamg
parents:
0
diff
changeset
|
125 # or make/hotspot_distro. |
0 | 126 !ifndef HOTSPOT_VM_DISTRO |
91
a294fd0c4b38
6583644: Move all managed/SCCS files out of 'build' into 'make' directory
kamg
parents:
0
diff
changeset
|
127 !if exists($(WorkSpace)\src\closed) |
3310 | 128 |
129 # if the build is for JDK6 or earlier version, it should include jdk6_hotspot_distro, | |
130 # instead of hotspot_distro. | |
131 JDK6_OR_EARLIER=0 | |
132 !if "$(JDK_MAJOR_VERSION)" != "" && "$(JDK_MINOR_VERSION)" != "" && "$(JDK_MICRO_VERSION)" != "" | |
133 !if $(JDK_MAJOR_VERSION) == 1 && $(JDK_MINOR_VERSION) < 7 | |
134 JDK6_OR_EARLIER=1 | |
135 !endif | |
136 !else | |
137 !if $(JDK_MAJOR_VER) == 1 && $(JDK_MINOR_VER) < 7 | |
138 JDK6_OR_EARLIER=1 | |
139 !endif | |
140 !endif | |
141 | |
142 !if $(JDK6_OR_EARLIER) == 1 | |
143 !include $(WorkSpace)\make\jdk6_hotspot_distro | |
144 !else | |
91
a294fd0c4b38
6583644: Move all managed/SCCS files out of 'build' into 'make' directory
kamg
parents:
0
diff
changeset
|
145 !include $(WorkSpace)\make\hotspot_distro |
3310 | 146 !endif |
0 | 147 !else |
91
a294fd0c4b38
6583644: Move all managed/SCCS files out of 'build' into 'make' directory
kamg
parents:
0
diff
changeset
|
148 !include $(WorkSpace)\make\openjdk_distro |
0 | 149 !endif |
150 !endif | |
151 | |
152 # Following the Web Start / Plugin model here.... | |
153 # We can have update versions like "01a", but Windows requires | |
154 # we use only integers in the file version field. So: | |
155 # JDK_UPDATE_VER = JDK_UPDATE_VERSION * 10 + EXCEPTION_VERSION | |
1783 | 156 # |
0 | 157 JDK_UPDATE_VER=0 |
158 JDK_BUILD_NUMBER=0 | |
159 | |
160 HS_FILEDESC=$(HOTSPOT_VM_DISTRO) $(ARCH_TEXT) $(VARIANT_TEXT) VM | |
161 | |
162 # JDK ProductVersion: | |
163 # 1.5.0_<wx>-b<yz> will have DLL version 5.0.wx*10.yz | |
164 # Thus, 1.5.0_10-b04 will be 5.0.100.4 | |
165 # 1.6.0-b01 will be 6.0.0.1 | |
166 # 1.6.0_01a-b02 will be 6.0.11.2 | |
167 # | |
168 # JDK_* variables are defined in make/hotspot_version or on command line | |
1783 | 169 # |
0 | 170 JDK_VER=$(JDK_MINOR_VER),$(JDK_MICRO_VER),$(JDK_UPDATE_VER),$(JDK_BUILD_NUMBER) |
171 JDK_DOTVER=$(JDK_MINOR_VER).$(JDK_MICRO_VER).$(JDK_UPDATE_VER).$(JDK_BUILD_NUMBER) | |
172 !if "$(JRE_RELEASE_VERSION)" == "" | |
173 JRE_RELEASE_VER=$(JDK_MAJOR_VER).$(JDK_MINOR_VER).$(JDK_MICRO_VER) | |
174 !else | |
175 JRE_RELEASE_VER=$(JRE_RELEASE_VERSION) | |
176 !endif | |
177 !if "$(JDK_MKTG_VERSION)" == "" | |
178 JDK_MKTG_VERSION=$(JDK_MINOR_VER).$(JDK_MICRO_VER) | |
179 !endif | |
180 | |
181 # Hotspot Express VM FileVersion: | |
182 # 10.0-b<yz> will have DLL version 10.0.0.yz (need 4 numbers). | |
1783 | 183 # |
0 | 184 # HS_* variables are defined in make/hotspot_version |
185 # | |
186 HS_VER=$(HS_MAJOR_VER),$(HS_MINOR_VER),0,$(HS_BUILD_NUMBER) | |
187 HS_DOTVER=$(HS_MAJOR_VER).$(HS_MINOR_VER).0.$(HS_BUILD_NUMBER) | |
188 | |
189 !if "$(HOTSPOT_RELEASE_VERSION)" == "" | |
190 HOTSPOT_RELEASE_VERSION=$(HS_MAJOR_VER).$(HS_MINOR_VER)-b$(HS_BUILD_NUMBER) | |
191 !endif | |
192 | |
193 !if "$(HOTSPOT_BUILD_VERSION)" == "" | |
194 HS_BUILD_VER=$(HOTSPOT_RELEASE_VERSION) | |
195 !else | |
196 HS_BUILD_VER=$(HOTSPOT_RELEASE_VERSION)-$(HOTSPOT_BUILD_VERSION) | |
197 !endif | |
198 | |
199 # End VERSIONINFO parameters | |
200 | |
10405 | 201 # if hotspot-only build and/or OPENJDK isn't passed down, need to set OPENJDK |
202 !ifndef OPENJDK | |
203 !if !exists($(WorkSpace)\src\closed) | |
204 OPENJDK=true | |
205 !endif | |
206 !endif | |
0 | 207 |
208 # We don't support SA on ia64, and we can't | |
1783 | 209 # build it if we are using a version of Vis Studio |
0 | 210 # older than .Net 2003. |
211 # SA_INCLUDE and SA_LIB are hold-overs from a previous | |
212 # implementation in which we could build SA using | |
213 # Debugging Tools For Windows, in which the .h/.lib files | |
214 # and the .dlls are in different places than | |
215 # they are for Vis Studio .Net 2003. | |
216 # If that code ever needs to be resurrected, these vars | |
217 # can be set here. They are used in makefiles/sa.make. | |
218 | |
219 checkSA:: | |
220 | |
221 !if "$(BUILD_WIN_SA)" != "1" | |
222 checkSA:: | |
223 @echo Not building SA: BUILD_WIN_SA != 1 | |
224 | |
225 !elseif "$(ARCH)" == "ia64" | |
226 BUILD_WIN_SA = 0 | |
227 checkSA:: | |
228 @echo Not building SA: ARCH = ia64 | |
229 | |
230 !endif # ! "$(BUILD_WIN_SA)" != "1" | |
231 | |
232 ######################################################################### | |
233 | |
234 defaultTarget: product | |
235 | |
236 # The product or release build is an optimized build, and is the default | |
237 | |
238 # note that since all the build targets depend on local.make that BUILDARCH | |
239 # and Platform_arch and Platform_arch_model will get set in local.make | |
240 # and there is no need to pass them thru here on the command line | |
241 # | |
242 product release optimized: checks $(variantDir) $(variantDir)\local.make sanity | |
243 cd $(variantDir) | |
91
a294fd0c4b38
6583644: Move all managed/SCCS files out of 'build' into 'make' directory
kamg
parents:
0
diff
changeset
|
244 nmake -nologo -f $(WorkSpace)\make\windows\makefiles\top.make BUILD_FLAVOR=product ARCH=$(ARCH) |
0 | 245 |
9152 | 246 # The debug build is an optional build |
247 debug: checks $(variantDir) $(variantDir)\local.make sanity | |
0 | 248 cd $(variantDir) |
91
a294fd0c4b38
6583644: Move all managed/SCCS files out of 'build' into 'make' directory
kamg
parents:
0
diff
changeset
|
249 nmake -nologo -f $(WorkSpace)\make\windows\makefiles\top.make BUILD_FLAVOR=debug ARCH=$(ARCH) |
0 | 250 fastdebug: checks $(variantDir) $(variantDir)\local.make sanity |
251 cd $(variantDir) | |
91
a294fd0c4b38
6583644: Move all managed/SCCS files out of 'build' into 'make' directory
kamg
parents:
0
diff
changeset
|
252 nmake -nologo -f $(WorkSpace)\make\windows\makefiles\top.make BUILD_FLAVOR=fastdebug ARCH=$(ARCH) |
0 | 253 |
1322
21141e23627a
6923488: 4/4 need minor tweaks to HotSpot build for Cygwin
dcubed
parents:
456
diff
changeset
|
254 # target to create just the directory structure |
21141e23627a
6923488: 4/4 need minor tweaks to HotSpot build for Cygwin
dcubed
parents:
456
diff
changeset
|
255 tree: checks $(variantDir) $(variantDir)\local.make sanity |
21141e23627a
6923488: 4/4 need minor tweaks to HotSpot build for Cygwin
dcubed
parents:
456
diff
changeset
|
256 mkdir $(variantDir)\product |
21141e23627a
6923488: 4/4 need minor tweaks to HotSpot build for Cygwin
dcubed
parents:
456
diff
changeset
|
257 mkdir $(variantDir)\debug |
21141e23627a
6923488: 4/4 need minor tweaks to HotSpot build for Cygwin
dcubed
parents:
456
diff
changeset
|
258 mkdir $(variantDir)\fastdebug |
21141e23627a
6923488: 4/4 need minor tweaks to HotSpot build for Cygwin
dcubed
parents:
456
diff
changeset
|
259 |
0 | 260 sanity: |
261 @ echo; | |
262 @ cd $(variantDir) | |
91
a294fd0c4b38
6583644: Move all managed/SCCS files out of 'build' into 'make' directory
kamg
parents:
0
diff
changeset
|
263 @ nmake -nologo -f $(WorkSpace)\make\windows\makefiles\sanity.make |
0 | 264 @ cd .. |
265 @ echo; | |
266 | |
267 clean: checkVariant | |
268 - rm -r -f $(variantDir) | |
269 | |
270 $(variantDir): | |
271 mkdir $(variantDir) | |
272 | |
273 $(variantDir)\local.make: checks | |
274 @ echo # Generated file > $@ | |
275 @ echo Variant=$(realVariant) >> $@ | |
276 @ echo WorkSpace=$(WorkSpace) >> $@ | |
277 @ echo BootStrapDir=$(BootStrapDir) >> $@ | |
3310 | 278 @ if "$(USERNAME)" NEQ "" echo BuildUser=$(USERNAME) >> $@ |
0 | 279 @ echo HS_VER=$(HS_VER) >> $@ |
280 @ echo HS_DOTVER=$(HS_DOTVER) >> $@ | |
281 @ echo HS_COMPANY=$(COMPANY_NAME) >> $@ | |
282 @ echo HS_FILEDESC=$(HS_FILEDESC) >> $@ | |
283 @ echo HOTSPOT_VM_DISTRO=$(HOTSPOT_VM_DISTRO) >> $@ | |
10405 | 284 @ if "$(OPENJDK)" NEQ "" echo OPENJDK=$(OPENJDK) >> $@ |
0 | 285 @ echo HS_COPYRIGHT=$(HOTSPOT_VM_COPYRIGHT) >> $@ |
286 @ echo HS_NAME=$(PRODUCT_NAME) $(JDK_MKTG_VERSION) >> $@ | |
287 @ echo HS_BUILD_VER=$(HS_BUILD_VER) >> $@ | |
288 @ echo BUILD_WIN_SA=$(BUILD_WIN_SA) >> $@ | |
289 @ echo SA_BUILD_VERSION=$(HS_BUILD_VER) >> $@ | |
290 @ echo SA_INCLUDE=$(SA_INCLUDE) >> $@ | |
291 @ echo SA_LIB=$(SA_LIB) >> $@ | |
292 @ echo JDK_VER=$(JDK_VER) >> $@ | |
293 @ echo JDK_DOTVER=$(JDK_DOTVER) >> $@ | |
294 @ echo JRE_RELEASE_VER=$(JRE_RELEASE_VER) >> $@ | |
295 @ echo BUILDARCH=$(BUILDARCH) >> $@ | |
296 @ echo Platform_arch=$(Platform_arch) >> $@ | |
297 @ echo Platform_arch_model=$(Platform_arch_model) >> $@ | |
5897
7292cff45988
7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents:
3310
diff
changeset
|
298 @ echo CXX=$(CXX) >> $@ |
7292cff45988
7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents:
3310
diff
changeset
|
299 @ echo LD=$(LD) >> $@ |
7292cff45988
7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents:
3310
diff
changeset
|
300 @ echo MT=$(MT) >> $@ |
7292cff45988
7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable
erikj
parents:
3310
diff
changeset
|
301 @ echo RC=$(RC) >> $@ |
91
a294fd0c4b38
6583644: Move all managed/SCCS files out of 'build' into 'make' directory
kamg
parents:
0
diff
changeset
|
302 @ sh $(WorkSpace)/make/windows/get_msc_ver.sh >> $@ |
6020
d652a62d6e03
7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents:
3310
diff
changeset
|
303 @ if "$(ENABLE_FULL_DEBUG_SYMBOLS)" NEQ "" echo ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS) >> $@ |
d652a62d6e03
7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents:
3310
diff
changeset
|
304 @ if "$(ZIP_DEBUGINFO_FILES)" NEQ "" echo ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES) >> $@ |
d652a62d6e03
7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents:
3310
diff
changeset
|
305 @ if "$(RM)" NEQ "" echo RM=$(RM) >> $@ |
d652a62d6e03
7102323: RFE: enable Full Debug Symbols Phase 1 on Solaris
dcubed
parents:
3310
diff
changeset
|
306 @ if "$(ZIPEXE)" NEQ "" echo ZIPEXE=$(ZIPEXE) >> $@ |
0 | 307 |
308 checks: checkVariant checkWorkSpace checkSA | |
309 | |
310 checkVariant: | |
8883 | 311 @ if "$(Variant)"=="" echo Need to specify "Variant=[graal|tiered|compiler2|compiler1|core]" && false |
312 @ if "$(Variant)" NEQ "graal" if "$(Variant)" NEQ "tiered" if "$(Variant)" NEQ "compiler2" if "$(Variant)" NEQ "compiler1" if "$(Variant)" NEQ "core" \ | |
313 echo Need to specify "Variant=[graal|tiered|compiler2|compiler1|core]" && false | |
0 | 314 |
315 checkWorkSpace: | |
316 @ if "$(WorkSpace)"=="" echo Need to specify "WorkSpace=..." && false | |
317 | |
318 checkBuildID: | |
319 @ if "$(BuildID)"=="" echo Need to specify "BuildID=..." && false |