hotspot/make/windows/get_msc_ver.sh
changeset 5087 72635506e447
parent 3261 c7d5aae8d3f7
child 5093 5fe28adc52ef
equal deleted inserted replaced
3665:c5d39b6be65c 5087:72635506e447
    20 # CA 95054 USA or visit www.sun.com if you need additional information or
    20 # CA 95054 USA or visit www.sun.com if you need additional information or
    21 # have any questions.
    21 # have any questions.
    22 #  
    22 #  
    23 #
    23 #
    24 
    24 
       
    25 set -e
       
    26 
    25 # This shell script echoes "MSC_VER=<munged version of cl>"
    27 # This shell script echoes "MSC_VER=<munged version of cl>"
    26 # It ignores the micro version component.
    28 # It ignores the micro version component.
    27 # Examples:
    29 # Examples:
    28 # cl version 12.00.8804 returns "MSC_VER=1200"
    30 # cl version 12.00.8804 returns "MSC_VER=1200"
    29 # cl version 13.10.3077 returns "MSC_VER=1310"
    31 # cl version 13.10.3077 returns "MSC_VER=1310"
    36 # reason this environment variable is necessary is that it seems that
    38 # reason this environment variable is necessary is that it seems that
    37 # Windows truncates very long PATHs when executing shells like MKS's
    39 # Windows truncates very long PATHs when executing shells like MKS's
    38 # sh, and it has been found that sometimes `which sh` fails.
    40 # sh, and it has been found that sometimes `which sh` fails.
    39 
    41 
    40 if [ "x$HotSpotMksHome" != "x" ]; then
    42 if [ "x$HotSpotMksHome" != "x" ]; then
    41  MKS_HOME="$HotSpotMksHome"
    43   TOOL_DIR="$HotSpotMksHome"
    42 else
    44 else
    43  SH=`which sh`
    45   # HotSpotMksHome is not set so use the directory that contains "sh".
    44  MKS_HOME=`dirname "$SH"`
    46   # This works with both MKS and Cygwin.
       
    47   SH=`which sh`
       
    48   TOOL_DIR=`dirname "$SH"`
    45 fi
    49 fi
    46 
    50 
    47 HEAD="$MKS_HOME/head"
    51 HEAD="$TOOL_DIR/head"
    48 ECHO="$MKS_HOME/echo"
    52 ECHO="$TOOL_DIR/echo"
    49 EXPR="$MKS_HOME/expr"
    53 EXPR="$TOOL_DIR/expr"
    50 CUT="$MKS_HOME/cut"
    54 CUT="$TOOL_DIR/cut"
    51 SED="$MKS_HOME/sed"
    55 SED="$TOOL_DIR/sed"
    52 
    56 
    53 if [ "x$FORCE_MSC_VER" != "x" ]; then
    57 if [ "x$FORCE_MSC_VER" != "x" ]; then
    54   echo "MSC_VER=$FORCE_MSC_VER"
    58   echo "MSC_VER=$FORCE_MSC_VER"
    55 else
    59 else
    56   MSC_VER_RAW=`cl 2>&1 | "$HEAD" -n 1 | "$SED" 's/.*Version[\ ]*\([0-9][0-9.]*\).*/\1/'`
    60   MSC_VER_RAW=`cl 2>&1 | "$HEAD" -n 1 | "$SED" 's/.*Version[\ ]*\([0-9][0-9.]*\).*/\1/'`
    68 fi
    72 fi
    69 
    73 
    70 if [ "x$FORCE_LINK_VER" != "x" ]; then
    74 if [ "x$FORCE_LINK_VER" != "x" ]; then
    71   echo "LINK_VER=$FORCE_LINK_VER"
    75   echo "LINK_VER=$FORCE_LINK_VER"
    72 else
    76 else
    73   LINK_VER_RAW=`link 2>&1 | "$HEAD" -n 1 | "$SED" 's/.*Version[\ ]*\([0-9][0-9.]*\).*/\1/'`
    77   # use the "link" command that is co-located with the "cl" command
       
    78   cl_cmd=`which cl`
       
    79   cl_dir=`dirname $cl_cmd`
       
    80   LINK_VER_RAW=`$cl_dir/link 2>&1 | "$HEAD" -n 1 | "$SED" 's/.*Version[\ ]*\([0-9][0-9.]*\).*/\1/'`
    74   LINK_VER_MAJOR=`"$ECHO" $LINK_VER_RAW | "$CUT" -d'.' -f1`
    81   LINK_VER_MAJOR=`"$ECHO" $LINK_VER_RAW | "$CUT" -d'.' -f1`
    75   LINK_VER_MINOR=`"$ECHO" $LINK_VER_RAW | "$CUT" -d'.' -f2`
    82   LINK_VER_MINOR=`"$ECHO" $LINK_VER_RAW | "$CUT" -d'.' -f2`
    76   LINK_VER_MICRO=`"$ECHO" $LINK_VER_RAW | "$CUT" -d'.' -f3`
    83   LINK_VER_MICRO=`"$ECHO" $LINK_VER_RAW | "$CUT" -d'.' -f3`
    77   LINK_VER=`"$EXPR" $LINK_VER_MAJOR \* 100 + $LINK_VER_MINOR`
    84   LINK_VER=`"$EXPR" $LINK_VER_MAJOR \* 100 + $LINK_VER_MINOR`
    78   echo "LINK_VER=$LINK_VER"
    85   echo "LINK_VER=$LINK_VER"