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 # 24 25 # Resource file containing VERSIONINFO 26 Res_Files=.\version.res 27 28 !include ..\generated\objfiles.make 29 30 COMMONSRC=$(WorkSpace)\src 31 ALTSRC=$(WorkSpace)\src\closed 32 33 !ifdef RELEASE 34 CXX_FLAGS=$(CXX_FLAGS) /D "PRODUCT" 35 !else 36 CXX_FLAGS=$(CXX_FLAGS) /D "ASSERT" 37 !endif 38 39 !if "$(Variant)" == "compiler1" 40 CXX_FLAGS=$(CXX_FLAGS) /D "COMPILER1" 41 !endif 42 43 !if "$(Variant)" == "compiler2" 44 CXX_FLAGS=$(CXX_FLAGS) /D "COMPILER2" 45 !endif 46 47 !if "$(Variant)" == "tiered" 48 CXX_FLAGS=$(CXX_FLAGS) /D "COMPILER1" /D "COMPILER2" 49 !endif 50 51 !if "$(BUILDARCH)" == "i486" 52 HOTSPOT_LIB_ARCH=i386 53 !else 54 HOTSPOT_LIB_ARCH=$(BUILDARCH) 55 !endif 56 57 # The following variables are defined in the generated local.make file. 58 CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_RELEASE_VERSION=\"$(HS_BUILD_VER)\"" 59 CXX_FLAGS=$(CXX_FLAGS) /D "JRE_RELEASE_VERSION=\"$(JRE_RELEASE_VER)\"" 60 CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_LIB_ARCH=\"$(HOTSPOT_LIB_ARCH)\"" 61 CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_BUILD_TARGET=\"$(BUILD_FLAVOR)\"" 62 CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_BUILD_USER=\"$(BuildUser)\"" 63 CXX_FLAGS=$(CXX_FLAGS) /D "HOTSPOT_VM_DISTRO=\"$(HOTSPOT_VM_DISTRO)\"" 64 65 CXX_FLAGS=$(CXX_FLAGS) $(CXX_INCLUDE_DIRS) 66 67 # Define that so jni.h is on correct side 68 CXX_FLAGS=$(CXX_FLAGS) /D "_JNI_IMPLEMENTATION_" 69 70 !if "$(BUILDARCH)" == "ia64" 71 STACK_SIZE="/STACK:1048576,262144" 72 !else 73 STACK_SIZE= 74 !endif 75 76 !if "$(BUILDARCH)" == "ia64" 77 # AsyncGetCallTrace is not supported on IA64 yet 78 AGCT_EXPORT= 79 !else 80 AGCT_EXPORT=/export:AsyncGetCallTrace 81 !endif 82 83 # If you modify exports below please do the corresponding changes in 84 # src/share/tools/ProjectCreator/WinGammaPlatformVC7.java 85 LD_FLAGS=$(LD_FLAGS) $(STACK_SIZE) /subsystem:windows /dll /base:0x8000000 \ 86 /export:JNI_GetDefaultJavaVMInitArgs \ 87 /export:JNI_CreateJavaVM \ 88 /export:JVM_FindClassFromBootLoader \ 89 /export:JNI_GetCreatedJavaVMs \ 90 /export:jio_snprintf \ 91 /export:jio_printf \ 92 /export:jio_fprintf \ 93 /export:jio_vfprintf \ 94 /export:jio_vsnprintf \ 95 $(AGCT_EXPORT) \ 96 /export:JVM_GetVersionInfo \ 97 /export:JVM_GetThreadStateNames \ 98 /export:JVM_GetThreadStateValues \ 99 /export:JVM_InitAgentProperties 100 101 CXX_INCLUDE_DIRS=/I "..\generated" 102 103 !if exists($(ALTSRC)\share\vm) 104 CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) /I "$(ALTSRC)\share\vm" 105 !endif 106 107 !if exists($(ALTSRC)\os\windows\vm) 108 CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) /I "$(ALTSRC)\os\windows\vm" 109 !endif 110 111 !if exists($(ALTSRC)\os_cpu\windows_$(Platform_arch)\vm) 112 CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) /I "$(ALTSRC)\os_cpu\windows_$(Platform_arch)\vm" 113 !endif 114 115 !if exists($(ALTSRC)\cpu\$(Platform_arch)\vm) 116 CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) /I "$(ALTSRC)\cpu\$(Platform_arch)\vm" 117 !endif 118 119 CXX_INCLUDE_DIRS=$(CXX_INCLUDE_DIRS) \ 120 /I "$(COMMONSRC)\share\vm" \ 121 /I "$(COMMONSRC)\share\vm\precompiled" \ 122 /I "$(COMMONSRC)\share\vm\prims" \ 123 /I "$(COMMONSRC)\os\windows\vm" \ 124 /I "$(COMMONSRC)\os_cpu\windows_$(Platform_arch)\vm" \ 125 /I "$(COMMONSRC)\cpu\$(Platform_arch)\vm" 126 127 CXX_DONT_USE_PCH=/D DONT_USE_PRECOMPILED_HEADER 128 129 !if "$(USE_PRECOMPILED_HEADER)" != "0" 130 CXX_USE_PCH=/Fp"vm.pch" /Yu"precompiled.hpp" 131 !if "$(COMPILER_NAME)" == "VS2012" 132 # VS2012 requires this object file to be listed: 133 LD_FLAGS=$(LD_FLAGS) _build_pch_file.obj 134 !endif 135 !else 136 CXX_USE_PCH=$(CXX_DONT_USE_PCH) 137 !endif 138 139 # Where to find the source code for the virtual machine (is this used?) 140 VM_PATH=../generated 141 VM_PATH=$(VM_PATH);../generated/adfiles 142 VM_PATH=$(VM_PATH);../generated/jvmtifiles 143 VM_PATH=$(VM_PATH);../generated/tracefiles 144 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/c1 145 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/compiler 146 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/code 147 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/interpreter 148 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/ci 149 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/classfile 150 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/parallelScavenge 151 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/shared 152 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/parNew 153 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/concurrentMarkSweep 154 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/g1 155 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_interface 156 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/asm 157 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/memory 158 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/oops 159 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/prims 160 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/prims/wbtestmethods 161 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/runtime 162 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/services 163 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/trace 164 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/utilities 165 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/libadt 166 VM_PATH=$(VM_PATH);$(WorkSpace)/src/os/windows/vm 167 VM_PATH=$(VM_PATH);$(WorkSpace)/src/os_cpu/windows_$(Platform_arch)/vm 168 VM_PATH=$(VM_PATH);$(WorkSpace)/src/cpu/$(Platform_arch)/vm 169 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/opto 170 171 !if exists($(ALTSRC)\share\vm\jfr) 172 VM_PATH=$(VM_PATH);$(ALTSRC)/share/vm/jfr 173 VM_PATH=$(VM_PATH);$(ALTSRC)/share/vm/jfr/buffers 174 !endif 175 176 VM_PATH={$(VM_PATH)} 177 178 # Special case files not using precompiled header files. 179 180 c1_RInfo_$(Platform_arch).obj: $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp 181 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp 182 183 os_windows.obj: $(WorkSpace)\src\os\windows\vm\os_windows.cpp 184 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\os_windows.cpp 185 186 os_windows_$(Platform_arch).obj: $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp 187 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp 188 189 osThread_windows.obj: $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp 190 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp 191 192 conditionVar_windows.obj: $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp 193 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp 194 195 getThread_windows_$(Platform_arch).obj: $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp 196 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp 197 198 opcodes.obj: $(WorkSpace)\src\share\vm\opto\opcodes.cpp 199 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\share\vm\opto\opcodes.cpp 200 201 bytecodeInterpreter.obj: $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp 202 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp 203 204 bytecodeInterpreterWithChecks.obj: ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp 205 $(CXX) $(CXX_FLAGS) $(CXX_DONT_USE_PCH) /c ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp 206 207 # Default rules for the Virtual Machine 208 {$(COMMONSRC)\share\vm\c1}.cpp.obj:: 209 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 210 211 {$(COMMONSRC)\share\vm\compiler}.cpp.obj:: 212 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 213 214 {$(COMMONSRC)\share\vm\code}.cpp.obj:: 215 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 216 217 {$(COMMONSRC)\share\vm\interpreter}.cpp.obj:: 218 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 219 220 {$(COMMONSRC)\share\vm\ci}.cpp.obj:: 221 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 222 223 {$(COMMONSRC)\share\vm\classfile}.cpp.obj:: 224 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 225 226 {$(COMMONSRC)\share\vm\gc_implementation\parallelScavenge}.cpp.obj:: 227 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 228 229 {$(COMMONSRC)\share\vm\gc_implementation\shared}.cpp.obj:: 230 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 231 232 {$(COMMONSRC)\share\vm\gc_implementation\parNew}.cpp.obj:: 233 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 234 235 {$(COMMONSRC)\share\vm\gc_implementation\concurrentMarkSweep}.cpp.obj:: 236 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 237 238 {$(COMMONSRC)\share\vm\gc_implementation\g1}.cpp.obj:: 239 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 240 241 {$(COMMONSRC)\share\vm\gc_interface}.cpp.obj:: 242 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 243 244 {$(COMMONSRC)\share\vm\asm}.cpp.obj:: 245 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 246 247 {$(COMMONSRC)\share\vm\memory}.cpp.obj:: 248 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 249 250 {$(COMMONSRC)\share\vm\oops}.cpp.obj:: 251 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 252 253 {$(COMMONSRC)\share\vm\prims}.cpp.obj:: 254 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 255 256 {$(COMMONSRC)\share\vm\prims\wbtestmethods}.cpp.obj:: 257 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 258 259 {$(COMMONSRC)\share\vm\runtime}.cpp.obj:: 260 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 261 262 {$(COMMONSRC)\share\vm\services}.cpp.obj:: 263 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 264 265 {$(COMMONSRC)\share\vm\trace}.cpp.obj:: 266 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 267 268 {$(COMMONSRC)\share\vm\utilities}.cpp.obj:: 269 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 270 271 {$(COMMONSRC)\share\vm\libadt}.cpp.obj:: 272 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 273 274 {$(COMMONSRC)\share\vm\opto}.cpp.obj:: 275 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 276 277 {$(COMMONSRC)\os\windows\vm}.cpp.obj:: 278 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 279 280 # This guy should remain a single colon rule because 281 # otherwise we can't specify the output filename. 282 {$(COMMONSRC)\os\windows\vm}.rc.res: 283 @$(RC) $(RC_FLAGS) /fo"$@" $< 284 285 {$(COMMONSRC)\cpu\$(Platform_arch)\vm}.cpp.obj:: 286 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 287 288 {$(COMMONSRC)\os_cpu\windows_$(Platform_arch)\vm}.cpp.obj:: 289 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 290 291 {$(ALTSRC)\share\vm\c1}.cpp.obj:: 292 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 293 294 {$(ALTSRC)\share\vm\compiler}.cpp.obj:: 295 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 296 297 {$(ALTSRC)\share\vm\code}.cpp.obj:: 298 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 299 300 {$(ALTSRC)\share\vm\interpreter}.cpp.obj:: 301 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 302 303 {$(ALTSRC)\share\vm\ci}.cpp.obj:: 304 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 305 306 {$(ALTSRC)\share\vm\classfile}.cpp.obj:: 307 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 308 309 {$(ALTSRC)\share\vm\gc_implementation\parallelScavenge}.cpp.obj:: 310 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 311 312 {$(ALTSRC)\share\vm\gc_implementation\shared}.cpp.obj:: 313 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 314 315 {$(ALTSRC)\share\vm\gc_implementation\parNew}.cpp.obj:: 316 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 317 318 {$(ALTSRC)\share\vm\gc_implementation\concurrentMarkSweep}.cpp.obj:: 319 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 320 321 {$(ALTSRC)\share\vm\gc_implementation\g1}.cpp.obj:: 322 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 323 324 {$(ALTSRC)\share\vm\gc_interface}.cpp.obj:: 325 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 326 327 {$(ALTSRC)\share\vm\asm}.cpp.obj:: 328 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 329 330 {$(ALTSRC)\share\vm\memory}.cpp.obj:: 331 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 332 333 {$(ALTSRC)\share\vm\oops}.cpp.obj:: 334 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 335 336 {$(ALTSRC)\share\vm\prims}.cpp.obj:: 337 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 338 339 {$(ALTSRC)\share\vm\prims\wbtestmethods}.cpp.obj:: 340 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 341 342 {$(ALTSRC)\share\vm\runtime}.cpp.obj:: 343 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 344 345 {$(ALTSRC)\share\vm\services}.cpp.obj:: 346 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 347 348 {$(ALTSRC)\share\vm\trace}.cpp.obj:: 349 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 350 351 {$(ALTSRC)\share\vm\utilities}.cpp.obj:: 352 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 353 354 {$(ALTSRC)\share\vm\libadt}.cpp.obj:: 355 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 356 357 {$(ALTSRC)\share\vm\opto}.cpp.obj:: 358 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 359 360 {$(ALTSRC)\os\windows\vm}.cpp.obj:: 361 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 362 363 # otherwise we can't specify the output filename. 364 {$(ALTSRC)\os\windows\vm}.rc.res: 365 @$(RC) $(RC_FLAGS) /fo"$@" $< 366 367 {$(ALTSRC)\cpu\$(Platform_arch)\vm}.cpp.obj:: 368 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 369 370 {$(ALTSRC)\os_cpu\windows_$(Platform_arch)\vm}.cpp.obj:: 371 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 372 373 {..\generated\incls}.cpp.obj:: 374 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 375 376 {..\generated\adfiles}.cpp.obj:: 377 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 378 379 {..\generated\jvmtifiles}.cpp.obj:: 380 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 381 382 {..\generated\tracefiles}.cpp.obj:: 383 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 384 385 {$(ALTSRC)\share\vm\jfr}.cpp.obj:: 386 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 387 388 {$(ALTSRC)\share\vm\jfr\buffers}.cpp.obj:: 389 $(CXX) $(CXX_FLAGS) $(CXX_USE_PCH) /c $< 390 391 default:: 392 393 _build_pch_file.obj: 394 @echo #include "precompiled.hpp" > ../generated/_build_pch_file.cpp 395 $(CXX) $(CXX_FLAGS) /Fp"vm.pch" /Yc"precompiled.hpp" /c ../generated/_build_pch_file.cpp