6923488: 4/4 need minor tweaks to HotSpot build for Cygwin
authordcubed
Tue Mar 16 17:47:03 2010 -0600 (3 years ago)
changeset 162321141e23627a
parent 104150a95aa4a247
child 1624cd20a6f46fec
child 162839e409a664b3
6923488: 4/4 need minor tweaks to HotSpot build for Cygwin
Summary: Clean up get_msc_ver, build.bat and build.make in general and for Cygwin.
Reviewed-by: ohair
make/windows/build.bat
make/windows/build.make
make/windows/get_msc_ver.sh
--- a/make/windows/build.bat Fri Aug 21 20:16:58 2009 -0700
+++ b/make/windows/build.bat Tue Mar 16 17:47:03 2010 -0600
@@ -57,11 +57,12 @@ if "%1" == "product" goto test1
if "%1" == "product" goto test1
if "%1" == "debug" goto test1
if "%1" == "fastdebug" goto test1
+if "%1" == "tree" goto test1
goto usage
:test1
if "%2" == "core" goto test2
-if "%2" == "kernel" goto test2
+if "%2" == "kernel" goto test2
if "%2" == "compiler1" goto test2
if "%2" == "compiler2" goto test2
if "%2" == "tiered" goto test2
@@ -70,6 +71,7 @@ goto usage
goto usage
:test2
+if "%1" == "tree" goto build_tree
REM check_j2se_version
REM jvmti.make requires J2SE 1.4.x or newer.
REM If not found then fail fast.
@@ -93,6 +95,10 @@ nmake -f %3/make/windows/build.make Vari
nmake -f %3/make/windows/build.make Variant=compiler2 WorkSpace=%3 BootStrapDir=%4 BuildUser="%USERNAME%" HOTSPOT_BUILD_VERSION=%5 ADLC_ONLY=1 %1
goto end
+:build_tree
+nmake -f %3/make/windows/build.make Variant=%2 WorkSpace=%3 BootStrapDir=%4 BuildUser="%USERNAME%" HOTSPOT_BUILD_VERSION="%5" %1
+goto end
+
:usage
echo Usage: build flavor version workspace bootstrap_dir [build_id] [windbg_home]
echo.
@@ -100,8 +106,10 @@ echo flavor is "product", "debug" or "fa
echo flavor is "product", "debug" or "fastdebug",
echo version is "core", "kernel", "compiler1", "compiler2", or "tiered",
echo workspace is source directory without trailing slash,
-echo bootstrap_dir is a full path to echo a JDK in which bin/java
-echo and bin/javac are present and working, and echo build_id is an
+echo bootstrap_dir is a full path to a JDK in which bin/java
+echo and bin/javac are present and working, and build_id is an
echo optional build identifier displayed by java -version
+exit 1
:end
+exit %errorlevel%
--- a/make/windows/build.make Fri Aug 21 20:16:58 2009 -0700
+++ b/make/windows/build.make Tue Mar 16 17:47:03 2010 -0600
@@ -232,6 +232,12 @@ develop: checks $(variantDir) $(variantD
develop: checks $(variantDir) $(variantDir)\local.make sanity
cd $(variantDir)
nmake -nologo -f $(WorkSpace)\make\windows\makefiles\top.make BUILD_FLAVOR=product DEVELOP=1 ARCH=$(ARCH)
+
+# target to create just the directory structure
+tree: checks $(variantDir) $(variantDir)\local.make sanity
+ mkdir $(variantDir)\product
+ mkdir $(variantDir)\debug
+ mkdir $(variantDir)\fastdebug
sanity:
@ echo;
--- a/make/windows/get_msc_ver.sh Fri Aug 21 20:16:58 2009 -0700
+++ b/make/windows/get_msc_ver.sh Tue Mar 16 17:47:03 2010 -0600
@@ -22,6 +22,8 @@
#
#
+set -e
+
# This shell script echoes "MSC_VER=<munged version of cl>"
# It ignores the micro version component.
# Examples:
@@ -38,17 +40,19 @@
# sh, and it has been found that sometimes `which sh` fails.
if [ "x$HotSpotMksHome" != "x" ]; then
- MKS_HOME="$HotSpotMksHome"
+ TOOL_DIR="$HotSpotMksHome"
else
- SH=`which sh`
- MKS_HOME=`dirname "$SH"`
+ # HotSpotMksHome is not set so use the directory that contains "sh".
+ # This works with both MKS and Cygwin.
+ SH=`which sh`
+ TOOL_DIR=`dirname "$SH"`
fi
-HEAD="$MKS_HOME/head"
-ECHO="$MKS_HOME/echo"
-EXPR="$MKS_HOME/expr"
-CUT="$MKS_HOME/cut"
-SED="$MKS_HOME/sed"
+HEAD="$TOOL_DIR/head"
+ECHO="$TOOL_DIR/echo"
+EXPR="$TOOL_DIR/expr"
+CUT="$TOOL_DIR/cut"
+SED="$TOOL_DIR/sed"
if [ "x$FORCE_MSC_VER" != "x" ]; then
echo "MSC_VER=$FORCE_MSC_VER"
@@ -70,7 +74,10 @@ if [ "x$FORCE_LINK_VER" != "x" ]; then
if [ "x$FORCE_LINK_VER" != "x" ]; then
echo "LINK_VER=$FORCE_LINK_VER"
else
- LINK_VER_RAW=`link 2>&1 | "$HEAD" -n 1 | "$SED" 's/.*Version[\ ]*\([0-9][0-9.]*\).*/\1/'`
+ # use the "link" command that is co-located with the "cl" command
+ cl_cmd=`which cl`
+ cl_dir=`dirname $cl_cmd`
+ LINK_VER_RAW=`$cl_dir/link 2>&1 | "$HEAD" -n 1 | "$SED" 's/.*Version[\ ]*\([0-9][0-9.]*\).*/\1/'`
LINK_VER_MAJOR=`"$ECHO" $LINK_VER_RAW | "$CUT" -d'.' -f1`
LINK_VER_MINOR=`"$ECHO" $LINK_VER_RAW | "$CUT" -d'.' -f2`
LINK_VER_MICRO=`"$ECHO" $LINK_VER_RAW | "$CUT" -d'.' -f3`