--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/common/shared/Defs-windows.gmk Sat Dec 01 00:00:00 2007 +0000
@@ -0,0 +1,658 @@
+#
+# Copyright 2005-2007 Sun Microsystems, Inc. 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. Sun designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+# CA 95054 USA or visit www.sun.com if you need additional information or
+# have any questions.
+#
+
+#
+# Definitions for Windows.
+#
+
+# Default for COMPILER_WARNINGS_FATAL on Windows (C++ compiler warnings)
+# Level: Default is 3, 0 means none, 4 is the most but may be unreliable
+# Some makefiles may have set this to 0 to turn off warnings completely,
+# which also effectively creates a COMPILER_WARNINGS_FATAL=false situation.
+# Program.gmk may turn this down to 2 (building .exe's).
+# Windows 64bit platforms are less likely to be warning free.
+# Historically, Windows 32bit builds should be mostly warning free.
+ifndef COMPILER_WARNING_LEVEL
+ COMPILER_WARNING_LEVEL=3
+endif
+ifndef COMPILER_WARNINGS_FATAL
+ COMPILER_WARNINGS_FATAL=false
+endif
+
+# Windows should use parallel compilation for best build times
+ifndef COMPILE_APPROACH
+ COMPILE_APPROACH = normal
+endif
+
+# Indication that we are doing an incremental build.
+# This may trigger the creation of make depend files.
+# (This may not be working on windows yet, always force to false.)
+override INCREMENTAL_BUILD = false
+
+# WARNING: This is extremely touch stuff, between CYGWIN vs. MKS and all
+# variations of MKS and CYGWIN releases, and 32bit vs 64bit,
+# this file can give you nightmares.
+#
+# Notes:
+# Keep all paths in the windows "mixed" style except CYGWIN UNXIXCOMMAND_PATH.
+# Use of PrefixPath is critical, some variables must end with / (see NOTE).
+# Use of quotes is critical due to possible spaces in paths coming from
+# the environment variables, be careful.
+# First convert \ to / with subst, keep it quoted due to blanks, then
+# use cygpath -s or dosname -s to get the short non-blank name.
+# If the MKS is old and doesn't have a dosname -s, you will be forced
+# to set ALT variables with the short non-space directory names.
+# If dosname doesn't appear to work, we won't use it.
+# The dosname utility also wants to accept stdin if it is not supplied
+# any path on the command line, this is really dangerous when using
+# make variables that can easily become empty, so I use:
+# echo $1 | dosname -s instead of dosname -s $1
+# to prevent dosname from hanging up the make process when $1 is empty.
+# The cygpath utility does not have this problem.
+# The ALT values should never really have spaces or use \.
+# Suspect these environment variables to have spaces and/or \ characters:
+# SYSTEMROOT, SystemRoot, WINDIR, windir, PROGRAMFILES, ProgramFiles,
+# DXSDK_DIR, MSTOOLS, Mstools, MSSDK, MSSdk, VC71COMNTOOLS,
+# MSVCDIR, MSVCDir.
+# So use $(subst \,/,) on them first adding quotes and placing them in
+# their own variable assigned with :=, then use FullPath.
+#
+
+# Use FullPath to get C:/ style non-spaces path. Never ends with a /!
+ifdef USING_CYGWIN
+# We assume cygpath is available in the search path
+# NOTE: Use of 'pwd' with CYGWIN will not get you a mixed style path!
+CYGPATH_CMD=cygpath -a -s -m
+define FullPath
+$(shell $(CYGPATH_CMD) $1 2> $(DEV_NULL))
+endef
+define OptFullPath
+$(shell if [ "$1" != "" -a -d "$1" ]; then $(CYGPATH_CMD) "$1"; else echo "$1"; fi)
+endef
+else
+# Temporary until we upgrade to MKS 8.7, MKS pwd returns mixed mode path
+define FullPath
+$(shell cd $1 2> $(DEV_NULL) && pwd)
+endef
+define OptFullPath
+$(shell if [ "$1" != "" -a -d "$1" ]; then (cd $1 && pwd); else echo "$1"; fi)
+endef
+endif
+
+# System drive
+ifdef SYSTEMDRIVE
+ _system_drive =$(SYSTEMDRIVE)
+else
+ ifdef SystemDrive
+ _system_drive =$(SystemDrive)
+ endif
+endif
+_system_drive:=$(call CheckValue,_system_drive,C:)
+
+# UNIXCOMMAND_PATH: path to where the most common Unix commands are.
+# NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifdef ALT_UNIXCOMMAND_PATH
+ xALT_UNIXCOMMAND_PATH :="$(subst \,/,$(ALT_UNIXCOMMAND_PATH))"
+ fxALT_UNIXCOMMAND_PATH :=$(call FullPath,$(xALT_UNIXCOMMAND_PATH))
+ UNIXCOMMAND_PATH :=$(call PrefixPath,$(fxALT_UNIXCOMMAND_PATH))
+else
+ ifdef USING_CYGWIN
+ UNIXCOMMAND_PATH :=$(call PrefixPath,/usr/bin)
+ else
+ ifdef ROOTDIR
+ xROOTDIR :="$(subst \,/,$(ROOTDIR))"
+ _rootdir :=$(call FullPath,$(xROOTDIR))
+ else
+ xROOTDIR :="$(_system_drive)/mksnt"
+ _rootdir :=$(call FullPath,$(xROOTDIR))
+ endif
+ ifneq ($(_rootdir),)
+ UNIXCOMMAND_PATH :=$(call PrefixPath,$(_rootdir)/mksnt)
+ endif
+ endif
+endif
+UNIXCOMMAND_PATH:=$(call AltCheckSpaces,UNIXCOMMAND_PATH)
+
+# Get version of MKS or CYGWIN
+ifdef USING_CYGWIN
+_CYGWIN_VER :=$(shell $(UNAME))
+CYGWIN_VER :=$(call GetVersion,$(_CYGWIN_VER))
+else # MKS
+_MKS_VER :=$(shell $(MKSINFO) 2>&1 | $(GREP) Release | $(TAIL) -1 | $(SED) -e 's@.*\(Release.*\)@\1@')
+MKS_VER :=$(call GetVersion,$(_MKS_VER))
+# At this point, we can re-define FullPath to use DOSNAME_CMD
+CHECK_MKS87:=$(call CheckVersions,$(MKS_VER),8.7)
+TRY_DOSNAME:=false
+ifeq ($(CHECK_MKS87),same)
+TRY_DOSNAME:=true
+endif
+# Newer should be ok
+ifeq ($(CHECK_MKS87),newer)
+TRY_DOSNAME:=true
+endif
+ifeq ($(TRY_DOSNAME),true)
+ifeq ($(shell $(UNIXCOMMAND_PATH)dosname -s $(_system_drive)/ 2> $(DEV_NULL)),$(_system_drive)/)
+_DOSNAME=$(UNIXCOMMAND_PATH)dosname
+DOSNAME_CMD:=$(_DOSNAME) -s
+define FullPath
+$(subst //,/,$(shell echo $1 | $(DOSNAME_CMD) 2> $(DEV_NULL)))
+endef
+endif # test dosname -s
+endif # TRY_DOSNAME
+endif # MKS
+
+# We try to get references to what we need via the default component
+# environment variables, or what was used historically.
+
+# Process Windows values into FullPath values, these paths may have \ chars
+
+# System root
+ifdef SYSTEMROOT
+ xSYSTEMROOT :="$(subst \,/,$(SYSTEMROOT))"
+ _system_root :=$(call FullPath,$(xSYSTEMROOT))
+else
+ ifdef SystemRoot
+ xSYSTEMROOT :="$(subst \,/,$(SystemRoot))"
+ _system_root :=$(call FullPath,$(xSYSTEMROOT))
+ else
+ ifdef WINDIR
+ xWINDIR :="$(subst \,/,$(WINDIR))"
+ _system_root :=$(call FullPath,$(xWINDIR))
+ else
+ ifdef windir
+ xWINDIR :="$(subst \,/,$(windir))"
+ _system_root :=$(call FullPath,$(xWINDIR))
+ endif
+ endif
+ endif
+endif
+_system_root:=$(call CheckValue,_system_root,$(_system_drive)/WINNT)
+
+# Program Files directory
+ifdef PROGRAMFILES
+ xPROGRAMFILES :="$(subst \,/,$(PROGRAMFILES))"
+else
+ ifeq ($(ARCH_DATA_MODEL), 32)
+ xPROGRAMFILES :="$(_system_drive)/Program Files"
+ else
+ xPROGRAMFILES :="$(_system_drive)/Program Files (x86)"
+ endif
+endif
+ifeq ($(ARCH_DATA_MODEL), 32)
+ _program_files :=$(call FullPath,$(xPROGRAMFILES))
+else
+ ifdef PROGRAMW6432
+ xPROGRAMW6432 :="$(subst \,/,$(PROGRAMW6432))"
+ else
+ xPROGRAMW6432 :="$(_system_drive)/Program Files"
+ endif
+ _program_files :=$(call FullPath,$(xPROGRAMW6432))
+ _program_files32 :=$(call FullPath,$(xPROGRAMFILES))
+ ifneq ($(word 1,$(_program_files32)),$(_program_files32))
+ _program_files32:=
+ endif
+endif
+ifneq ($(word 1,$(_program_files)),$(_program_files))
+ _program_files:=
+endif
+
+# DirectX SDK
+ifdef ALT_DXSDK_DRIVE
+ _dx_sdk_dir =$(ALT_DXSDK_DRIVE):/DXSDK
+else
+ ifdef DXSDK_DIR
+ xDXSDK_DIR :="$(subst \,/,$(DXSDK_DIR))"
+ else
+ xDXSDK_DIR :="$(_system_drive)/DXSDK"
+ endif
+ _dx_sdk_dir :=$(call FullPath,$(xDXSDK_DIR))
+endif
+
+# Compilers, SDK, and Visual Studio (MSDEV) [32bit is different from 64bit]
+ifeq ($(ARCH_DATA_MODEL), 32)
+ # Try looking in MSVCDIR or MSVCDir area first (set by vcvars32.bat)
+ ifdef MSVCDIR
+ xMSVCDIR :="$(subst \,/,$(MSVCDIR))"
+ _msvc_dir :=$(call FullPath,$(xMSVCDIR))
+ else
+ ifdef MSVCDir
+ xMSVCDIR :="$(subst \,/,$(MSVCDir))"
+ _msvc_dir :=$(call FullPath,$(xMSVCDIR))
+ else
+ ifneq ($(_program_files),)
+ xMSVCDIR :="$(_program_files)/Microsoft Visual Studio .NET 2003/Vc7"
+ _msvc_dir :=$(call FullPath,$(xMSVCDIR))
+ endif
+ endif
+ endif
+ ifneq ($(subst MSDev98,OLDOLDOLD,$(_msvc_dir)),$(_msvc_dir))
+ _msvc_dir :=
+ endif
+ # If we still don't have it, look for VS71COMNTOOLS, setup by installer?
+ ifeq ($(_msvc_dir),)
+ ifdef VS71COMNTOOLS # /Common/Tools directory, use ../../Vc7
+ xVS71COMNTOOLS :="$(subst \,/,$(VS71COMNTOOLS))"
+ _vs71tools :=$(call FullPath,$(xVS71COMNTOOLS))
+ endif
+ ifneq ($(_vs71tools),)
+ _msvc_dir :=$(_vs71tools)/../../Vc7
+ endif
+ endif
+ ifneq ($(_msvc_dir),)
+ _compiler_bin :=$(_msvc_dir)/Bin
+ _redist_sdk :=$(_msvc_dir)/../SDK/v1.1/Bin
+ _ms_sdk :=$(_msvc_dir)/PlatformSDK
+ endif
+endif
+
+# The Microsoft Platform SDK installed by itself
+ifneq ($(_program_files),)
+ xPSDK :="$(_program_files)/Microsoft Platform SDK"
+ _psdk :=$(call FullPath,$(xPSDK))
+ ifeq ($(_psdk),)
+ xPSDK :="$(_program_files)/Microsoft SDK"
+ _psdk :=$(call FullPath,$(xMSSDK))
+ endif
+endif
+
+# If no SDK found yet, look in other places
+ifeq ($(_ms_sdk),)
+ ifdef MSSDK
+ xMSSDK :="$(subst \,/,$(MSSDK))"
+ _ms_sdk :=$(call FullPath,$(xMSSDK))
+ else
+ ifdef MSSdk
+ xMSSDK :="$(subst \,/,$(MSSdk))"
+ _ms_sdk :=$(call FullPath,$(xMSSDK))
+ else
+ _ms_sdk :=$(_psdk)
+ endif
+ endif
+endif
+
+# Compilers for 64bit are from SDK
+ifeq ($(ARCH_DATA_MODEL), 64)
+ ifneq ($(_ms_sdk),)
+ ifeq ($(ARCH), ia64)
+ _compiler_bin :=$(_ms_sdk)/Bin/Win64
+ endif
+ ifeq ($(ARCH), amd64)
+ _compiler_bin :=$(_ms_sdk)/Bin/Win64/x86/$(ARCH)
+ _redist_sdk :=$(_ms_sdk)/redist/win64/AMD64
+ endif
+ endif
+endif
+
+# Location on system where jdk installs might be
+ifneq ($(_program_files),)
+ USRJDKINSTANCES_PATH =$(_program_files)/Java
+else
+ USRJDKINSTANCES_PATH =$(_system_drive)/
+endif
+
+# SLASH_JAVA: location of all network accessable files
+ifdef ALT_SLASH_JAVA
+ xALT_SLASH_JAVA :="$(subst \,/,$(ALT_SLASH_JAVA))"
+ SLASH_JAVA :=$(call FullPath,$(xALT_SLASH_JAVA))
+else
+ ifdef ALT_JDK_JAVA_DRIVE
+ SLASH_JAVA =$(JDK_JAVA_DRIVE)
+ else
+ SLASH_JAVA =J:
+ endif
+endif
+SLASH_JAVA:=$(call AltCheckSpaces,SLASH_JAVA)
+SLASH_JAVA:=$(call AltCheckValue,SLASH_JAVA)
+
+# JDK_DEVTOOLS_DIR: common path for all the java devtools
+ifdef ALT_JDK_DEVTOOLS_DIR
+ xALT_JDK_DEVTOOLS_DIR :="$(subst \,/,$(ALT_JDK_DEVTOOLS_DIR))"
+ JDK_DEVTOOLS_DIR :=$(call FullPath,$(xALT_JDK_DEVTOOLS_DIR))
+else
+ JDK_DEVTOOLS_DIR =$(SLASH_JAVA)/devtools
+endif
+JDK_DEVTOOLS_DIR:=$(call AltCheckSpaces,JDK_DEVTOOLS_DIR)
+JDK_DEVTOOLS_DIR:=$(call AltCheckValue,JDK_DEVTOOLS_DIR)
+
+# COMPILER_PATH: path to where the compiler and tools are installed.
+# NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifdef ALT_COMPILER_PATH
+ xALT_COMPILER_PATH :="$(subst \,/,$(ALT_COMPILER_PATH))"
+ fxALT_COMPILER_PATH :=$(call FullPath,$(xALT_COMPILER_PATH))
+ COMPILER_PATH :=$(call PrefixPath,$(fxALT_COMPILER_PATH))
+else
+ COMPILER_PATH :=$(call PrefixPath,$(_compiler_bin))
+endif
+COMPILER_PATH :=$(call AltCheckSpaces,COMPILER_PATH)
+
+# MSDEVTOOLS_PATH: path to where the additional MS Compiler tools are.
+# NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifdef ALT_MSDEVTOOLS_PATH
+ xALT_MSDEVTOOLS_PATH :="$(subst \,/,$(ALT_MSDEVTOOLS_PATH))"
+ fxALT_MSDEVTOOLS_PATH :=$(call FullPath,$(xALT_MSDEVTOOLS_PATH))
+ MSDEVTOOLS_PATH :=$(call PrefixPath,$(fxALT_MSDEVTOOLS_PATH))
+else
+ ifeq ($(ARCH_DATA_MODEL), 64)
+ ifdef MSTOOLS
+ xMSTOOLS :="$(subst \,/,$(MSTOOLS))"
+ _ms_tools :=$(call FullPath,$(xMSTOOLS))
+ else
+ ifdef Mstools
+ xMSTOOLS :="$(subst \,/,$(Mstools))"
+ _ms_tools :=$(call FullPath,$(xMSTOOLS))
+ else
+ _ms_tools :=
+ endif
+ endif
+ ifneq ($(_ms_tools),)
+ _ms_tools_bin :=$(_ms_tools)/Bin
+ else
+ # Assumes compiler bin is .../Bin/win64/x86/AMD64, rc.exe is 3 levels up
+ _ms_tools_bin :=$(_compiler_bin)/../../..
+ endif
+ else
+ _ms_tools_bin :=$(_compiler_bin)
+ endif
+ MSDEVTOOLS_PATH :=$(call PrefixPath,$(_ms_tools_bin))
+endif
+MSDEVTOOLS_PATH:=$(call AltCheckSpaces,MSDEVTOOLS_PATH)
+
+# DEVTOOLS_PATH: for other tools required for building (such as zip, etc.)
+# NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifdef ALT_DEVTOOLS_PATH
+ xALT_DEVTOOLS_PATH :="$(subst \,/,$(ALT_DEVTOOLS_PATH))"
+ fxALT_DEVTOOLS_PATH :=$(call FullPath,$(xALT_DEVTOOLS_PATH))
+ DEVTOOLS_PATH :=$(call PrefixPath,$(fxALT_DEVTOOLS_PATH))
+else
+ ifdef USING_CYGWIN
+ DEVTOOLS_PATH :=$(UNIXCOMMAND_PATH)
+ else
+ xDEVTOOLS_PATH :="$(_system_drive)/utils"
+ fxDEVTOOLS_PATH :=$(call FullPath,$(xDEVTOOLS_PATH))
+ DEVTOOLS_PATH :=$(call PrefixPath,$(fxDEVTOOLS_PATH))
+ endif
+endif
+DEVTOOLS_PATH:=$(call AltCheckSpaces,DEVTOOLS_PATH)
+
+# _BOOTDIR1: First choice for a Bootstrap JDK, previous released JDK.
+# _BOOTDIR2: Second choice
+ifndef ALT_BOOTDIR
+ _BOOTDIR1 =$(_system_drive)/jdk$(PREVIOUS_JDK_VERSION)
+ _BOOTDIR2 =$(USRJDKINSTANCES_PATH)/jdk$(PREVIOUS_JDK_VERSION)
+endif
+
+# See if SDK area has a msvcrt.dll file, directory may exist w/o msvcr* files
+_REDIST_SDK_EXISTS := $(shell \
+ if [ -f "$(_redist_sdk)/msvcrt.dll" ]; then \
+ echo "true"; \
+ else \
+ echo "false"; \
+ fi)
+_REDIST71_SDK_EXISTS := $(shell \
+ if [ -f "$(_redist_sdk)/msvcr71.dll" ]; then \
+ echo "true"; \
+ else \
+ echo "false"; \
+ fi)
+
+# 32 bit needs 2 runtimes
+ifeq ($(ARCH_DATA_MODEL), 32)
+
+ # MSVCRT_DLL_PATH: location of msvcrt.dll that will be re-distributed
+ ifdef ALT_MSVCRT_DLL_PATH
+ xALT_MSVCRT_DLL_PATH :="$(subst \,/,$(ALT_MSVCRT_DLL_PATH))"
+ MSVCRT_DLL_PATH :=$(call FullPath,$(xALT_MSVCRT_DLL_PATH))
+ else
+ ifeq ($(_REDIST_SDK_EXISTS), true)
+ xREDIST_DIR :=$(_redist_sdk)
+ else
+ xREDIST_DIR :=$(_system_root)/system32
+ endif
+ MSVCRT_DLL_PATH :=$(call FullPath,$(xREDIST_DIR))
+ endif
+ MSVCRT_DLL_PATH:=$(call AltCheckSpaces,MSVCRT_DLL_PATH)
+ MSVCRT_DLL_PATH:=$(call AltCheckValue,MSVCRT_DLL_PATH)
+
+ # MSVCR71_DLL_PATH: location of msvcr71.dll that will be re-distributed
+ ifdef ALT_MSVCR71_DLL_PATH
+ xALT_MSVCR71_DLL_PATH :="$(subst \,/,$(ALT_MSVCR71_DLL_PATH))"
+ MSVCR71_DLL_PATH :=$(call FullPath,$(xALT_MSVCR71_DLL_PATH))
+ else
+ ifeq ($(_REDIST71_SDK_EXISTS), true)
+ xREDIST71_DIR :=$(_redist_sdk)
+ else
+ xREDIST71_DIR :=$(_system_root)/system32
+ endif
+ MSVCR71_DLL_PATH :=$(call FullPath,$(xREDIST71_DIR))
+ endif
+ MSVCR71_DLL_PATH :=$(call AltCheckSpaces,MSVCR71_DLL_PATH)
+ MSVCR71_DLL_PATH:=$(call AltCheckValue,MSVCR71_DLL_PATH)
+
+else
+
+ # MSVCRT_DLL_PATH: location of msvcrt.dll that will be re-distributed
+ ifdef ALT_MSVCRT_DLL_PATH
+ xALT_MSVCRT_DLL_PATH :="$(subst \,/,$(ALT_MSVCRT_DLL_PATH))"
+ MSVCRT_DLL_PATH :=$(call FullPath,$(xALT_MSVCRT_DLL_PATH))
+ else
+ ifeq ($(_REDIST_SDK_EXISTS), true)
+ xREDIST_DIR :=$(_redist_sdk)
+ else
+ xREDIST_DIR :=$(_system_root)/SysWOW64
+ endif
+ MSVCRT_DLL_PATH :=$(call FullPath,$(xREDIST_DIR))
+ endif
+ MSVCRT_DLL_PATH:=$(call AltCheckSpaces,MSVCRT_DLL_PATH)
+ MSVCRT_DLL_PATH:=$(call AltCheckValue,MSVCRT_DLL_PATH)
+
+endif
+
+# DXSDK_PATH: path to Microsoft DirectX SDK Include and Lib
+ifdef ALT_DXSDK_PATH
+ xALT_DXSDK_PATH :="$(subst \,/,$(ALT_DXSDK_PATH))"
+ DXSDK_PATH :=$(call FullPath,$(xALT_DXSDK_PATH))
+else
+ _DXSDK_PATH1 :=$(_dx_sdk_dir)
+ _DXSDK_PATH2 :=$(JDK_DEVTOOLS_DIR)/windows/dxsdk
+ DXSDK_PATH :=$(call DirExists,$(_DXSDK_PATH1),$(_DXSDK_PATH2),$(_dx_sdk_dir))
+endif
+DXSDK_PATH :=$(call AltCheckSpaces,DXSDK_PATH)
+DXSDK_PATH:=$(call AltCheckValue,DXSDK_PATH)
+
+# DXSDK_INCLUDE_PATH: path to Microsoft DirectX SDK Include
+ifdef ALT_DXSDK_INCLUDE_PATH
+ xALT_DXSDK_INCLUDE_PATH :="$(subst \,/,$(ALT_DXSDK_INCLUDE_PATH))"
+ DXSDK_INCLUDE_PATH :=$(call FullPath,$(xALT_DXSDK_INCLUDE_PATH))
+else
+ DXSDK_INCLUDE_PATH =$(subst //,/,$(DXSDK_PATH)/Include)
+endif
+
+# DXSDK_LIB_PATH: path to Microsoft DirectX SDK Lib
+ifdef ALT_DXSDK_LIB_PATH
+ xALT_DXSDK_LIB_PATH :="$(subst \,/,$(ALT_DXSDK_LIB_PATH))"
+ DXSDK_LIB_PATH :=$(call FullPath,$(xALT_DXSDK_LIB_PATH))
+else
+ ifeq ($(ARCH_DATA_MODEL), 64)
+ # 64bit libs are located in "Lib/x64" subdir
+ DXSDK_LIB_PATH =$(subst //,/,$(DXSDK_PATH)/Lib/x64)
+ else
+ DXSDK_LIB_PATH =$(subst //,/,$(DXSDK_PATH)/Lib)
+ endif
+endif
+
+# DEPLOY_MSSDK: Microsoft SDK for this platform (for deploy)
+ifdef ALT_DEPLOY_MSSDK
+ xALT_DEPLOY_MSSDK :="$(subst \,/,$(ALT_DEPLOY_MSSDK))"
+ DEPLOY_MSSDK :=$(call FullPath,$(xALT_DEPLOY_MSSDK))
+else
+ DEPLOY_MSSDK :=$(_ms_sdk)
+endif
+DEPLOY_MSSDK:=$(call AltCheckSpaces,DEPLOY_MSSDK)
+
+# INSTALL_MSSDK: Microsoft Installer SDK for this platform (for install)
+ifdef ALT_INSTALL_MSSDK
+ xALT_INSTALL_MSSDK :="$(subst \,/,$(ALT_INSTALL_MSSDK))"
+ INSTALL_MSSDK :=$(call FullPath,$(xALT_INSTALL_MSSDK))
+else
+ INSTALL_MSSDK :=$(_psdk)
+endif
+INSTALL_MSSDK:=$(call AltCheckSpaces,INSTALL_MSSDK)
+
+# INSTALL_MSIVAL2: Installation of MsiVal2 for this platform (for install)
+ifdef ALT_INSTALL_MSIVAL2
+ xALT_INSTALL_MSIVAL2 :="$(subst \,/,$(ALT_INSTALL_MSIVAL2))"
+ INSTALL_MSIVAL2 :=$(call FullPath,$(xALT_INSTALL_MSIVAL2))
+else
+ INSTALL_MSIVAL2 :=$(_program_files)/MsiVal2
+endif
+INSTALL_MSIVAL2:=$(call AltCheckSpaces,INSTALL_MSIVAL2)
+
+# WSCRIPT: path to wscript.exe (used in creating install bundles)
+ifdef ALT_WSCRIPT
+ xALT_WSCRIPT :="$(subst \,/,$(ALT_WSCRIPT))"
+ WSCRIPT =$(xALT_WSCRIPT)
+else
+ _WSCRIPT1 :=$(_system_root)/system32/wscript.exe
+ _WSCRIPT2 :=$(DEVTOOLS_PATH)wscript.exe
+ WSCRIPT :=$(call FileExists,$(_WSCRIPT1),$(_WSCRIPT2))
+endif
+WSCRIPT:=$(call AltCheckSpaces,WSCRIPT)
+
+# CSCRIPT: path to cscript.exe (used in creating install bundles)
+ifdef ALT_CSCRIPT
+ xALT_CSCRIPT :="$(subst \,/,$(ALT_CSCRIPT))"
+ CSCRIPT =$(xALT_CSCRIPT)
+else
+ _CSCRIPT1 :=$(_system_root)/system32/cscript.exe
+ _CSCRIPT2 :=$(DEVTOOLS_PATH)cscript.exe
+ CSCRIPT :=$(call FileExists,$(_CSCRIPT1),$(_CSCRIPT2))
+endif
+CSCRIPT:=$(call AltCheckSpaces,CSCRIPT)
+
+# MSIVAL2: path to msival2.exe (used in validating install msi files)
+ifdef ALT_MSIVAL2
+ xALT_MSIVAL2 :="$(subst \,/,$(ALT_MSIVAL2))"
+ MSIVAL2 =$(xALT_MSIVAL2)
+else
+ _MSIVAL2_1 :=$(INSTALL_MSIVAL2)/msival2.exe
+ _MSIVAL2_2 :=$(DEVTOOLS_PATH)msival2.exe
+ MSIVAL2 :=$(call FileExists,$(_MSIVAL2_1),$(_MSIVAL2_2))
+endif
+MSIVAL2:=$(call AltCheckSpaces,MSIVAL2)
+
+# LOGOCUB: path to cub file for (used in validating install msi files)
+ifdef ALT_LOGOCUB
+ xALT_LOGOCUB :="$(subst \,/,$(ALT_LOGOCUB))"
+ LOGOCUB =$(xALT_LOGOCUB)
+else
+ _LOGOCUB1 :=$(INSTALL_MSIVAL2)/logo.cub
+ _LOGOCUB2 :=$(DEVTOOLS_PATH)logo.cub
+ LOGOCUB :=$(call FileExists,$(_LOGOCUB1),$(_LOGOCUB2))
+endif
+LOGOCUB:=$(call AltCheckSpaces,LOGOCUB)
+
+# MSITRAN: path to msitran.exe (used in creating install bundles and sponsors)
+ifdef ALT_MSITRAN
+ xALT_MSITRAN :="$(subst \,/,$(ALT_MSITRAN))"
+ MSITRAN =$(xALT_MSITRAN)
+else
+ _MSITRAN1 :=$(INSTALL_MSSDK)/Bin/msitran.exe
+ _MSITRAN2 :=$(DEVTOOLS_PATH)msitran.exe
+ MSITRAN :=$(call FileExists,$(_MSITRAN1),$(_MSITRAN2))
+endif
+MSITRAN:=$(call AltCheckSpaces,MSITRAN)
+
+# MSICERT: path to msicert.exe (used in creating install bundles)
+ifdef ALT_MSICERT
+ xALT_MSICERT :="$(subst \,/,$(ALT_MSICERT))"
+ MSICERT =$(xALT_MSICERT)
+else
+ _MSICERT1 :=$(INSTALL_MSSDK)/Bin/msicert.exe
+ _MSICERT2 :=$(DEVTOOLS_PATH)msicert.exe
+ MSICERT :=$(call FileExists,$(_MSICERT1),$(_MSICERT2))
+endif
+MSICERT:=$(call AltCheckSpaces,MSICERT)
+
+# Import JDK images allow for partial builds, components not built are
+# imported (or copied from) these import areas when needed.
+
+# BUILD_JDK_IMPORT_PATH: location of JDK install trees to import for
+# multiple platforms, e.g. windows-i586, solaris-sparc, linux-586, etc.
+ifdef ALT_BUILD_JDK_IMPORT_PATH
+ BUILD_JDK_IMPORT_PATH :=$(call FullPath,$(ALT_BUILD_JDK_IMPORT_PATH))
+else
+ BUILD_JDK_IMPORT_PATH = $(PROMOTED_BUILD_BINARIES)
+endif
+BUILD_JDK_IMPORT_PATH:=$(call AltCheckSpaces,BUILD_JDK_IMPORT_PATH)
+BUILD_JDK_IMPORT_PATH:=$(call AltCheckValue,BUILD_JDK_IMPORT_PATH)
+
+# JDK_IMPORT_PATH: location of previously built JDK (this version) to import
+ifdef ALT_JDK_IMPORT_PATH
+ JDK_IMPORT_PATH :=$(call FullPath,$(ALT_JDK_IMPORT_PATH))
+else
+ JDK_IMPORT_PATH = $(BUILD_JDK_IMPORT_PATH)/$(PLATFORM)-$(ARCH)$(_JDK_IMPORT_VARIANT)
+endif
+JDK_IMPORT_PATH:=$(call AltCheckSpaces,JDK_IMPORT_PATH)
+JDK_IMPORT_PATH:=$(call AltCheckValue,JDK_IMPORT_PATH)
+
+# HOTSPOT_IMPORT_PATH: location of hotspot pre-built files
+ifdef ALT_HOTSPOT_IMPORT_PATH
+ HOTSPOT_IMPORT_PATH :=$(call FullPath,$(ALT_HOTSPOT_IMPORT_PATH))
+else
+ HOTSPOT_IMPORT_PATH =$(JDK_IMPORT_PATH)
+endif
+HOTSPOT_IMPORT_PATH:=$(call AltCheckSpaces,HOTSPOT_IMPORT_PATH)
+HOTSPOT_IMPORT_PATH:=$(call AltCheckValue,HOTSPOT_IMPORT_PATH)
+
+# HOTSPOT_CLIENT_PATH: location of client jvm library file.
+ifeq ($(ARCH_DATA_MODEL), 32)
+ ifdef ALT_HOTSPOT_CLIENT_PATH
+ HOTSPOT_CLIENT_PATH :=$(call FullPath,$(ALT_HOTSPOT_CLIENT_PATH))
+ else
+ HOTSPOT_CLIENT_PATH =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/client
+ endif
+ HOTSPOT_CLIENT_PATH:=$(call AltCheckSpaces,HOTSPOT_CLIENT_PATH)
+ HOTSPOT_CLIENT_PATH:=$(call AltCheckValue,HOTSPOT_CLIENT_PATH)
+endif
+
+# HOTSPOT_SERVER_PATH: location of server jvm library file.
+ifdef ALT_HOTSPOT_SERVER_PATH
+ HOTSPOT_SERVER_PATH :=$(call FullPath,$(ALT_HOTSPOT_SERVER_PATH))
+else
+ HOTSPOT_SERVER_PATH =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/server
+endif
+HOTSPOT_SERVER_PATH:=$(call AltCheckSpaces,HOTSPOT_SERVER_PATH)
+HOTSPOT_SERVER_PATH:=$(call AltCheckValue,HOTSPOT_SERVER_PATH)
+
+# HOTSPOT_LIB_PATH: location of jvm.lib file.
+ifdef ALT_HOTSPOT_LIB_PATH
+ xALT_HOTSPOT_LIB_PATH :="$(subst \,/,$(ALT_HOTSPOT_LIB_PATH))"
+ HOTSPOT_LIB_PATH :=$(call FullPath,$(xALT_HOTSPOT_LIB_PATH))
+else
+ HOTSPOT_LIB_PATH =$(HOTSPOT_IMPORT_PATH)/lib
+endif
+HOTSPOT_LIB_PATH:=$(call AltCheckSpaces,HOTSPOT_LIB_PATH)
+HOTSPOT_LIB_PATH:=$(call AltCheckValue,HOTSPOT_LIB_PATH)
+