jdk/make/common/shared/Defs-windows.gmk
changeset 2 90ce3da70b43
child 2602 5b394a4b6ce1
child 1025 a9ba5ea0f1f7
--- /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)
+