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