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
--- a/hotspot/make/windows/build.bat Wed Jul 05 16:59:55 2017 +0200
+++ b/hotspot/make/windows/build.bat Tue Mar 16 17:47:03 2010 -0600
@@ -57,11 +57,12 @@
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
: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 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 "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/hotspot/make/windows/build.make Wed Jul 05 16:59:55 2017 +0200
+++ b/hotspot/make/windows/build.make Tue Mar 16 17:47:03 2010 -0600
@@ -233,6 +233,12 @@
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;
@ cd $(variantDir)
--- a/hotspot/make/windows/get_msc_ver.sh Wed Jul 05 16:59:55 2017 +0200
+++ b/hotspot/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
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`