0N/A#
4170N/A# Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
0N/A# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
0N/A#
0N/A# This code is free software; you can redistribute it and/or modify it
0N/A# under the terms of the GNU General Public License version 2 only, as
0N/A# published by the Free Software Foundation.
0N/A#
0N/A# This code is distributed in the hope that it will be useful, but WITHOUT
0N/A# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
0N/A# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
0N/A# version 2 for more details (a copy is included in the LICENSE file that
0N/A# accompanied this code).
0N/A#
0N/A# You should have received a copy of the GNU General Public License version
0N/A# 2 along with this work; if not, write to the Free Software Foundation,
0N/A# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
0N/A#
1472N/A# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
1472N/A# or visit www.oracle.com if you need additional information or have any
1472N/A# questions.
0N/A#
0N/A#
0N/A
0N/A# The common definitions for hotspot windows builds.
0N/A# Include the top level defs.make under make directory instead of this one.
0N/A# This file is included into make/defs.make.
427N/A# On windows it is only used to construct parameters for
91N/A# make/windows/build.make when make/Makefile is used to build VM.
0N/A
0N/ASLASH_JAVA ?= J:
0N/APATH_SEP = ;
0N/A
0N/A# Need PLATFORM (os-arch combo names) for jdk and hotspot, plus libarch name
1518N/Aifeq ($(ARCH_DATA_MODEL),32)
1518N/A ARCH_DATA_MODEL=32
1518N/A PLATFORM=windows-i586
1518N/A VM_PLATFORM=windows_i486
1518N/A HS_ARCH=x86
1518N/A MAKE_ARGS += ARCH=x86
1518N/A MAKE_ARGS += BUILDARCH=i486
1518N/A MAKE_ARGS += Platform_arch=x86
1518N/A MAKE_ARGS += Platform_arch_model=x86_32
1518N/Aendif
1518N/A
0N/Aifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) x86),)
0N/A ARCH_DATA_MODEL=32
0N/A PLATFORM=windows-i586
0N/A VM_PLATFORM=windows_i486
0N/A HS_ARCH=x86
0N/A MAKE_ARGS += ARCH=x86
0N/A MAKE_ARGS += BUILDARCH=i486
0N/A MAKE_ARGS += Platform_arch=x86
0N/A MAKE_ARGS += Platform_arch_model=x86_32
0N/Aendif
0N/A
1518N/Aifneq ($(ARCH_DATA_MODEL),32)
1518N/A ifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) ia64),)
1518N/A ARCH_DATA_MODEL=64
1518N/A PLATFORM=windows-ia64
1518N/A VM_PLATFORM=windows_ia64
1518N/A HS_ARCH=ia64
1518N/A MAKE_ARGS += LP64=1
1518N/A MAKE_ARGS += ARCH=ia64
1518N/A MAKE_ARGS += BUILDARCH=ia64
1518N/A MAKE_ARGS += Platform_arch=ia64
1518N/A MAKE_ARGS += Platform_arch_model=ia64
1518N/A endif
0N/A
1405N/A# http://support.microsoft.com/kb/888731 : this can be either
1405N/A# AMD64 for AMD, or EM64T for Intel chips.
1518N/A ifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) AMD64),)
1518N/A ARCH_DATA_MODEL=64
1518N/A PLATFORM=windows-amd64
1518N/A VM_PLATFORM=windows_amd64
1518N/A HS_ARCH=x86
1518N/A MAKE_ARGS += LP64=1
1518N/A MAKE_ARGS += ARCH=x86
1518N/A MAKE_ARGS += BUILDARCH=amd64
1518N/A MAKE_ARGS += Platform_arch=x86
1518N/A MAKE_ARGS += Platform_arch_model=x86_64
1518N/A endif
0N/A
1477N/Aifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) EM64T),)
1518N/A ARCH_DATA_MODEL=64
1518N/A PLATFORM=windows-amd64
1518N/A VM_PLATFORM=windows_amd64
1518N/A HS_ARCH=x86
1518N/A MAKE_ARGS += LP64=1
1518N/A MAKE_ARGS += ARCH=x86
1518N/A MAKE_ARGS += BUILDARCH=amd64
1518N/A MAKE_ARGS += Platform_arch=x86
1518N/A MAKE_ARGS += Platform_arch_model=x86_64
1518N/A endif
1477N/A
1405N/A# NB later OS versions than 2003 may report "Intel64"
1518N/A ifneq ($(shell $(ECHO) $(PROCESSOR_IDENTIFIER) | $(GREP) Intel64),)
1518N/A ARCH_DATA_MODEL=64
1518N/A PLATFORM=windows-amd64
1518N/A VM_PLATFORM=windows_amd64
1518N/A HS_ARCH=x86
1518N/A MAKE_ARGS += LP64=1
1518N/A MAKE_ARGS += ARCH=x86
1518N/A MAKE_ARGS += BUILDARCH=amd64
1518N/A MAKE_ARGS += Platform_arch=x86
1518N/A MAKE_ARGS += Platform_arch_model=x86_64
1518N/A endif
1405N/Aendif
1405N/A
3364N/A# Full Debug Symbols has been enabled on Windows since JDK1.4.1 so
3364N/A# there is no need for an "earlier than JDK7 check".
3365N/A# The Full Debug Symbols (FDS) default for BUILD_FLAVOR == product
3365N/A# builds is enabled with debug info files ZIP'ed to save space. For
3365N/A# BUILD_FLAVOR != product builds, FDS is always enabled, after all a
3365N/A# debug build without debug info isn't very useful.
3365N/A# The ZIP_DEBUGINFO_FILES option only has meaning when FDS is enabled.
3365N/A#
3365N/A# If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be
3365N/A# disabled for a BUILD_FLAVOR == product build.
3365N/A#
3365N/A# Note: Use of a different variable name for the FDS override option
3365N/A# versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS
3365N/A# versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass
3365N/A# in options via environment variables, use of distinct variables
3365N/A# prevents strange behaviours. For example, in a BUILD_FLAVOR !=
3365N/A# product build, the FULL_DEBUG_SYMBOLS environment variable will be
3365N/A# 0, but the ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If
3365N/A# the same variable name is used, then different values can be picked
3365N/A# up by different parts of the build. Just to be clear, we only need
3365N/A# two variable names because the incoming option value can be
3365N/A# overridden in some situations, e.g., a BUILD_FLAVOR != product
3365N/A# build.
3364N/A
4047N/A# Due to the multiple sub-make processes that occur this logic gets
4047N/A# executed multiple times. We reduce the noise by at least checking that
4047N/A# BUILD_FLAVOR has been set.
4047N/Aifneq ($(BUILD_FLAVOR),)
4047N/A ifeq ($(BUILD_FLAVOR), product)
4047N/A FULL_DEBUG_SYMBOLS ?= 1
4047N/A ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
4047N/A else
4047N/A # debug variants always get Full Debug Symbols (if available)
4047N/A ENABLE_FULL_DEBUG_SYMBOLS = 1
4047N/A endif
4047N/A _JUNK_ := $(shell \
4047N/A echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
4047N/A MAKE_ARGS += ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)
4047N/A
4047N/A ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
4047N/A ZIP_DEBUGINFO_FILES ?= 1
4047N/A else
4047N/A ZIP_DEBUGINFO_FILES=0
4047N/A endif
4047N/A MAKE_ARGS += ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)
3365N/Aendif
3364N/A
3364N/AMAKE_ARGS += RM="$(RM)"
3364N/AMAKE_ARGS += ZIPEXE=$(ZIPEXE)
3364N/A
4170N/A# On 32 bit windows we build server and client, on 64 bit just server.
3617N/Aifeq ($(JVM_VARIANTS),)
3617N/A ifeq ($(ARCH_DATA_MODEL), 32)
4170N/A JVM_VARIANTS:=client,server
3617N/A JVM_VARIANT_CLIENT:=true
3617N/A JVM_VARIANT_SERVER:=true
3617N/A else
3617N/A JVM_VARIANTS:=server
3617N/A JVM_VARIANT_SERVER:=true
3617N/A endif
3617N/Aendif
3617N/A
0N/AJDK_INCLUDE_SUBDIR=win32
0N/A
2796N/A# Library suffix
2796N/ALIBRARY_SUFFIX=dll
2796N/A
427N/A# HOTSPOT_RELEASE_VERSION and HOTSPOT_BUILD_VERSION are defined
0N/A# and added to MAKE_ARGS list in $(GAMMADIR)/make/defs.make.
0N/A
0N/A# next parameters are defined in $(GAMMADIR)/make/defs.make.
0N/AMAKE_ARGS += JDK_MKTG_VERSION=$(JDK_MKTG_VERSION)
0N/AMAKE_ARGS += JDK_MAJOR_VER=$(JDK_MAJOR_VERSION)
0N/AMAKE_ARGS += JDK_MINOR_VER=$(JDK_MINOR_VERSION)
0N/AMAKE_ARGS += JDK_MICRO_VER=$(JDK_MICRO_VERSION)
0N/A
0N/Aifdef COOKED_JDK_UPDATE_VERSION
0N/A MAKE_ARGS += JDK_UPDATE_VER=$(COOKED_JDK_UPDATE_VERSION)
0N/Aendif
0N/A
0N/A# COOKED_BUILD_NUMBER should only be set if we have a numeric
0N/A# build number. It must not be zero padded.
0N/Aifdef COOKED_BUILD_NUMBER
0N/A MAKE_ARGS += JDK_BUILD_NUMBER=$(COOKED_BUILD_NUMBER)
0N/Aendif
0N/A
4490N/ANMAKE= MAKEFLAGS= MFLAGS= EXTRA_CFLAGS="$(EXTRA_CFLAGS)" nmake -NOLOGO
3953N/Aifndef SYSTEM_UNAME
3953N/A SYSTEM_UNAME := $(shell uname)
3953N/A export SYSTEM_UNAME
3953N/Aendif
0N/A
0N/A# Check for CYGWIN
3953N/Aifneq (,$(findstring CYGWIN,$(SYSTEM_UNAME)))
0N/A USING_CYGWIN=true
0N/Aelse
0N/A USING_CYGWIN=false
0N/Aendif
3953N/A# Check for MinGW
3953N/Aifneq (,$(findstring MINGW,$(SYSTEM_UNAME)))
3953N/A USING_MINGW=true
3953N/Aendif
0N/A# FIXUP: The subdirectory for a debug build is NOT the same on all platforms
0N/AVM_DEBUG=debug
0N/A
0N/A# Windows wants particular paths due to nmake (must be after macros defined)
0N/A# It is important that gnumake invokes nmake with C:\\...\\ formated
0N/A# strings so that nmake gets C:\...\ style strings.
0N/A# Check for CYGWIN
0N/Aifeq ($(USING_CYGWIN), true)
0N/A ABS_OUTPUTDIR := $(subst /,\\,$(shell /bin/cygpath -m -a "$(OUTPUTDIR)"))
0N/A ABS_BOOTDIR := $(subst /,\\,$(shell /bin/cygpath -m -a "$(BOOTDIR)"))
0N/A ABS_GAMMADIR := $(subst /,\\,$(shell /bin/cygpath -m -a "$(GAMMADIR)"))
271N/A ABS_OS_MAKEFILE := $(shell /bin/cygpath -m -a "$(HS_MAKE_DIR)/$(OSNAME)")/build.make
3953N/Aelse ifeq ($(USING_MINGW), true)
3953N/A ABS_OUTPUTDIR := $(shell $(CD) $(OUTPUTDIR);$(PWD))
3953N/A ABS_BOOTDIR := $(shell $(CD) $(BOOTDIR);$(PWD))
3953N/A ABS_GAMMADIR := $(shell $(CD) $(GAMMADIR);$(PWD))
3953N/A ABS_OS_MAKEFILE := $(shell $(CD) $(HS_MAKE_DIR)/$(OSNAME);$(PWD))/build.make
3953N/A else
3953N/A ABS_OUTPUTDIR := $(subst /,\\,$(shell $(CD) $(OUTPUTDIR);$(PWD)))
3953N/A ABS_BOOTDIR := $(subst /,\\,$(shell $(CD) $(BOOTDIR);$(PWD)))
3953N/A ABS_GAMMADIR := $(subst /,\\,$(shell $(CD) $(GAMMADIR);$(PWD)))
3953N/A ABS_OS_MAKEFILE := $(subst /,\\,$(shell $(CD) $(HS_MAKE_DIR)/$(OSNAME);$(PWD))/build.make)
0N/Aendif
0N/A
0N/A# Disable building SA on windows until we are sure
0N/A# we want to release it. If we build it here,
0N/A# the SDK makefiles will copy it over and put it into
0N/A# the created image.
456N/ABUILD_WIN_SA = 1
0N/Aifneq ($(ALT_BUILD_WIN_SA),)
0N/A BUILD_WIN_SA = $(ALT_BUILD_WIN_SA)
0N/Aendif
0N/A
0N/Aifeq ($(BUILD_WIN_SA), 1)
427N/A ifeq ($(ARCH),ia64)
0N/A BUILD_WIN_SA = 0
0N/A endif
0N/Aendif
0N/A
0N/AEXPORT_SERVER_DIR = $(EXPORT_JRE_BIN_DIR)/server
2671N/AEXPORT_CLIENT_DIR = $(EXPORT_JRE_BIN_DIR)/client
2671N/A
3617N/Aifeq ($(JVM_VARIANT_SERVER),true)
3617N/A EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt
3617N/A EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.$(LIBRARY_SUFFIX)
3691N/A ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
3691N/A ifeq ($(ZIP_DEBUGINFO_FILES),1)
3691N/A EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.diz
3691N/A else
3691N/A EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.pdb
3691N/A EXPORT_LIST += $(EXPORT_SERVER_DIR)/jvm.map
3691N/A endif
3364N/A endif
3617N/A EXPORT_LIST += $(EXPORT_LIB_DIR)/jvm.lib
3364N/Aendif
3617N/Aifeq ($(JVM_VARIANT_CLIENT),true)
0N/A EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt
2796N/A EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.$(LIBRARY_SUFFIX)
3364N/A ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
3364N/A ifeq ($(ZIP_DEBUGINFO_FILES),1)
3364N/A EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.diz
3364N/A else
3364N/A EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.pdb
3364N/A EXPORT_LIST += $(EXPORT_CLIENT_DIR)/jvm.map
3364N/A endif
3364N/A endif
3617N/Aendif
0N/A
0N/Aifeq ($(BUILD_WIN_SA), 1)
2796N/A EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.$(LIBRARY_SUFFIX)
3364N/A ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
3364N/A ifeq ($(ZIP_DEBUGINFO_FILES),1)
3364N/A EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.diz
3364N/A else
3364N/A EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.pdb
3364N/A EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.map
3364N/A endif
3364N/A endif
427N/A EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar
0N/A # Must pass this down to nmake.
0N/A MAKE_ARGS += BUILD_WIN_SA=1
0N/Aendif
3568N/A
3568N/A# Propagate compiler and tools paths from configure to nmake.
3568N/A# Need to make sure they contain \\ and not /.
3568N/Aifneq ($(SPEC),)
3568N/A ifeq ($(USING_CYGWIN), true)
3568N/A MAKE_ARGS += CXX="$(subst /,\\,$(shell /bin/cygpath -s -m -a $(CXX)))"
3568N/A MAKE_ARGS += LD="$(subst /,\\,$(shell /bin/cygpath -s -m -a $(LD)))"
3568N/A MAKE_ARGS += RC="$(subst /,\\,$(shell /bin/cygpath -s -m -a $(RC)))"
3568N/A MAKE_ARGS += MT="$(subst /,\\,$(shell /bin/cygpath -s -m -a $(MT)))"
3568N/A else
3568N/A MAKE_ARGS += CXX="$(subst /,\\,$(CXX))"
3568N/A MAKE_ARGS += LD="$(subst /,\\,$(LD))"
3568N/A MAKE_ARGS += RC="$(subst /,\\,$(RC))"
3568N/A MAKE_ARGS += MT="$(subst /,\\,$(MT))"
3568N/A endif
3568N/Aendif