Mon, 19 Aug 2013 17:47:21 +0200
8015614: Update build settings
Reviewed-by: tbell, dholmes, ahgross
1 #
2 # Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
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 #
19 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 # or visit www.oracle.com if you need additional information or have any
21 # questions.
22 #
23 #
25 # Resource file containing VERSIONINFO
26 Res_Files=.\version.res
28 !include ..\generated\objfiles.make
30 COMMONSRC=$(WorkSpace)\src
31 ALTSRC=$(WorkSpace)\src\closed
33 !ifdef RELEASE
34 CXX_FLAGS=$(CXX_FLAGS) /D "PRODUCT"
35 !else
36 CXX_FLAGS=$(CXX_FLAGS) /D "ASSERT"
37 !endif
39 !if "$(Variant)" == "core"
40 # No need to define anything, CORE is defined as !COMPILER1 && !COMPILER2
41 !endif
43 !if "$(Variant)" == "compiler1"
44 CXX_FLAGS=$(CXX_FLAGS) /D "COMPILER1"
45 !endif
47 !if "$(Variant)" == "compiler2"
48 CXX_FLAGS=$(CXX_FLAGS) /D "COMPILER2"
49 !endif
51 !if "$(Variant)" == "tiered"
52 CXX_FLAGS=$(CXX_FLAGS) /D "COMPILER1" /D "COMPILER2"
53 !endif
55 !if "$(BUILDARCH)" == "i486"
56 HOTSPOT_LIB_ARCH=i386
57 !else
58 HOTSPOT_LIB_ARCH=$(BUILDARCH)
59 !endif
61 # The following variables are defined in the generated local.make file.
62 CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_RELEASE_VERSION=\"$(HS_BUILD_VER)\""
63 CXX_FLAGS=$(CXX_FLAGS) /D "JRE_RELEASE_VERSION=\"$(JRE_RELEASE_VER)\""
64 CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_LIB_ARCH=\"$(HOTSPOT_LIB_ARCH)\""
65 CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_BUILD_TARGET=\"$(BUILD_FLAVOR)\""
66 CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_BUILD_USER=\"$(BuildUser)\""
67 CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_VM_DISTRO=\"$(HOTSPOT_VM_DISTRO)\""
69 CXX_FLAGS=$(CXX_FLAGS) $(CXX_INCLUDE_DIRS)
71 # Define that so jni.h is on correct side
72 CXX_FLAGS=$(CXX_FLAGS) /D "_JNI_IMPLEMENTATION_"
74 !if "$(BUILDARCH)" == "ia64"
75 STACK_SIZE="/STACK:1048576,262144"
76 !else
77 STACK_SIZE=
78 !endif
80 !if "$(BUILDARCH)" == "ia64"
81 # AsyncGetCallTrace is not supported on IA64 yet
82 AGCT_EXPORT=
83 !else
84 AGCT_EXPORT=/export:AsyncGetCallTrace
85 !endif
87 # If you modify exports below please do the corresponding changes in
88 # src/share/tools/ProjectCreator/WinGammaPlatformVC7.java
89 LD_FLAGS=$(LD_FLAGS) $(STACK_SIZE) /subsystem:windows /dll /base:0x8000000 \
90 /export:JNI_GetDefaultJavaVMInitArgs \
91 /export:JNI_CreateJavaVM \
92 /export:JVM_FindClassFromBootLoader \
93 /export:JNI_GetCreatedJavaVMs \
94 /export:jio_snprintf \
95 /export:jio_printf \
96 /export:jio_fprintf \
97 /export:jio_vfprintf \
98 /export:jio_vsnprintf \
99 $(AGCT_EXPORT) \
100 /export:JVM_GetVersionInfo \
101 /export:JVM_GetThreadStateNames \
102 /export:JVM_GetThreadStateValues \
103 /export:JVM_InitAgentProperties
105 CXX_INCLUDE_DIRS=/I "..\generated"
107 !if exists($(ALTSRC)\share\vm)
108 CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) /I "$(ALTSRC)\share\vm"
109 !endif
111 !if exists($(ALTSRC)\os\windows\vm)
112 CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) /I "$(ALTSRC)\os\windows\vm"
113 !endif
115 !if exists($(ALTSRC)\os_cpu\windows_$(Platform_arch)\vm)
116 CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) /I "$(ALTSRC)\os_cpu\windows_$(Platform_arch)\vm"
117 !endif
119 !if exists($(ALTSRC)\cpu\$(Platform_arch)\vm)
120 CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) /I "$(ALTSRC)\cpu\$(Platform_arch)\vm"
121 !endif
123 CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) \
124 /I "$(COMMONSRC)\share\vm" \
125 /I "$(COMMONSRC)\share\vm\precompiled" \
126 /I "$(COMMONSRC)\share\vm\prims" \
127 /I "$(COMMONSRC)\os\windows\vm" \
128 /I "$(COMMONSRC)\os_cpu\windows_$(Platform_arch)\vm" \
129 /I "$(COMMONSRC)\cpu\$(Platform_arch)\vm"
131 CXX_DONT_USE_PCH=/D DONT_USE_PRECOMPILED_HEADER
133 !if "$(USE_PRECOMPILED_HEADER)" != "0"
134 CXX_USE_PCH=/Fp"vm.pch" /Yu"precompiled.hpp"
135 !if "$(COMPILER_NAME)" == "VS2012"
136 # VS2012 requires this object file to be listed:
137 LD_FLAGS=$(LD_FLAGS) _build_pch_file.obj
138 !endif
139 !else
140 CXX_USE_PCH=$(CXX_DONT_USE_PCH)
141 !endif
143 # Where to find the source code for the virtual machine (is this used?)
144 VM_PATH=../generated
145 VM_PATH=$(VM_PATH);../generated/adfiles
146 VM_PATH=$(VM_PATH);../generated/jvmtifiles
147 VM_PATH=$(VM_PATH);../generated/tracefiles
148 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/c1
149 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/compiler
150 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/code
151 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/interpreter
152 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/ci
153 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/classfile
154 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/parallelScavenge
155 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/shared
156 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/parNew
157 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/concurrentMarkSweep
158 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/g1
159 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_interface
160 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/asm
161 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/memory
162 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/oops
163 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/prims
164 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/prims/wbtestmethods
165 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/runtime
166 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/services
167 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/trace
168 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/utilities
169 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/libadt
170 VM_PATH=$(VM_PATH);$(WorkSpace)/src/os/windows/vm
171 VM_PATH=$(VM_PATH);$(WorkSpace)/src/os_cpu/windows_$(Platform_arch)/vm
172 VM_PATH=$(VM_PATH);$(WorkSpace)/src/cpu/$(Platform_arch)/vm
173 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/opto
175 !if exists($(ALTSRC)\share\vm\jfr)
176 VM_PATH=$(VM_PATH);$(ALTSRC)/share/vm/jfr
177 VM_PATH=$(VM_PATH);$(ALTSRC)/share/vm/jfr/buffers
178 !endif
180 VM_PATH={$(VM_PATH)}
182 # Special case files not using precompiled header files.
184 c1_RInfo_$(Platform_arch).obj: $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp
185 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp
187 os_windows.obj: $(WorkSpace)\src\os\windows\vm\os_windows.cpp
188 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\os_windows.cpp
190 os_windows_$(Platform_arch).obj: $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp
191 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp
193 osThread_windows.obj: $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp
194 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp
196 conditionVar_windows.obj: $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp
197 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp
199 getThread_windows_$(Platform_arch).obj: $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp
200 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp
202 opcodes.obj: $(WorkSpace)\src\share\vm\opto\opcodes.cpp
203 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\share\vm\opto\opcodes.cpp
205 bytecodeInterpreter.obj: $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp
206 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp
208 bytecodeInterpreterWithChecks.obj: ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp
209 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp
211 # Default rules for the Virtual Machine
212 {$(COMMONSRC)\share\vm\c1}.cpp.obj::
213 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
215 {$(COMMONSRC)\share\vm\compiler}.cpp.obj::
216 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
218 {$(COMMONSRC)\share\vm\code}.cpp.obj::
219 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
221 {$(COMMONSRC)\share\vm\interpreter}.cpp.obj::
222 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
224 {$(COMMONSRC)\share\vm\ci}.cpp.obj::
225 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
227 {$(COMMONSRC)\share\vm\classfile}.cpp.obj::
228 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
230 {$(COMMONSRC)\share\vm\gc_implementation\parallelScavenge}.cpp.obj::
231 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
233 {$(COMMONSRC)\share\vm\gc_implementation\shared}.cpp.obj::
234 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
236 {$(COMMONSRC)\share\vm\gc_implementation\parNew}.cpp.obj::
237 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
239 {$(COMMONSRC)\share\vm\gc_implementation\concurrentMarkSweep}.cpp.obj::
240 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
242 {$(COMMONSRC)\share\vm\gc_implementation\g1}.cpp.obj::
243 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
245 {$(COMMONSRC)\share\vm\gc_interface}.cpp.obj::
246 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
248 {$(COMMONSRC)\share\vm\asm}.cpp.obj::
249 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
251 {$(COMMONSRC)\share\vm\memory}.cpp.obj::
252 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
254 {$(COMMONSRC)\share\vm\oops}.cpp.obj::
255 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
257 {$(COMMONSRC)\share\vm\prims}.cpp.obj::
258 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
260 {$(COMMONSRC)\share\vm\prims\wbtestmethods}.cpp.obj::
261 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
263 {$(COMMONSRC)\share\vm\runtime}.cpp.obj::
264 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
266 {$(COMMONSRC)\share\vm\services}.cpp.obj::
267 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
269 {$(COMMONSRC)\share\vm\trace}.cpp.obj::
270 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
272 {$(COMMONSRC)\share\vm\utilities}.cpp.obj::
273 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
275 {$(COMMONSRC)\share\vm\libadt}.cpp.obj::
276 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
278 {$(COMMONSRC)\share\vm\opto}.cpp.obj::
279 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
281 {$(COMMONSRC)\os\windows\vm}.cpp.obj::
282 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
284 # This guy should remain a single colon rule because
285 # otherwise we can't specify the output filename.
286 {$(COMMONSRC)\os\windows\vm}.rc.res:
287 @$(RC) $(RC_FLAGS) /fo"$@" $<
289 {$(COMMONSRC)\cpu\$(Platform_arch)\vm}.cpp.obj::
290 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
292 {$(COMMONSRC)\os_cpu\windows_$(Platform_arch)\vm}.cpp.obj::
293 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
295 {$(ALTSRC)\share\vm\c1}.cpp.obj::
296 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
298 {$(ALTSRC)\share\vm\compiler}.cpp.obj::
299 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
301 {$(ALTSRC)\share\vm\code}.cpp.obj::
302 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
304 {$(ALTSRC)\share\vm\interpreter}.cpp.obj::
305 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
307 {$(ALTSRC)\share\vm\ci}.cpp.obj::
308 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
310 {$(ALTSRC)\share\vm\classfile}.cpp.obj::
311 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
313 {$(ALTSRC)\share\vm\gc_implementation\parallelScavenge}.cpp.obj::
314 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
316 {$(ALTSRC)\share\vm\gc_implementation\shared}.cpp.obj::
317 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
319 {$(ALTSRC)\share\vm\gc_implementation\parNew}.cpp.obj::
320 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
322 {$(ALTSRC)\share\vm\gc_implementation\concurrentMarkSweep}.cpp.obj::
323 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
325 {$(ALTSRC)\share\vm\gc_implementation\g1}.cpp.obj::
326 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
328 {$(ALTSRC)\share\vm\gc_interface}.cpp.obj::
329 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
331 {$(ALTSRC)\share\vm\asm}.cpp.obj::
332 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
334 {$(ALTSRC)\share\vm\memory}.cpp.obj::
335 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
337 {$(ALTSRC)\share\vm\oops}.cpp.obj::
338 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
340 {$(ALTSRC)\share\vm\prims}.cpp.obj::
341 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
343 {$(ALTSRC)\share\vm\prims\wbtestmethods}.cpp.obj::
344 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
346 {$(ALTSRC)\share\vm\runtime}.cpp.obj::
347 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
349 {$(ALTSRC)\share\vm\services}.cpp.obj::
350 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
352 {$(ALTSRC)\share\vm\trace}.cpp.obj::
353 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
355 {$(ALTSRC)\share\vm\utilities}.cpp.obj::
356 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
358 {$(ALTSRC)\share\vm\libadt}.cpp.obj::
359 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
361 {$(ALTSRC)\share\vm\opto}.cpp.obj::
362 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
364 {$(ALTSRC)\os\windows\vm}.cpp.obj::
365 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
367 # otherwise we can't specify the output filename.
368 {$(ALTSRC)\os\windows\vm}.rc.res:
369 @$(RC) $(RC_FLAGS) /fo"$@" $<
371 {$(ALTSRC)\cpu\$(Platform_arch)\vm}.cpp.obj::
372 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
374 {$(ALTSRC)\os_cpu\windows_$(Platform_arch)\vm}.cpp.obj::
375 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
377 {..\generated\incls}.cpp.obj::
378 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
380 {..\generated\adfiles}.cpp.obj::
381 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
383 {..\generated\jvmtifiles}.cpp.obj::
384 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
386 {..\generated\tracefiles}.cpp.obj::
387 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
389 {$(ALTSRC)\share\vm\jfr}.cpp.obj::
390 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
392 {$(ALTSRC)\share\vm\jfr\buffers}.cpp.obj::
393 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $<
395 default::
397 _build_pch_file.obj:
398 @echo #include "precompiled.hpp" > ../generated/_build_pch_file.cpp
399 $(CXX) $(CXX_FLAGS) /Fp"vm.pch" /Yc"precompiled.hpp" /c ../generated/_build_pch_file.cpp