1 # 2 # Copyright (c) 1997, 2010, 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 !ifdef RELEASE 31 !ifdef DEVELOP 32 CPP_FLAGS=$(CPP_FLAGS) /D "DEBUG" 33 !else 34 CPP_FLAGS=$(CPP_FLAGS) /D "PRODUCT" 35 !endif 36 !else 37 CPP_FLAGS=$(CPP_FLAGS) /D "ASSERT" 38 !endif 39 40 !if "$(Variant)" == "core" 41 # No need to define anything, CORE is defined as !COMPILER1 && !COMPILER2 42 !endif 43 44 !if "$(Variant)" == "kernel" 45 CPP_FLAGS=$(CPP_FLAGS) /D "KERNEL" 46 !endif 47 48 !if "$(Variant)" == "compiler1" 49 CPP_FLAGS=$(CPP_FLAGS) /D "COMPILER1" 50 !endif 51 52 !if "$(Variant)" == "compiler2" 53 CPP_FLAGS=$(CPP_FLAGS) /D "COMPILER2" 54 !endif 55 56 !if "$(Variant)" == "tiered" 57 CPP_FLAGS=$(CPP_FLAGS) /D "COMPILER1" /D "COMPILER2" 58 !endif 59 60 !if "$(BUILDARCH)" == "i486" 61 HOTSPOT_LIB_ARCH=i386 62 !else 63 HOTSPOT_LIB_ARCH=$(BUILDARCH) 64 !endif 65 66 # The following variables are defined in the generated local.make file. 67 CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_RELEASE_VERSION=\"$(HS_BUILD_VER)\"" 68 CPP_FLAGS=$(CPP_FLAGS) /D "JRE_RELEASE_VERSION=\"$(JRE_RELEASE_VER)\"" 69 CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_LIB_ARCH=\"$(HOTSPOT_LIB_ARCH)\"" 70 CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_BUILD_TARGET=\"$(BUILD_FLAVOR)\"" 71 CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_BUILD_USER=\"$(BuildUser)\"" 72 CPP_FLAGS=$(CPP_FLAGS) /D "HOTSPOT_VM_DISTRO=\"$(HOTSPOT_VM_DISTRO)\"" 73 74 CPP_FLAGS=$(CPP_FLAGS) /D "WIN32" /D "_WINDOWS" $(CPP_INCLUDE_DIRS) 75 76 # Must specify this for sharedRuntimeTrig.cpp 77 CPP_FLAGS=$(CPP_FLAGS) /D "VM_LITTLE_ENDIAN" 78 79 # Define that so jni.h is on correct side 80 CPP_FLAGS=$(CPP_FLAGS) /D "_JNI_IMPLEMENTATION_" 81 82 # Used for platform dispatching 83 CPP_FLAGS=$(CPP_FLAGS) /D TARGET_OS_FAMILY_windows 84 CPP_FLAGS=$(CPP_FLAGS) /D TARGET_ARCH_$(Platform_arch) 85 CPP_FLAGS=$(CPP_FLAGS) /D TARGET_ARCH_MODEL_$(Platform_arch_model) 86 CPP_FLAGS=$(CPP_FLAGS) /D TARGET_OS_ARCH_windows_$(Platform_arch) 87 CPP_FLAGS=$(CPP_FLAGS) /D TARGET_OS_ARCH_MODEL_windows_$(Platform_arch_model) 88 CPP_FLAGS=$(CPP_FLAGS) /D TARGET_COMPILER_visCPP 89 90 !if "$(BUILDARCH)" == "ia64" 91 STACK_SIZE="/STACK:1048576,262144" 92 !else 93 STACK_SIZE= 94 !endif 95 96 !if "$(BUILDARCH)" == "ia64" 97 # AsyncGetCallTrace is not supported on IA64 yet 98 AGCT_EXPORT= 99 !else 100 !if "$(Variant)" == "kernel" 101 AGCT_EXPORT= 102 !else 103 AGCT_EXPORT=/export:AsyncGetCallTrace 104 !endif 105 !endif 106 107 LINK_FLAGS=$(LINK_FLAGS) $(STACK_SIZE) /subsystem:windows /dll /base:0x8000000 \ 108 /export:JNI_GetDefaultJavaVMInitArgs \ 109 /export:JNI_CreateJavaVM \ 110 /export:JVM_FindClassFromBootLoader \ 111 /export:JNI_GetCreatedJavaVMs \ 112 /export:jio_snprintf \ 113 /export:jio_printf \ 114 /export:jio_fprintf \ 115 /export:jio_vfprintf \ 116 /export:jio_vsnprintf \ 117 $(AGCT_EXPORT) \ 118 /export:JVM_GetVersionInfo \ 119 /export:JVM_GetThreadStateNames \ 120 /export:JVM_GetThreadStateValues \ 121 /export:JVM_InitAgentProperties 122 123 CPP_INCLUDE_DIRS=\ 124 /I "..\generated" \ 125 /I "$(WorkSpace)\src\share\vm" \ 126 /I "$(WorkSpace)\src\share\vm\prims" \ 127 /I "$(WorkSpace)\src\os\windows\vm" \ 128 /I "$(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm" \ 129 /I "$(WorkSpace)\src\cpu\$(Platform_arch)\vm" 130 131 CPP_USE_PCH=/Fp"vm.pch" /Yu"precompiled.hpp" 132 133 # Where to find the source code for the virtual machine 134 VM_PATH=../generated 135 VM_PATH=$(VM_PATH);../generated/adfiles 136 VM_PATH=$(VM_PATH);../generated/jvmtifiles 137 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/c1 138 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/compiler 139 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/code 140 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/interpreter 141 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/ci 142 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/classfile 143 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/parallelScavenge 144 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/shared 145 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/parNew 146 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/concurrentMarkSweep 147 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/g1 148 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_interface 149 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/asm 150 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/memory 151 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/oops 152 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/prims 153 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/runtime 154 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/services 155 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/utilities 156 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/libadt 157 VM_PATH=$(VM_PATH);$(WorkSpace)/src/os/windows/vm 158 VM_PATH=$(VM_PATH);$(WorkSpace)/src/os_cpu/windows_$(Platform_arch)/vm 159 VM_PATH=$(VM_PATH);$(WorkSpace)/src/cpu/$(Platform_arch)/vm 160 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/opto 161 162 VM_PATH={$(VM_PATH)} 163 164 # Special case files not using precompiled header files. 165 166 c1_RInfo_$(Platform_arch).obj: $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp 167 $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\cpu\$(Platform_arch)\vm\c1_RInfo_$(Platform_arch).cpp 168 169 os_windows.obj: $(WorkSpace)\src\os\windows\vm\os_windows.cpp 170 $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\os\windows\vm\os_windows.cpp 171 172 os_windows_$(Platform_arch).obj: $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp 173 $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\os_windows_$(Platform_arch).cpp 174 175 osThread_windows.obj: $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp 176 $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\os\windows\vm\osThread_windows.cpp 177 178 conditionVar_windows.obj: $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp 179 $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\os\windows\vm\conditionVar_windows.cpp 180 181 getThread_windows_$(Platform_arch).obj: $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp 182 $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm\getThread_windows_$(Platform_arch).cpp 183 184 opcodes.obj: $(WorkSpace)\src\share\vm\opto\opcodes.cpp 185 $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\share\vm\opto\opcodes.cpp 186 187 bytecodeInterpreter.obj: $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp 188 $(CPP) $(CPP_FLAGS) /c $(WorkSpace)\src\share\vm\interpreter\bytecodeInterpreter.cpp 189 190 bytecodeInterpreterWithChecks.obj: ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp 191 $(CPP) $(CPP_FLAGS) /c ..\generated\jvmtifiles\bytecodeInterpreterWithChecks.cpp 192 193 # Default rules for the Virtual Machine 194 {$(WorkSpace)\src\share\vm\c1}.cpp.obj:: 195 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 196 197 {$(WorkSpace)\src\share\vm\compiler}.cpp.obj:: 198 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 199 200 {$(WorkSpace)\src\share\vm\code}.cpp.obj:: 201 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 202 203 {$(WorkSpace)\src\share\vm\interpreter}.cpp.obj:: 204 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 205 206 {$(WorkSpace)\src\share\vm\ci}.cpp.obj:: 207 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 208 209 {$(WorkSpace)\src\share\vm\classfile}.cpp.obj:: 210 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 211 212 {$(WorkSpace)\src\share\vm\gc_implementation\parallelScavenge}.cpp.obj:: 213 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 214 215 {$(WorkSpace)\src\share\vm\gc_implementation\shared}.cpp.obj:: 216 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 217 218 {$(WorkSpace)\src\share\vm\gc_implementation\parNew}.cpp.obj:: 219 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 220 221 {$(WorkSpace)\src\share\vm\gc_implementation\concurrentMarkSweep}.cpp.obj:: 222 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 223 224 {$(WorkSpace)\src\share\vm\gc_implementation\g1}.cpp.obj:: 225 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 226 227 {$(WorkSpace)\src\share\vm\gc_interface}.cpp.obj:: 228 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 229 230 {$(WorkSpace)\src\share\vm\asm}.cpp.obj:: 231 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 232 233 {$(WorkSpace)\src\share\vm\memory}.cpp.obj:: 234 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 235 236 {$(WorkSpace)\src\share\vm\oops}.cpp.obj:: 237 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 238 239 {$(WorkSpace)\src\share\vm\prims}.cpp.obj:: 240 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 241 242 {$(WorkSpace)\src\share\vm\runtime}.cpp.obj:: 243 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 244 245 {$(WorkSpace)\src\share\vm\services}.cpp.obj:: 246 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 247 248 {$(WorkSpace)\src\share\vm\utilities}.cpp.obj:: 249 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 250 251 {$(WorkSpace)\src\share\vm\libadt}.cpp.obj:: 252 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 253 254 {$(WorkSpace)\src\share\vm\opto}.cpp.obj:: 255 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 256 257 {$(WorkSpace)\src\os\windows\vm}.cpp.obj:: 258 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 259 260 # This guy should remain a single colon rule because 261 # otherwise we can't specify the output filename. 262 {$(WorkSpace)\src\os\windows\vm}.rc.res: 263 @$(RC) $(RC_FLAGS) /fo"$@" $< 264 265 {$(WorkSpace)\src\cpu\$(Platform_arch)\vm}.cpp.obj:: 266 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 267 268 {$(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm}.cpp.obj:: 269 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 270 271 {..\generated\incls}.cpp.obj:: 272 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 273 274 {..\generated\adfiles}.cpp.obj:: 275 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 276 277 {..\generated\jvmtifiles}.cpp.obj:: 278 $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< 279 280 default:: 281 282 _build_pch_file.obj: 283 @echo #include "precompiled.hpp" > ../generated/_build_pch_file.cpp 284 $(CPP) $(CPP_FLAGS) /Fp"vm.pch" /Yc"precompiled.hpp" /c ../generated/_build_pch_file.cpp