Thu, 05 Jun 2008 15:57:56 -0700
6711316: Open source the Garbage-First garbage collector
Summary: First mercurial integration of the code for the Garbage-First garbage collector.
Reviewed-by: apetrusenko, iveresov, jmasa, sgoldman, tonyp, ysr
1 #
2 # Copyright 1997-2007 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
20 # CA 95054 USA or visit www.sun.com if you need additional information or
21 # have any questions.
22 #
23 #
25 # Resource file containing VERSIONINFO
26 Res_Files=.\version.res
28 !ifdef RELEASE
29 !ifdef DEVELOP
30 CPP_FLAGS=$(CPP_FLAGS) /D "DEBUG"
31 !else
32 CPP_FLAGS=$(CPP_FLAGS) /D "PRODUCT"
33 !endif
34 !else
35 CPP_FLAGS=$(CPP_FLAGS) /D "ASSERT"
36 !endif
38 !if "$(Variant)" == "core"
39 # No need to define anything, CORE is defined as !COMPILER1 && !COMPILER2
40 !endif
42 !if "$(Variant)" == "kernel"
43 CPP_FLAGS=$(CPP_FLAGS) /D "KERNEL"
44 !endif
46 !if "$(Variant)" == "compiler1"
47 CPP_FLAGS=$(CPP_FLAGS) /D "COMPILER1"
48 !endif
50 !if "$(Variant)" == "compiler2"
51 CPP_FLAGS=$(CPP_FLAGS) /D "COMPILER2"
52 !endif
54 !if "$(Variant)" == "tiered"
55 CPP_FLAGS=$(CPP_FLAGS) /D "COMPILER1" /D "COMPILER2"
56 !endif
58 # The following variables are defined in the generated local.make file.
59 CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_RELEASE_VERSION=\"$(HS_BUILD_VER)\""
60 CPP_FLAGS=$(CPP_FLAGS) /D "JRE_RELEASE_VERSION=\"$(JRE_RELEASE_VER)\""
61 CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_LIB_ARCH=\"$(BUILDARCH)\""
62 CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_BUILD_TARGET=\"$(BUILD_FLAVOR)\""
63 CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_BUILD_USER=\"$(BuildUser)\""
64 CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_VM_DISTRO=\"$(HOTSPOT_VM_DISTRO)\""
66 CPP_FLAGS=$(CPP_FLAGS) /D "WIN32" /D "_WINDOWS" $(CPP_INCLUDE_DIRS)
68 # Must specify this for sharedRuntimeTrig.cpp
69 CPP_FLAGS=$(CPP_FLAGS) /D "VM_LITTLE_ENDIAN"
71 # Define that so jni.h is on correct side
72 CPP_FLAGS=$(CPP_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 !if "$(Variant)" == "kernel"
85 AGCT_EXPORT=
86 !else
87 AGCT_EXPORT=/export:AsyncGetCallTrace
88 !endif
89 !endif
91 LINK_FLAGS=$(LINK_FLAGS) $(STACK_SIZE) /subsystem:windows /dll /base:0x8000000 \
92 /export:JNI_GetDefaultJavaVMInitArgs /export:JNI_CreateJavaVM \
93 /export:JNI_GetCreatedJavaVMs /export:jio_snprintf \
94 /export:jio_printf /export:jio_fprintf \
95 /export:jio_vfprintf /export:jio_vsnprintf $(AGCT_EXPORT) \
96 /export:JVM_GetVersionInfo \
97 /export:JVM_GetThreadStateNames /export:JVM_GetThreadStateValues \
98 /export:JVM_InitAgentProperties
100 CPP_INCLUDE_DIRS=\
101 /I "..\generated" \
102 /I "..\generated\jvmtifiles" \
103 /I "$(WorkSpace)\src\share\vm\c1" \
104 /I "$(WorkSpace)\src\share\vm\compiler" \
105 /I "$(WorkSpace)\src\share\vm\code" \
106 /I "$(WorkSpace)\src\share\vm\interpreter" \
107 /I "$(WorkSpace)\src\share\vm\ci" \
108 /I "$(WorkSpace)\src\share\vm\classfile" \
109 /I "$(WorkSpace)\src\share\vm\gc_implementation\parallelScavenge"\
110 /I "$(WorkSpace)\src\share\vm\gc_implementation\shared"\
111 /I "$(WorkSpace)\src\share\vm\gc_implementation\parNew"\
112 /I "$(WorkSpace)\src\share\vm\gc_implementation\concurrentMarkSweep"\
113 /I "$(WorkSpace)\src\share\vm\gc_implementation\g1"\
114 /I "$(WorkSpace)\src\share\vm\gc_interface"\
115 /I "$(WorkSpace)\src\share\vm\asm" \
116 /I "$(WorkSpace)\src\share\vm\memory" \
117 /I "$(WorkSpace)\src\share\vm\oops" \
118 /I "$(WorkSpace)\src\share\vm\prims" \
119 /I "$(WorkSpace)\src\share\vm\runtime" \
120 /I "$(WorkSpace)\src\share\vm\services" \
121 /I "$(WorkSpace)\src\share\vm\utilities" \
122 /I "$(WorkSpace)\src\share\vm\libadt" \
123 /I "$(WorkSpace)\src\share\vm\opto" \
124 /I "$(WorkSpace)\src\os\windows\vm" \
125 /I "$(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm" \
126 /I "$(WorkSpace)\src\cpu\$(Platform_arch)\vm"
128 CPP_USE_PCH=/Fp"vm.pch" /Yu"incls/_precompiled.incl"
130 # Where to find the source code for the virtual machine
131 VM_PATH=../generated/incls
132 VM_PATH=$(VM_PATH);../generated/jvmtifiles
133 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/c1
134 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/compiler
135 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/code
136 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/interpreter
137 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/ci
138 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/classfile
139 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/parallelScavenge
140 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/shared
141 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/parNew
142 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/concurrentMarkSweep
143 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/g1
144 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_interface
145 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/asm
146 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/memory
147 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/oops
148 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/prims
149 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/runtime
150 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/services
151 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/utilities
152 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/libadt
153 VM_PATH=$(VM_PATH);$(WorkSpace)/src/os/windows/vm
154 VM_PATH=$(VM_PATH);$(WorkSpace)/src/os_cpu/windows_$(Platform_arch)/vm
155 VM_PATH=$(VM_PATH);$(WorkSpace)/src/cpu/$(Platform_arch)/vm
156 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/opto
158 VM_PATH={$(VM_PATH)}
160 # Special case files not using precompiled header files.
162 c1_RInfo_$(Platform_arch).obj: $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp
163 $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp
165 os_windows.obj: $(WorkSpace)\src\os\windows\vm\os_windows.cpp
166 $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\os\windows\vm\os_windows.cpp
168 os_windows_$(Platform_arch).obj: $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp
169 $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp
171 osThread_windows.obj: $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp
172 $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp
174 conditionVar_windows.obj: $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp
175 $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp
177 getThread_windows_$(Platform_arch).obj: $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp
178 $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp
180 opcodes.obj: $(WorkSpace)\src\share\vm\opto\opcodes.cpp
181 $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\share\vm\opto\opcodes.cpp
183 bytecodeInterpreter.obj: $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp
184 $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp
186 bytecodeInterpreterWithChecks.obj: ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp
187 $(CPP) $(CPP_FLAGS) /c ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp
189 # Default rules for the Virtual Machine
190 {$(WorkSpace)\src\share\vm\c1}.cpp.obj::
191 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
193 {$(WorkSpace)\src\share\vm\compiler}.cpp.obj::
194 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
196 {$(WorkSpace)\src\share\vm\code}.cpp.obj::
197 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
199 {$(WorkSpace)\src\share\vm\interpreter}.cpp.obj::
200 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
202 {$(WorkSpace)\src\share\vm\ci}.cpp.obj::
203 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
205 {$(WorkSpace)\src\share\vm\classfile}.cpp.obj::
206 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
208 {$(WorkSpace)\src\share\vm\gc_implementation\parallelScavenge}.cpp.obj::
209 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
211 {$(WorkSpace)\src\share\vm\gc_implementation\shared}.cpp.obj::
212 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
214 {$(WorkSpace)\src\share\vm\gc_implementation\parNew}.cpp.obj::
215 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
217 {$(WorkSpace)\src\share\vm\gc_implementation\concurrentMarkSweep}.cpp.obj::
218 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
220 {$(WorkSpace)\src\share\vm\gc_implementation\g1}.cpp.obj::
221 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
223 {$(WorkSpace)\src\share\vm\gc_interface}.cpp.obj::
224 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
226 {$(WorkSpace)\src\share\vm\asm}.cpp.obj::
227 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
229 {$(WorkSpace)\src\share\vm\memory}.cpp.obj::
230 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
232 {$(WorkSpace)\src\share\vm\oops}.cpp.obj::
233 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
235 {$(WorkSpace)\src\share\vm\prims}.cpp.obj::
236 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
238 {$(WorkSpace)\src\share\vm\runtime}.cpp.obj::
239 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
241 {$(WorkSpace)\src\share\vm\services}.cpp.obj::
242 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
244 {$(WorkSpace)\src\share\vm\utilities}.cpp.obj::
245 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
247 {$(WorkSpace)\src\share\vm\libadt}.cpp.obj::
248 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
250 {$(WorkSpace)\src\share\vm\opto}.cpp.obj::
251 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
253 {$(WorkSpace)\src\os\windows\vm}.cpp.obj::
254 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
256 # This guy should remain a single colon rule because
257 # otherwise we can't specify the output filename.
258 {$(WorkSpace)\src\os\windows\vm}.rc.res:
259 @$(RC) $(RC_FLAGS) /fo"$@" $<
261 {$(WorkSpace)\src\cpu\$(Platform_arch)\vm}.cpp.obj::
262 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
264 {$(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm}.cpp.obj::
265 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
267 {..\generated\incls}.cpp.obj::
268 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
270 {..\generated\jvmtifiles}.cpp.obj::
271 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
273 default::
275 _build_pch_file.obj:
276 @echo #include "incls/_precompiled.incl" > ../generated/_build_pch_file.cpp
277 $(CPP) $(CPP_FLAGS) /Fp"vm.pch" /Yc"incls/_precompiled.incl" /c ../generated/_build_pch_file.cpp