1 #
   2 # Copyright (c) 1999, 2011, 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 !include $(WorkSpace)/make/windows/makefiles/rules.make
  26 
  27 # This is used externally by both batch and IDE builds, so can't
  28 # reference any of the HOTSPOTWORKSPACE, HOTSPOTBUILDSPACE,
  29 # HOTSPOTRELEASEBINDEST, or HOTSPOTDEBUGBINDEST environment variables.
  30 
  31 ProjectCreatorSources=\
  32         $(WorkSpace)\src\share\tools\ProjectCreator\DirectoryTree.java \
  33         $(WorkSpace)\src\share\tools\ProjectCreator\DirectoryTreeNode.java \
  34         $(WorkSpace)\src\share\tools\ProjectCreator\FileFormatException.java \
  35         $(WorkSpace)\src\share\tools\ProjectCreator\ProjectCreator.java \
  36         $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatform.java \
  37         $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC6.java \
  38         $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC7.java \
  39         $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC8.java \
  40         $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC9.java \
  41         $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC10.java \
  42         $(WorkSpace)\src\share\tools\ProjectCreator\Util.java \
  43         $(WorkSpace)\src\share\tools\ProjectCreator\BuildConfig.java \
  44         $(WorkSpace)\src\share\tools\ProjectCreator\ArgsParser.java
  45 
  46 # This is only used internally
  47 ProjectCreatorIncludesPRIVATE=\
  48         -relativeInclude src\closed\share\vm \
  49         -relativeInclude src\closed\os\windows\vm \
  50         -relativeInclude src\closed\os_cpu\windows_$(Platform_arch)\vm \
  51         -relativeInclude src\closed\cpu\$(Platform_arch)\vm \
  52         -relativeInclude src\share\vm \
  53         -relativeInclude src\share\vm\precompiled \
  54         -relativeInclude src\share\vm\prims \
  55         -relativeInclude src\os\windows\vm \
  56         -relativeInclude src\os_cpu\windows_$(Platform_arch)\vm \
  57         -relativeInclude src\cpu\$(Platform_arch)\vm \
  58         -absoluteInclude $(HOTSPOTBUILDSPACE)/%f/generated \
  59         -ignorePath $(HOTSPOTBUILDSPACE)/%f/generated \
  60         -ignorePath src\share\vm\adlc \
  61         -ignorePath src\share\vm\shark \
  62         -ignorePath posix
  63 
  64 # This is referenced externally by both the IDE and batch builds
  65 ProjectCreatorOptions=
  66 
  67 # This is used externally, but only by the IDE builds, so we can
  68 # reference environment variables which aren't defined in the batch
  69 # build process.
  70 
  71 ProjectCreatorIDEOptions = \
  72         -useToGeneratePch  java.cpp \
  73         -disablePch        os_windows.cpp \
  74         -disablePch        os_windows_$(Platform_arch).cpp \
  75         -disablePch        osThread_windows.cpp \
  76         -disablePch        bytecodeInterpreter.cpp \
  77         -disablePch        bytecodeInterpreterWithChecks.cpp \
  78         -disablePch        getThread_windows_$(Platform_arch).cpp \
  79         -disablePch_compiler2     opcodes.cpp    
  80 
  81 # Common options for the IDE builds for core, c1, and c2
  82 ProjectCreatorIDEOptions=\
  83         $(ProjectCreatorIDEOptions) \
  84         -sourceBase $(HOTSPOTWORKSPACE) \
  85         -buildBase $(HOTSPOTBUILDSPACE)\%f\%b \
  86         -startAt src \
  87         -compiler $(VcVersion) \
  88         -projectFileName $(HOTSPOTBUILDSPACE)\$(ProjectFile) \
  89         -jdkTargetRoot $(HOTSPOTJDKDIST) \
  90         -define ALIGN_STACK_FRAMES \
  91         -define VM_LITTLE_ENDIAN \
  92         -prelink  "" "Generating vm.def..." "cd $(HOTSPOTBUILDSPACE)\%f\%b      set HOTSPOTMKSHOME=$(HOTSPOTMKSHOME)    set JAVA_HOME=$(HOTSPOTJDKDIST) $(HOTSPOTMKSHOME)\sh $(HOTSPOTWORKSPACE)\make\windows\build_vm_def.sh $(LD_VER)" \
  93         -postbuild "" "Building hotspot.exe..." "cd $(HOTSPOTBUILDSPACE)\%f\%b  set HOTSPOTMKSHOME=$(HOTSPOTMKSHOME)    nmake -f $(HOTSPOTWORKSPACE)\make\windows\projectfiles\common\Makefile LOCAL_MAKE=$(HOTSPOTBUILDSPACE)\%f\local.make JAVA_HOME=$(HOTSPOTJDKDIST) launcher" \
  94         -ignoreFile jsig.c \
  95         -ignoreFile jvmtiEnvRecommended.cpp \
  96         -ignoreFile jvmtiEnvStub.cpp \
  97         -ignoreFile globalDefinitions_gcc.hpp \
  98         -ignoreFile globalDefinitions_sparcWorks.hpp \
  99         -ignoreFile version.rc \
 100         -ignoreFile Xusage.txt \
 101         -define TARGET_ARCH_x86 \
 102         -define TARGET_OS_ARCH_windows_x86 \
 103         -define TARGET_OS_FAMILY_windows \
 104         -define TARGET_COMPILER_visCPP \
 105        $(ProjectCreatorIncludesPRIVATE)
 106 
 107 # Add in build-specific options
 108 !if "$(BUILDARCH)" == "i486"
 109 ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
 110         -platformName Win32 \
 111         -define IA32 \
 112         -ignorePath x86_64 \
 113         -define TARGET_ARCH_MODEL_x86_32
 114 !else
 115 !if "$(BUILDARCH)" == "amd64"
 116 ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
 117         -platformName x64 \
 118         -define AMD64 \
 119         -define _LP64 \
 120         -ignorePath x86_32 \
 121         -define TARGET_ARCH_MODEL_x86_64 \
 122         -define TARGET_OS_ARCH_MODEL_windows_x86_64
 123 !endif
 124 !endif
 125 
 126 ProjectCreatorIDEOptionsIgnoreCompiler1=\
 127  -ignorePath_TARGET c1_
 128 
 129 ProjectCreatorIDEOptionsIgnoreCompiler2=\
 130  -ignorePath_TARGET src/share/vm/opto \
 131  -ignorePath_TARGET src/share/vm/libadt \
 132  -ignorePath_TARGET adfiles \
 133  -ignoreFile_TARGET bcEscapeAnalyzer.cpp \
 134  -ignoreFile_TARGET bcEscapeAnalyzer.hpp \
 135  -ignorePath_TARGET chaitin \
 136  -ignorePath_TARGET c2_ \
 137  -ignorePath_TARGET runtime_ \
 138  -ignoreFile_TARGET ciTypeFlow.cpp \
 139  -ignoreFile_TARGET ciTypeFlow.hpp \
 140  -ignoreFile_TARGET $(Platform_arch_model).ad
 141 
 142 ##################################################
 143 # Without compiler(core) specific options
 144 ##################################################
 145 ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
 146 $(ProjectCreatorIDEOptionsIgnoreCompiler1:TARGET=core) \
 147 $(ProjectCreatorIDEOptionsIgnoreCompiler2:TARGET=core)
 148 
 149 ##################################################
 150 # JKERNEL specific options
 151 ##################################################
 152 ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
 153  -define_kernel KERNEL \
 154 $(ProjectCreatorIDEOptionsIgnoreCompiler2:TARGET=kernel) \
 155  -ignorePath_kernel src/share/vm/gc_implementation/parallelScavenge \
 156  -ignorePath_kernel src/share/vm/gc_implementation/parNew \
 157  -ignorePath_kernel src/share/vm/gc_implementation/concurrentMarkSweep \
 158  -ignorePath_kernel src/share/vm/gc_implementation/g1 \
 159  -ignoreFile_kernel attachListener.cpp \
 160  -ignoreFile_kernel attachListener_windows.cpp \
 161  -ignoreFile_kernel dump.cpp \
 162  -ignoreFile_kernel dump_$(Platform_arch_model).cpp \
 163  -ignoreFile_kernel forte.cpp \
 164  -ignoreFile_kernel fprofiler.cpp \
 165  -ignoreFile_kernel heapDumper.cpp \
 166  -ignoreFile_kernel heapInspection.cpp \
 167  -ignoreFile_kernel jniCheck.cpp \
 168  -ignoreFile_kernel jvmtiCodeBlobEvents.cpp \
 169  -ignoreFile_kernel jvmtiExtensions.cpp \
 170  -ignoreFile_kernel jvmtiImpl.cpp \
 171  -ignoreFile_kernel jvmtiRawMonitor.cpp \
 172  -ignoreFile_kernel jvmtiTagMap.cpp \
 173  -ignoreFile_kernel jvmtiTrace.cpp \
 174  -ignoreFile_kernel jvmtiTrace.hpp \
 175  -ignoreFile_kernel restore.cpp \
 176  -ignoreFile_kernel serialize.cpp \
 177  -ignoreFile_kernel vmStructs.cpp \
 178  -ignoreFile_kernel g1MemoryPool.cpp \
 179  -ignoreFile_kernel g1MemoryPool.hpp \
 180  -ignoreFile_kernel psMemoryPool.cpp \
 181  -ignoreFile_kernel psMemoryPool.hpp \
 182  -ignoreFile_kernel gcAdaptivePolicyCounters.cpp \
 183  -ignoreFile_kernel concurrentGCThread.cpp \
 184  -ignoreFile_kernel mutableNUMASpace.cpp \
 185  -ignoreFile_kernel ciTypeFlow.cpp \
 186  -ignoreFile_kernel ciTypeFlow.hpp \
 187  -ignoreFile_kernel oop.pcgc.inline.hpp \
 188  -ignoreFile_kernel oop.psgc.inline.hpp \
 189  -ignoreFile_kernel allocationStats.cpp \
 190  -ignoreFile_kernel allocationStats.hpp \
 191  -ignoreFile_kernel concurrentGCThread.hpp \
 192  -ignoreFile_kernel gSpaceCounters.cpp \
 193  -ignoreFile_kernel gSpaceCounters.hpp \
 194  -ignoreFile_kernel gcAdaptivePolicyCounters.hpp \
 195  -ignoreFile_kernel immutableSpace.cpp \
 196  -ignoreFile_kernel mutableNUMASpace.hpp \
 197  -ignoreFile_kernel mutableSpace.cpp \
 198  -ignoreFile_kernel spaceCounters.cpp \
 199  -ignoreFile_kernel spaceCounters.hpp \
 200  -ignoreFile_kernel yieldingWorkgroup.cpp \
 201  -ignoreFile_kernel yieldingWorkgroup.hpp \
 202  -ignorePath_kernel vmStructs_ \
 203  -ignoreFile_kernel $(Platform_arch_model).ad \
 204  -additionalFile_kernel gcTaskManager.hpp
 205 
 206 ##################################################
 207 # Client(C1) compiler specific options
 208 ##################################################
 209 ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
 210  -define_compiler1 COMPILER1 \
 211 $(ProjectCreatorIDEOptionsIgnoreCompiler2:TARGET=compiler1)
 212 
 213 ##################################################
 214 # Server(C2) compiler specific options
 215 ##################################################
 216 #NOTE! This list must be kept in sync with GENERATED_NAMES in adlc.make.
 217 ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
 218  -define_compiler2 COMPILER2 \
 219  -additionalFile_compiler2 $(Platform_arch_model).ad \
 220  -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model).cpp \
 221  -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model).hpp \
 222  -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_clone.cpp \
 223  -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_expand.cpp \
 224  -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_format.cpp \
 225  -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_gen.cpp \
 226  -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_misc.cpp \
 227  -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_peephole.cpp \
 228  -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_pipeline.cpp \
 229  -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles adGlobals_$(Platform_arch_model).hpp \
 230  -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles dfa_$(Platform_arch_model).cpp \
 231  $(ProjectCreatorIDEOptionsIgnoreCompiler1:TARGET=compiler2)
 232 
 233 # Add in the jvmti (JSR-163) options
 234 # NOTE: do not pull in jvmtiEnvRecommended.cpp.  This file is generated
 235 #       so the programmer can diff it with jvmtiEnv.cpp to be sure the
 236 #       code merge was done correctly (@see jvmti.make and jvmtiEnvFill.java).
 237 #       If so, they would then check it in as a new version of jvmtiEnv.cpp.
 238 ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \
 239  -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles jvmtiEnv.hpp \
 240  -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles jvmtiEnter.cpp \
 241  -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles jvmtiEnterTrace.cpp \
 242  -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles jvmti.h \
 243  -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles bytecodeInterpreterWithChecks.cpp