提交 35875594 编写于 作者: J jqzuo

Merge

......@@ -26,6 +26,6 @@ Simple Build Instructions:
gnumake all
The resulting JDK image should be found in build/*/j2sdk-image
where gnumake is GNU make 3.78.1 or newer, /usr/bin/make on Linux and
where gnumake is GNU make 3.81 or newer, /usr/bin/make on Linux and
/usr/sfw/bin/gmake or /opt/sfw/bin/gmake on Solaris.
......@@ -524,7 +524,7 @@
A few notes about using GNU make:
<ul>
<li>
In general, you need GNU make version 3.78.1 or newer.
In general, you need GNU make version 3.81 or newer.
</li>
<li>
Place the location of the GNU make binary in the <tt>PATH</tt>.
......
#!/bin/sh
#
# Copyright (c) 2009, 2010, 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.
#
# 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 file should be used to set the Visual Studio environment
# variables normally set by the vcvars32.bat or vcvars64.bat file or
# SetEnv.cmd for older SDKs.
# Use cygpath?
isCygwin="`uname -s | grep CYGWIN`"
if [ "${isCygwin}" != "" ] ; then
cygpath="/usr/bin/cygpath"
cygpath_short="${cygpath} -m -s"
cygpath_windows="${cygpath} -w -s"
cygpath_path="${cygpath} -p"
pathsep=':'
else
cygpath="dosname"
cygpath_short="${cygpath} -s"
cygpath_windows="${cygpath} -s"
cygpath_path="echo"
pathsep=';'
fi
########################################################################
# Error functions
msg() # message
{
echo "$1" 1>&2
}
error() # message
{
msg "ERROR: $1"
exit 1
}
warning() # message
{
msg "WARNING: $1"
}
envpath() # path
{
if [ "${cygpath_short}" != "" -a -d "$1" ] ; then
${cygpath_short} "$1"
else
echo "$1"
fi
}
########################################################################
# Defaults settings
debug="false"
verbose="false"
shellStyle="sh"
parentCsh="` ps -p ${PPID} 2> /dev/null | grep csh `"
if [ "${parentCsh}" != "" ] ; then
shellStyle="csh"
fi
set -e
# Check environment first
if [ "${PROGRAMFILES}" != "" ] ; then
progfiles=`envpath "${PROGRAMFILES}"`
elif [ "${ProgramFiles}" != "" ] ; then
progfiles=`envpath "${ProgramFiles}"`
elif [ "${SYSTEMDRIVE}" != "" ] ; then
progfiles=`envpath "${SYSTEMDRIVE}/Program Files"`
elif [ "${SystemDrive}" != "" ] ; then
progfiles=`envpath "${SystemDrive}/Program Files"`
else
error "No PROGRAMFILES or SYSTEMDRIVE defined in environment"
fi
# Arch data model
if [ "${PROCESSOR_IDENTIFIER}" != "" ] ; then
arch=`echo "${PROCESSOR_IDENTIFIER}" | cut -d' ' -f1`
elif [ "${MACHTYPE}" != "" ] ; then
if [ "`echo ${MACHTYPE} | grep 64`" != "" ] ; then
# Assume this is X64, not IA64
arch="x64"
else
arch="x86"
fi
else
arch="`uname -m`"
fi
if [ "${arch}" = "X86" -o \
"${arch}" = "386" -o "${arch}" = "i386" -o \
"${arch}" = "486" -o "${arch}" = "i486" -o \
"${arch}" = "586" -o "${arch}" = "i586" -o \
"${arch}" = "686" -o "${arch}" = "i686" -o \
"${arch}" = "86" ] ; then
arch="x86"
fi
if [ "${arch}" = "X64" -o \
"${arch}" = "8664" -o "${arch}" = "i8664" -o \
"${arch}" = "amd64" -o "${arch}" = "AMD64" -o \
"${arch}" = "EM64T" -o "${arch}" = "emt64t" -o \
"${arch}" = "intel64" -o "${arch}" = "Intel64" -o \
"${arch}" = "64" ] ; then
arch="x64"
binarch64="/amd64"
fi
if [ "${arch}" = "IA64" ] ; then
arch="ia64"
binarch64="/ia64"
fi
if [ "${arch}" != "x86" -a "${arch}" != "x64" -a "${arch}" != "ia64" ] ; then
error "No PROCESSOR_IDENTIFIER or MACHTYPE environment variables and uname -m is not helping"
fi
if [ "${arch}" = "x86" ] ; then
arch_data_model=32
progfiles32="${progfiles}"
progfiles64="${progfiles}"
else
arch_data_model=64
progfiles32="${progfiles}"
if [ "${PROGRAMW6432}" != "" ] ; then
progfiles64=`envpath "${PROGRAMW6432}"`
else
progfiles64=`envpath "C:/Program Files"`
fi
fi
# VS2010 (VC10)
if [ "${VS100COMNTOOLS}" = "" ] ; then
VS100COMNTOOLS="${progfiles32}/Microsoft Visual Studio 10.0/Common7/Tools/"
export VS100COMNTOOLS
fi
vc10Bin32Dir=`envpath "${VS100COMNTOOLS}"`/../../VC/Bin
vc10Bin64Dir="${vc10Bin32Dir}${binarch64}"
vc10vars32Bat="vcvars32.bat"
vc10vars64Bat="vcvars64.bat"
# VS2008 (VC9)
if [ "${VS90COMNTOOLS}" = "" ] ; then
VS90COMNTOOLS="${progfiles32}/Microsoft Visual Studio 9.0/Common7/Tools/"
export VS90COMNTOOLS
fi
vc9Bin32Dir=`envpath "${VS90COMNTOOLS}"`/../../VC/Bin
vc9Bin64Dir="${vc9Bin32Dir}"
vc9vars32Bat="vcvars32.bat"
vc9vars64Bat="vcvars64.bat"
# VS2005 (VC8)
if [ "${VS80COMNTOOLS}" = "" ] ; then
VS80COMNTOOLS="${progfiles32}/Microsoft Visual Studio 8.0/Common7/Tools/"
export VS80COMNTOOLS
fi
vc8Bin32Dir=`envpath "${VS80COMNTOOLS}"`/../../VC/Bin
vc8Bin64Dir="${progfiles64}/Microsoft Platform SDK"
vc8vars32Bat="vcvars32.bat"
vc8vars64Bat="SetEnv.cmd /X64"
# VS2003 (VC7)
if [ "${VS71COMNTOOLS}" = "" ] ; then
VS71COMNTOOLS="${progfiles32}/Microsoft Visual Studio .NET 2003/Common7/Tools/"
export VS71COMNTOOLS
fi
vc7Bin32Dir=`envpath "${VS71COMNTOOLS}"`/../../VC7/Bin
vc7Bin64Dir="${progfiles64}/Microsoft Platform SDK"
vc7vars32Bat="vcvars32.bat"
vc7vars64Bat="SetEnv.cmd /X64"
# Force user to select
vcSelection=""
# Parse options
usage="Usage: $0 [-help] [-debug] [-v] [-c] [-s] [-p] [-v10] [-v9] [-v8] [-v7] [-32] [-64]"
while [ $# -gt 0 ] ; do
if [ "$1" = "-help" ] ; then
msg "${usage}"
msg " -help Print out this help message"
msg " -debug Print out extra env variables to help debug this script"
msg " -v Verbose output warns about missing directories"
msg " -c Print out csh style output"
msg " -s Print out sh style output"
msg " -p Print out properties style output"
msg " -v10 Use Visual Studio 10 VS2010"
msg " -v9 Use Visual Studio 9 VS2008"
msg " -v8 Use Visual Studio 8 VS2005"
msg " -v7 Use Visual Studio 7 VS2003"
msg " -32 Force 32bit"
msg " -64 Force 64bit"
exit 0
elif [ "$1" = "-debug" ] ; then
debug="true"
shift
elif [ "$1" = "-v" ] ; then
verbose="true"
shift
elif [ "$1" = "-c" ] ; then
shellStyle="csh"
shift
elif [ "$1" = "-s" ] ; then
shellStyle="sh"
shift
elif [ "$1" = "-p" ] ; then
shellStyle="props"
shift
elif [ "$1" = "-v10" ] ; then
vcBin32Dir="${vc10Bin32Dir}"
vcBin64Dir="${vc10Bin64Dir}"
vcvars32Bat="${vc10vars32Bat}"
vcvars64Bat="${vc10vars64Bat}"
vcSelection="10"
shift
elif [ "$1" = "-v9" ] ; then
vcBin32Dir="${vc9Bin32Dir}"
vcBin64Dir="${vc9Bin64Dir}"
vcvars32Bat="${vc9vars32Bat}"
vcvars64Bat="${vc9vars64Bat}"
vcSelection="9"
shift
elif [ "$1" = "-v8" ] ; then
vcBin32Dir="${vc8Bin32Dir}"
vcBin64Dir="${vc8Bin64Dir}"
vcvars32Bat="${vc8vars32Bat}"
vcvars64Bat="${vc8vars64Bat}"
vcSelection="8"
shift
elif [ "$1" = "-v7" ] ; then
vcBin32Dir="${vc7Bin32Dir}"
vcBin64Dir="${vc7Bin64Dir}"
vcvars32Bat="${vc7vars32Bat}"
vcvars64Bat="${vc7vars64Bat}"
vcSelection="7"
shift
elif [ "$1" = "-32" ] ; then
arch_data_model=32
shift
elif [ "$1" = "-64" ] ; then
arch_data_model=64
shift
else
msg "${usage}"
error "Unknown option: $1"
fi
done
# Need to pick
if [ "${vcSelection}" = "" ] ; then
msg "${usage}"
error "You must pick the version"
fi
# Which vcvars bat file to run
if [ "${arch_data_model}" = "32" ] ; then
vcBinDir="${vcBin32Dir}"
vcvarsBat="${vcvars32Bat}"
fi
if [ "${arch_data_model}" = "64" ] ; then
vcBinDir="${vcBin64Dir}"
vcvarsBat="${vcvars64Bat}"
fi
# Do not allow any error returns
set -e
# Different systems have different awk's
if [ -f /usr/bin/nawk ] ; then
awk="nawk"
elif [ -f /usr/bin/gawk ] ; then
awk="gawk"
else
awk="awk"
fi
if [ "${verbose}" = "true" ] ; then
echo "# Welcome to verbose mode"
set -x
fi
if [ "${debug}" = "true" ] ; then
echo "# Welcome to debug mode"
set -x
fi
# Temp file area
tmp="/tmp/vsvars.$$"
rm -f -r ${tmp}
mkdir -p ${tmp}
# Check paths
checkPaths() # var path sep
{
set -e
sep="$3"
checklist="${tmp}/checklist"
printf "%s\n" "$2" | \
sed -e 's@\\@/@g' | \
sed -e 's@//@/@g' | \
${awk} -F"${sep}" '{for(i=1;i<=NF;i++){printf "%s\n",$i;}}' \
> ${checklist}
cat ${checklist} | while read orig; do
if [ "${orig}" != "" ] ; then
if [ ! -d "${orig}" ] ; then
warning "Directory in $1 does not exist: ${orig}"
fi
fi
done
}
# Remove all duplicate entries
removeDeadDups() # string sep
{
set -e
sep="$2"
pathlist="${tmp}/pathlist"
printf "%s\n" "$1" | \
sed -e 's@\\@/@g' | \
sed -e 's@//@/@g' | \
${awk} -F"${sep}" '{for(i=1;i<=NF;i++){printf "%s\n",$i;}}' \
> ${pathlist}
upaths="${tmp}/upaths"
cat ${pathlist} | while read orig; do
p="${orig}"
if [ "${cygpath_short}" != "" ] ; then
if [ "${p}" != "" ] ; then
if [ -d "${p}" ] ; then
short=`${cygpath_short} "${p}"`
if [ "${short}" != "" -a -d "${short}" ] ; then
p=`${cygpath} "${short}"`
fi
echo "${p}" >> ${upaths}
fi
fi
fi
done
newpaths=""
for i in `cat ${upaths}` ; do
# For some reason, \r characters can get into this
i=`echo "${i}" | tr -d '\r' | sed -e 's@/$@@'`
if [ "${newpaths}" = "" ] ; then
newpaths="${i}"
else
newpaths="${newpaths}${sep}${i}"
fi
done
printf "%s\n" "${newpaths}" | \
${awk} -F"${sep}" \
'{a[$1];printf "%s",$1;for(i=2;i<=NF;i++){if(!($i in a)){a[$i];printf "%s%s",FS,$i;}};printf "\n";}'
}
# Create bat file to process Visual Studio vcvars*.bat files
createBat() # batfile bindir command
{
bat="$1"
bindir="$2"
command="$3"
stdout="${bat}.stdout"
rm -f ${bat} ${stdout}
echo "Output from: ${command}" > ${stdout}
bdir=`envpath "${bindir}"`
cat > ${bat} << EOF
REM Pick the right vcvars bat file
REM Empty these out so we only get the additions we want
set INCLUDE=
set LIB=
set LIBPATH=
set MSVCDIR=
set MSSdk=
set Mstools=
set DevEnvDir=
set VCINSTALLDIR=
set VSINSTALLDIR=
set WindowsSdkDir=
REM Run the vcvars bat file, send all output to stderr
call `${cygpath_windows} ${bdir}`\\${command} > `${cygpath_windows} "${stdout}"`
REM Echo out env var settings
echo VS_VS71COMNTOOLS="%VS71COMNTOOLS%"
echo export VS_VS71COMNTOOLS
echo VS_VS80COMNTOOLS="%VS80COMNTOOLS%"
echo export VS_VS80COMNTOOLS
echo VS_VS90COMNTOOLS="%VS90COMNTOOLS%"
echo export VS_VS90COMNTOOLS
echo VS_VS100COMNTOOLS="%VS100COMNTOOLS%"
echo export VS_VS100COMNTOOLS
echo VS_VCINSTALLDIR="%VCINSTALLDIR%"
echo export VS_VCINSTALLDIR
echo VS_VSINSTALLDIR="%VSINSTALLDIR%"
echo export VS_VSINSTALLDIR
echo VS_DEVENVDIR="%DevEnvDir%"
echo export VS_DEVENVDIR
echo VS_MSVCDIR="%MSVCDIR%"
echo export VS_MSVCDIR
echo VS_MSSDK="%MSSdk%"
echo export VS_MSSDK
echo VS_MSTOOLS="%Mstools%"
echo export VS_MSTOOLS
echo VS_WINDOWSSDKDIR="%WindowsSdkDir%"
echo export VS_WINDOWSSDKDIR
echo VS_INCLUDE="%INCLUDE%"
echo export VS_INCLUDE
echo VS_LIB="%LIB%"
echo export VS_LIB
echo VS_LIBPATH="%LIBPATH%"
echo export VS_LIBPATH
echo VS_WPATH="%PATH%"
echo export VS_WPATH
EOF
chmod a+x ${bat}
}
# Create env file
createEnv() # batfile envfile
{
rm -f ${1}.stdout
cmd.exe /Q /C `${cygpath_short} $1` | \
sed -e 's@\\@/@g' | \
sed -e 's@//@/@g' > $2
if [ -f "${1}.stdout" ] ; then
cat ${1}.stdout 1>&2
fi
chmod a+x $2
}
printEnv() # name pname vsname val
{
name="$1"
pname="$2"
vsname="$3"
val="$4"
if [ "${val}" != "" ] ; then
if [ "${shellStyle}" = "csh" ] ; then
if [ "${debug}" = "true" ] ; then
echo "setenv ${vsname} \"${val}\";"
fi
echo "setenv ${name} \"${val}\";"
elif [ "${shellStyle}" = "sh" ] ; then
if [ "${debug}" = "true" ] ; then
echo "${vsname}=\"${val}\";"
echo "export ${vsname};"
fi
echo "${name}=\"${val}\";"
echo "export ${name};"
elif [ "${shellStyle}" = "props" ] ; then
echo "vs.${pname}=${val}"
fi
fi
}
#############################################################################
# Get Visual Studio settings
if [ "${cygpath}" != "" ] ; then
# Create bat file to run
batfile="${tmp}/vs-to-env.bat"
if [ ! -d "${vcBinDir}" ] ; then
error "Does not exist: ${vcBinDir}"
elif [ "${vcvarsBat}" = "" ] ; then
error "No vcvars script: ${vcvarsBat}"
else
createBat "${batfile}" "${vcBinDir}" "${vcvarsBat}"
fi
# Run bat file to create environment variable settings
envfile="${tmp}/env.sh"
createEnv "${batfile}" "${envfile}"
# Read in the VS_* settings
. ${envfile}
# Derive unix style path, save old, and define new (remove dups)
VS_UPATH=`${cygpath_path} "${VS_WPATH}"`
export VS_UPATH
VS_OPATH=`printf "%s" "${PATH}" | sed -e 's@\\\\@/@g'`
export VS_OPATH
VS_PATH=`removeDeadDups "${VS_UPATH}${pathsep}${VS_OPATH}" "${pathsep}"`
export VS_PATH
fi
# Adjustments due to differences in vcvars*bat files
if [ "${VS_MSVCDIR}" = "" ] ; then
VS_MSVCDIR="${VS_VCINSTALLDIR}"
fi
if [ "${VS_DEVENVDIR}" = "" ] ; then
VS_DEVENVDIR="${VS_VSINSTALLDIR}"
fi
# Print env settings
# env vs.prop vs env value
# ------- ------- ---------- -----
printEnv INCLUDE include VS_INCLUDE "${VS_INCLUDE}"
printEnv LIB lib VS_LIB "${VS_LIB}"
printEnv LIBPATH libpath VS_LIBPATH "${VS_LIBPATH}"
if [ "${debug}" = "true" ] ; then
printEnv UPATH upath VS_UPATH "${VS_UPATH}"
printEnv WPATH wpath VS_WPATH "${VS_WPATH}"
printEnv OPATH opath VS_OPATH "${VS_OPATH}"
fi
printEnv PATH path VS_PATH "${VS_PATH}"
printEnv VCINSTALLDIR vcinstalldir VS_VCINSTALLDIR "${VS_VCINSTALLDIR}"
printEnv VSINSTALLDIR vsinstalldir VS_VSINSTALLDIR "${VS_VSINSTALLDIR}"
printEnv MSVCDIR msvcdir VS_MSVCDIR "${VS_MSVCDIR}"
printEnv MSSDK mssdk VS_MSSDK "${VS_MSSDK}"
printEnv MSTOOLS mstools VS_MSTOOLS "${VS_MSTOOLS}"
printEnv DEVENVDIR devenvdir VS_DEVENVDIR "${VS_DEVENVDIR}"
printEnv WINDOWSSDKDIR windowssdkdir VS_WINDOWSSDKDIR "${VS_WINDOWSSDKDIR}"
if [ "${vcSelection}" = "10" ] ; then
printEnv VS100COMNTOOLS vs100comntools VS_VS100COMNTOOLS "${VS_VS100COMNTOOLS}"
elif [ "${vcSelection}" = "9" ] ; then
printEnv VS90COMNTOOLS vs90comntools VS_VS90COMNTOOLS "${VS_VS90COMNTOOLS}"
elif [ "${vcSelection}" = "7" ] ; then
printEnv VS71COMNTOOLS vs71comntools VS_VS71COMNTOOLS "${VS_VS71COMNTOOLS}"
elif [ "${vcSelection}" = "8" ] ; then
printEnv VS80COMNTOOLS vs80comntools VS_VS80COMNTOOLS "${VS_VS80COMNTOOLS}"
fi
# Check final settings
if [ "${verbose}" = "true" ] ; then
checkPaths "Windows PATH" "${VS_WPATH}" ";"
checkPaths LIB "${VS_LIB}" ";"
checkPaths INCLUDE "${VS_INCLUDE}" ";"
checkPaths PATH "${VS_PATH}" "${pathsep}"
fi
# Remove all temp files
rm -f -r ${tmp}
exit 0
Copyright %YEARS% Sun Microsystems, Inc. All Rights Reserved.
Copyright (c) %YEARS% Oracle and/or its affiliates. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
......@@ -26,3 +26,4 @@ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Copyright %YEARS% Sun Microsystems, Inc. All Rights Reserved.
Copyright (c) %YEARS% 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
......@@ -20,3 +20,4 @@ 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.
Copyright %YEARS% Sun Microsystems, Inc. All Rights Reserved.
Copyright (c) %YEARS% 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
......@@ -18,3 +18,4 @@ 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.
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册