--- old/hotspot/makefiles/ide/CreateVSProject.gmk 2016-04-20 15:10:37.983249246 +0200 +++ /dev/null 2016-02-18 10:58:42.502130963 +0100 @@ -1,153 +0,0 @@ -# -# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# This code is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 only, as -# published by the Free Software Foundation. Oracle designates this -# particular file as subject to the "Classpath" exception as provided -# by Oracle in the LICENSE file that accompanied this code. -# -# This code is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# version 2 for more details (a copy is included in the LICENSE file that -# accompanied this code). -# -# You should have received a copy of the GNU General Public License version -# 2 along with this work; if not, write to the Free Software Foundation, -# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -# or visit www.oracle.com if you need additional information or have any -# questions. -# - -# This must be the first rule -default: all - -include $(SPEC) -include MakeBase.gmk -include JavaCompilation.gmk -include SetupJavaCompilers.gmk - -ifeq ($(OPENJDK_TARGET_OS), windows) - # The next part is a bit hacky. We include the CompileJvm.gmk to be - # able to extact flags, but we do not wish to execute the rules. - - # Use client as base for defines and includes - JVM_VARIANT=client - - include HotspotCommon.gmk - include lib/CompileJvm.gmk - - # Reset targets so we don't build libjvm. - TARGETS := - - # Helper macro to convert a unix path to a Windows path, suitable for - # inclusion in a command line. - FixPath = \ - $(strip $(subst \,\\,$(shell $(CYGPATH) -w $1))) - - JVM_DEFINES_client := $(patsubst -D%,%, $(filter -D%, $(JVM_CFLAGS))) - EXTRACTED_DEFINES_client := $(addprefix -define , $(JVM_DEFINES_client)) - - JVM_INCLUDES_client := $(patsubst -I%,%, $(filter -I%, $(JVM_CFLAGS))) - EXTRACTED_INCLUDES_client := $(foreach path, $(JVM_INCLUDES_client), -absoluteInclude $(call FixPath, $(path))) - - # Hand-code variant-specific arguments, based on the fact that we use - # client for general arguments. Not optimal but other solutions require - # major changes in ProjectCreator. - ADDITIONAL_VARIANT_ARGS := \ - -define_server COMPILER2 \ - -ignorePath_client adfiles \ - -ignorePath_client c2_ \ - -ignorePath_client runtime_ \ - -ignorePath_client libadt \ - -ignorePath_client opto \ - # - - IGNORED_PLATFORMS_ARGS := \ - -ignorePath aarch64 \ - -ignorePath aix \ - -ignorePath arm \ - -ignorePath bsd \ - -ignorePath linux \ - -ignorePath posix \ - -ignorePath ppc \ - -ignorePath shark \ - -ignorePath solaris \ - -ignorePath sparc \ - -ignorePath x86_32 \ - -ignorePath zero \ - # - - ################################################################################ - # Build the ProjectCreator java tool. - - TOOLS_OUTPUTDIR := $(HOTSPOT_OUTPUTDIR)/support/tools_classes - - $(eval $(call SetupJavaCompilation, BUILD_PROJECT_CREATOR, \ - SETUP := GENERATE_OLDBYTECODE, \ - ADD_JAVAC_FLAGS := -Xlint:-auxiliaryclass, \ - SRC := $(HOTSPOT_TOPDIR)/makefiles/src/classes, \ - BIN := $(TOOLS_OUTPUTDIR), \ - )) - - TARGETS += $(BUILD_PROJECT_CREATOR) - - # Run the ProjectCreator tool - PROJECT_CREATOR_TOOL := $(JAVA_SMALL) -cp $(TOOLS_OUTPUTDIR) build.tools.projectcreator.ProjectCreator - - IDE_OUTPUTDIR := $(BUILD_OUTPUT)/ide/hotspot-visualstudio - - VCPROJ_FILE := $(IDE_OUTPUTDIR)/jvm.vcxproj - - PROJECT_CREATOR_CLASS := build.tools.projectcreator.WinGammaPlatformVC10 - - # We hard-code gensrc dir to server (since this includes adfiles) - PROJECT_CREATOR_ARGS := \ - -sourceBase $(call FixPath, $(HOTSPOT_TOPDIR)) \ - -startAt src \ - -relativeSrcInclude src \ - -hidePath .hg \ - -hidePath .jcheck \ - -hidePath jdk.hotspot.agent \ - -hidePath jdk.vm.ci \ - -hidePath jdk.jfr \ - -compiler VC10 \ - -jdkTargetRoot $(call FixPath, $(JDK_OUTPUTDIR)) \ - -platformName x64 \ - -buildBase $(call FixPath, $(IDE_OUTPUTDIR)/vs-output) \ - -buildSpace $(call FixPath, $(IDE_OUTPUTDIR)) \ - -makeBinary $(call FixPath, $(MAKE)) \ - -makeOutput $(call FixPath, $(HOTSPOT_OUTPUTDIR)/variant-%f/libjvm) \ - -absoluteInclude $(call FixPath, $(HOTSPOT_OUTPUTDIR)/variant-server/gensrc) \ - -absoluteSrcInclude $(call FixPath, $(HOTSPOT_OUTPUTDIR)/variant-server/gensrc) \ - $(EXTRACTED_DEFINES_client) \ - $(EXTRACTED_INCLUDES_client) \ - $(ADDITIONAL_VARIANT_ARGS) \ - $(IGNORED_PLATFORMS_ARGS) \ - # - - VCPROJ_VARDEPS := $(PROJECT_CREATOR_CLASS) $(PROJECT_CREATOR_ARGS) - VCPROJ_VARDEPS_FILE := $(call DependOnVariable, VCPROJ_VARDEPS, \ - $(VCPROJ_FILE).vardeps) - - $(VCPROJ_FILE): $(BUILD_PROJECT_CREATOR) $(VCPROJ_VARDEPS_FILE) - $(call MakeDir, $(@D)) - $(call ExecuteWithLog, $@, \ - $(PROJECT_CREATOR_TOOL) $(PROJECT_CREATOR_CLASS) \ - $(PROJECT_CREATOR_ARGS) -projectFileName $(call FixPath, $@)) \ - $(LOG_INFO) - - TARGETS += $(VCPROJ_FILE) - - all: $(TARGETS) - -else - all: - $(info Hotspot Visual Studio generation only supported on Windows) -endif - -.PHONY: all --- /dev/null 2016-02-18 10:58:42.502130963 +0100 +++ new/hotspot/make/ide/CreateVSProject.gmk 2016-04-20 15:10:37.803241715 +0200 @@ -0,0 +1,153 @@ +# +# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +# This must be the first rule +default: all + +include $(SPEC) +include MakeBase.gmk +include JavaCompilation.gmk +include SetupJavaCompilers.gmk + +ifeq ($(OPENJDK_TARGET_OS), windows) + # The next part is a bit hacky. We include the CompileJvm.gmk to be + # able to extact flags, but we do not wish to execute the rules. + + # Use client as base for defines and includes + JVM_VARIANT=client + + include HotspotCommon.gmk + include lib/CompileJvm.gmk + + # Reset targets so we don't build libjvm. + TARGETS := + + # Helper macro to convert a unix path to a Windows path, suitable for + # inclusion in a command line. + FixPath = \ + $(strip $(subst \,\\,$(shell $(CYGPATH) -w $1))) + + JVM_DEFINES_client := $(patsubst -D%,%, $(filter -D%, $(JVM_CFLAGS))) + EXTRACTED_DEFINES_client := $(addprefix -define , $(JVM_DEFINES_client)) + + JVM_INCLUDES_client := $(patsubst -I%,%, $(filter -I%, $(JVM_CFLAGS))) + EXTRACTED_INCLUDES_client := $(foreach path, $(JVM_INCLUDES_client), -absoluteInclude $(call FixPath, $(path))) + + # Hand-code variant-specific arguments, based on the fact that we use + # client for general arguments. Not optimal but other solutions require + # major changes in ProjectCreator. + ADDITIONAL_VARIANT_ARGS := \ + -define_server COMPILER2 \ + -ignorePath_client adfiles \ + -ignorePath_client c2_ \ + -ignorePath_client runtime_ \ + -ignorePath_client libadt \ + -ignorePath_client opto \ + # + + IGNORED_PLATFORMS_ARGS := \ + -ignorePath aarch64 \ + -ignorePath aix \ + -ignorePath arm \ + -ignorePath bsd \ + -ignorePath linux \ + -ignorePath posix \ + -ignorePath ppc \ + -ignorePath shark \ + -ignorePath solaris \ + -ignorePath sparc \ + -ignorePath x86_32 \ + -ignorePath zero \ + # + + ################################################################################ + # Build the ProjectCreator java tool. + + TOOLS_OUTPUTDIR := $(HOTSPOT_OUTPUTDIR)/support/tools_classes + + $(eval $(call SetupJavaCompilation, BUILD_PROJECT_CREATOR, \ + SETUP := GENERATE_OLDBYTECODE, \ + ADD_JAVAC_FLAGS := -Xlint:-auxiliaryclass, \ + SRC := $(HOTSPOT_TOPDIR)/make/src/classes, \ + BIN := $(TOOLS_OUTPUTDIR), \ + )) + + TARGETS += $(BUILD_PROJECT_CREATOR) + + # Run the ProjectCreator tool + PROJECT_CREATOR_TOOL := $(JAVA_SMALL) -cp $(TOOLS_OUTPUTDIR) build.tools.projectcreator.ProjectCreator + + IDE_OUTPUTDIR := $(BUILD_OUTPUT)/ide/hotspot-visualstudio + + VCPROJ_FILE := $(IDE_OUTPUTDIR)/jvm.vcxproj + + PROJECT_CREATOR_CLASS := build.tools.projectcreator.WinGammaPlatformVC10 + + # We hard-code gensrc dir to server (since this includes adfiles) + PROJECT_CREATOR_ARGS := \ + -sourceBase $(call FixPath, $(HOTSPOT_TOPDIR)) \ + -startAt src \ + -relativeSrcInclude src \ + -hidePath .hg \ + -hidePath .jcheck \ + -hidePath jdk.hotspot.agent \ + -hidePath jdk.vm.ci \ + -hidePath jdk.jfr \ + -compiler VC10 \ + -jdkTargetRoot $(call FixPath, $(JDK_OUTPUTDIR)) \ + -platformName x64 \ + -buildBase $(call FixPath, $(IDE_OUTPUTDIR)/vs-output) \ + -buildSpace $(call FixPath, $(IDE_OUTPUTDIR)) \ + -makeBinary $(call FixPath, $(MAKE)) \ + -makeOutput $(call FixPath, $(HOTSPOT_OUTPUTDIR)/variant-%f/libjvm) \ + -absoluteInclude $(call FixPath, $(HOTSPOT_OUTPUTDIR)/variant-server/gensrc) \ + -absoluteSrcInclude $(call FixPath, $(HOTSPOT_OUTPUTDIR)/variant-server/gensrc) \ + $(EXTRACTED_DEFINES_client) \ + $(EXTRACTED_INCLUDES_client) \ + $(ADDITIONAL_VARIANT_ARGS) \ + $(IGNORED_PLATFORMS_ARGS) \ + # + + VCPROJ_VARDEPS := $(PROJECT_CREATOR_CLASS) $(PROJECT_CREATOR_ARGS) + VCPROJ_VARDEPS_FILE := $(call DependOnVariable, VCPROJ_VARDEPS, \ + $(VCPROJ_FILE).vardeps) + + $(VCPROJ_FILE): $(BUILD_PROJECT_CREATOR) $(VCPROJ_VARDEPS_FILE) + $(call MakeDir, $(@D)) + $(call ExecuteWithLog, $@, \ + $(PROJECT_CREATOR_TOOL) $(PROJECT_CREATOR_CLASS) \ + $(PROJECT_CREATOR_ARGS) -projectFileName $(call FixPath, $@)) \ + $(LOG_INFO) + + TARGETS += $(VCPROJ_FILE) + + all: $(TARGETS) + +else + all: + $(info Hotspot Visual Studio generation only supported on Windows) +endif + +.PHONY: all