< prev index next >

make/hotspot/ide/CreateVSProject.gmk

Print this page


   1 #
   2 # Copyright (c) 2016, 2019, 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.  Oracle designates this
   8 # particular file as subject to the "Classpath" exception as provided
   9 # by Oracle in the LICENSE file that accompanied this code.
  10 #
  11 # This code is distributed in the hope that it will be useful, but WITHOUT
  12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14 # version 2 for more details (a copy is included in the LICENSE file that
  15 # accompanied this code).
  16 #
  17 # You should have received a copy of the GNU General Public License version
  18 # 2 along with this work; if not, write to the Free Software Foundation,
  19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20 #
  21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22 # or visit www.oracle.com if you need additional information or have any
  23 # questions.
  24 #
  25 
  26 # This must be the first rule
  27 default: all
  28 
  29 include $(SPEC)
  30 include MakeBase.gmk
  31 include JavaCompilation.gmk
  32 include SetupJavaCompilers.gmk
  33 include Execute.gmk
  34 
  35 ifeq ($(call isTargetOs, windows), true)
  36   # The next part is a bit hacky. We include the CompileJvm.gmk to be
  37   # able to extact flags, but we do not wish to execute the rules.
  38 
  39   # Use client as base for defines and includes
  40   JVM_VARIANT=client
  41 
  42   include HotspotCommon.gmk
  43   include lib/CompileJvm.gmk
  44 
  45   # Reset targets so we don't build libjvm.
  46   TARGETS :=
  47 
  48   # Helper macro to convert a unix path to a Windows path, suitable for
  49   # inclusion in a command line.
  50   ifeq ($(call isBuildOsEnv, windows.cygwin), true)
  51     FixPath = \
  52         $(strip $(subst \,\\,$(shell $(CYGPATH) -w $1)))
  53     FixLinuxExecutable = \
  54         $(call FixPath, $1)
  55   else ifeq ($(call isBuildOsEnv, windows.wsl), true)
  56     FixPath = \
  57         $(strip $(subst \,\\,$(shell $(WSLPATH) -w $1)))
  58     FixLinuxExecutable = \
  59         "%windir%\Sysnative\wsl.exe $1"
  60   endif
  61 
  62   JVM_DEFINES_client := $(patsubst -D%,%, $(filter -D%, $(JVM_CFLAGS)))
  63   EXTRACTED_DEFINES_client := $(addprefix -define , $(JVM_DEFINES_client))
  64 
  65   JVM_INCLUDES_client := $(patsubst -I%,%, $(filter -I%, $(JVM_CFLAGS)))
  66   EXTRACTED_INCLUDES_client := $(foreach path, $(JVM_INCLUDES_client), -absoluteInclude $(call FixPath, $(path)))
  67 
  68   # Hand-code variant-specific arguments, based on the fact that we use
  69   # client for general arguments. Not optimal but other solutions require
  70   # major changes in ProjectCreator.
  71   ADDITIONAL_VARIANT_ARGS := \
  72       -define_server COMPILER2 \
  73       -ignorePath_client adfiles \
  74       -ignorePath_client c2_ \
  75       -ignorePath_client runtime_ \
  76       -ignorePath_client libadt \
  77       -ignorePath_client opto \
  78       #
  79 
  80   IGNORED_PLATFORMS_ARGS := \


 114 
 115   PROJECT_CREATOR_CLASS := build.tools.projectcreator.WinGammaPlatformVC10
 116 
 117   # We hard-code gensrc dir to server (since this includes adfiles)
 118   PROJECT_CREATOR_ARGS := \
 119       -sourceBase $(call FixPath, $(TOPDIR)/src) \
 120       -startAt hotspot \
 121       -relativeSrcInclude hotspot \
 122       -hidePath .hg \
 123       -hidePath .jcheck \
 124       -hidePath jdk.aot \
 125       -hidePath jdk.hotspot.agent \
 126       -hidePath jdk.internal.vm.ci \
 127       -hidePath jdk.internal.vm.compiler \
 128       -hidePath jdk.jfr \
 129       -compiler VC10 \
 130       -jdkTargetRoot $(call FixPath, $(JDK_OUTPUTDIR)) \
 131       -platformName x64 \
 132       -buildBase $(call FixPath, $(IDE_OUTPUTDIR)/vs-output) \
 133       -buildSpace $(call FixPath, $(IDE_OUTPUTDIR)) \
 134       -makeBinary $(call FixLinuxExecutable, $(MAKE)) \
 135       -makeOutput $(call FixPath, $(JDK_OUTPUTDIR)/bin/server) \
 136       -absoluteInclude $(call FixPath, $(HOTSPOT_OUTPUTDIR)/variant-server/gensrc) \
 137       -absoluteSrcInclude $(call FixPath, $(HOTSPOT_OUTPUTDIR)/variant-server/gensrc) \
 138       $(EXTRACTED_DEFINES_client) \
 139       $(EXTRACTED_INCLUDES_client) \
 140       $(ADDITIONAL_VARIANT_ARGS) \
 141       $(IGNORED_PLATFORMS_ARGS) \
 142       #
 143 
 144   VCPROJ_VARDEPS := $(PROJECT_CREATOR_CLASS) $(PROJECT_CREATOR_ARGS)
 145   VCPROJ_VARDEPS_FILE := $(call DependOnVariable, VCPROJ_VARDEPS, \
 146     $(VCPROJ_FILE).vardeps)
 147 
 148   $(eval $(call SetupExecute, vcproj_file, \
 149       INFO := Generating Visual Studio project file, \
 150       DEPS := $(BUILD_PROJECT_CREATOR) $(VCPROJ_VARDEPS_FILE), \
 151       OUTPUT_FILE := $(VCPROJ_FILE), \
 152       COMMAND := $(PROJECT_CREATOR_TOOL) $(PROJECT_CREATOR_CLASS) \
 153           $(PROJECT_CREATOR_ARGS) -projectFileName $(call FixPath, $(VCPROJ_FILE)) \
 154           $(LOG_INFO), \
 155   ))
 156 
 157   TARGETS += $(vcproj_file_TARGET)
 158 
 159   all: $(TARGETS)
 160 
 161 else
 162   all:
 163         $(info Hotspot Visual Studio generation only supported on Windows)
 164 endif
 165 
 166 .PHONY: all
   1 #
   2 # Copyright (c) 2016, 2017, 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.  Oracle designates this
   8 # particular file as subject to the "Classpath" exception as provided
   9 # by Oracle in the LICENSE file that accompanied this code.
  10 #
  11 # This code is distributed in the hope that it will be useful, but WITHOUT
  12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14 # version 2 for more details (a copy is included in the LICENSE file that
  15 # accompanied this code).
  16 #
  17 # You should have received a copy of the GNU General Public License version
  18 # 2 along with this work; if not, write to the Free Software Foundation,
  19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20 #
  21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22 # or visit www.oracle.com if you need additional information or have any
  23 # questions.
  24 #
  25 
  26 # This must be the first rule
  27 default: all
  28 
  29 include $(SPEC)
  30 include MakeBase.gmk
  31 include JavaCompilation.gmk
  32 include SetupJavaCompilers.gmk

  33 
  34 ifeq ($(OPENJDK_TARGET_OS), windows)
  35   # The next part is a bit hacky. We include the CompileJvm.gmk to be
  36   # able to extact flags, but we do not wish to execute the rules.
  37 
  38   # Use client as base for defines and includes
  39   JVM_VARIANT=client
  40 
  41   include HotspotCommon.gmk
  42   include lib/CompileJvm.gmk
  43 
  44   # Reset targets so we don't build libjvm.
  45   TARGETS :=
  46 
  47   # Helper macro to convert a unix path to a Windows path, suitable for
  48   # inclusion in a command line.
  49   FixPath = \
  50     $(strip $(subst \,\\,$(shell $(CYGPATH) -w $1)))









  51 
  52   JVM_DEFINES_client := $(patsubst -D%,%, $(filter -D%, $(JVM_CFLAGS)))
  53   EXTRACTED_DEFINES_client := $(addprefix -define , $(JVM_DEFINES_client))
  54 
  55   JVM_INCLUDES_client := $(patsubst -I%,%, $(filter -I%, $(JVM_CFLAGS)))
  56   EXTRACTED_INCLUDES_client := $(foreach path, $(JVM_INCLUDES_client), -absoluteInclude $(call FixPath, $(path)))
  57 
  58   # Hand-code variant-specific arguments, based on the fact that we use
  59   # client for general arguments. Not optimal but other solutions require
  60   # major changes in ProjectCreator.
  61   ADDITIONAL_VARIANT_ARGS := \
  62       -define_server COMPILER2 \
  63       -ignorePath_client adfiles \
  64       -ignorePath_client c2_ \
  65       -ignorePath_client runtime_ \
  66       -ignorePath_client libadt \
  67       -ignorePath_client opto \
  68       #
  69 
  70   IGNORED_PLATFORMS_ARGS := \


 104 
 105   PROJECT_CREATOR_CLASS := build.tools.projectcreator.WinGammaPlatformVC10
 106 
 107   # We hard-code gensrc dir to server (since this includes adfiles)
 108   PROJECT_CREATOR_ARGS := \
 109       -sourceBase $(call FixPath, $(TOPDIR)/src) \
 110       -startAt hotspot \
 111       -relativeSrcInclude hotspot \
 112       -hidePath .hg \
 113       -hidePath .jcheck \
 114       -hidePath jdk.aot \
 115       -hidePath jdk.hotspot.agent \
 116       -hidePath jdk.internal.vm.ci \
 117       -hidePath jdk.internal.vm.compiler \
 118       -hidePath jdk.jfr \
 119       -compiler VC10 \
 120       -jdkTargetRoot $(call FixPath, $(JDK_OUTPUTDIR)) \
 121       -platformName x64 \
 122       -buildBase $(call FixPath, $(IDE_OUTPUTDIR)/vs-output) \
 123       -buildSpace $(call FixPath, $(IDE_OUTPUTDIR)) \
 124       -makeBinary $(call FixPath, $(MAKE)) \
 125       -makeOutput $(call FixPath, $(JDK_OUTPUTDIR)/bin/server) \
 126       -absoluteInclude $(call FixPath, $(HOTSPOT_OUTPUTDIR)/variant-server/gensrc) \
 127       -absoluteSrcInclude $(call FixPath, $(HOTSPOT_OUTPUTDIR)/variant-server/gensrc) \
 128       $(EXTRACTED_DEFINES_client) \
 129       $(EXTRACTED_INCLUDES_client) \
 130       $(ADDITIONAL_VARIANT_ARGS) \
 131       $(IGNORED_PLATFORMS_ARGS) \
 132       #
 133 
 134   VCPROJ_VARDEPS := $(PROJECT_CREATOR_CLASS) $(PROJECT_CREATOR_ARGS)
 135   VCPROJ_VARDEPS_FILE := $(call DependOnVariable, VCPROJ_VARDEPS, \
 136     $(VCPROJ_FILE).vardeps)
 137 
 138   $(VCPROJ_FILE): $(BUILD_PROJECT_CREATOR) $(VCPROJ_VARDEPS_FILE)
 139         $(call MakeDir, $(@D))
 140         $(call ExecuteWithLog, $@, \
 141             $(PROJECT_CREATOR_TOOL) $(PROJECT_CREATOR_CLASS) \
 142             $(PROJECT_CREATOR_ARGS) -projectFileName $(call FixPath, $@)) \
 143             $(LOG_INFO)


 144 
 145   TARGETS += $(VCPROJ_FILE)
 146 
 147   all: $(TARGETS)
 148 
 149 else
 150   all:
 151         $(info Hotspot Visual Studio generation only supported on Windows)
 152 endif
 153 
 154 .PHONY: all
< prev index next >