diff options
author | Gilles Dubochet <gilles.dubochet@epfl.ch> | 2006-03-20 15:58:47 +0000 |
---|---|---|
committer | Gilles Dubochet <gilles.dubochet@epfl.ch> | 2006-03-20 15:58:47 +0000 |
commit | 0a5eb2c599eead1eeba7559ed0dcc5706079bf4d (patch) | |
tree | 73c710573e7146cb6958e90f679ed35f51aaa740 /src/compiler/scala/tools/ant/templates/tool-unix.tmpl | |
parent | b656cd6c838b424ed2aa0cff746e3f49b9871dd0 (diff) | |
download | scala-0a5eb2c599eead1eeba7559ed0dcc5706079bf4d.tar.gz scala-0a5eb2c599eead1eeba7559ed0dcc5706079bf4d.tar.bz2 scala-0a5eb2c599eead1eeba7559ed0dcc5706079bf4d.zip |
1.
2. ScalaTool Ant task updated to be more flexible.
3. Build now generates a separate archive for DBC (also changed in source layout).
Diffstat (limited to 'src/compiler/scala/tools/ant/templates/tool-unix.tmpl')
-rw-r--r-- | src/compiler/scala/tools/ant/templates/tool-unix.tmpl | 74 |
1 files changed, 32 insertions, 42 deletions
diff --git a/src/compiler/scala/tools/ant/templates/tool-unix.tmpl b/src/compiler/scala/tools/ant/templates/tool-unix.tmpl index d192198bad..3777c9bf89 100644 --- a/src/compiler/scala/tools/ant/templates/tool-unix.tmpl +++ b/src/compiler/scala/tools/ant/templates/tool-unix.tmpl @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh ############################################################################## # @name@ @version@ @@ -31,51 +31,18 @@ done; SCALA_HOME=`dirname "$SOURCE"`/..; SCALA_HOME=`cd "$SCALA_HOME"; pwd`; -## buraq: previous version of this script computed the MYCLASSPATH and -## then appended it to the bootclasspath. Unfortunately, this -## won't work for library code that uses reflection to obtain -## a class living on the classpath. For this reason, we have -## to merge everything in the -cp classpath. This requires -## intercepting the user's -cp, if any, or the user's $CLASSPATH, -## if set, appending our libs to it and passing the whole thing by -cp +EXTENSION_CLASSPATH="@extclasspath@" +BOOT_CLASSPATH="@bootclasspath@" +USER_ARGS="" -MYCLASSPATH=@classpath@ -if [ "$MYCLASSPATH" == "" ] ; then +if [ "$EXTENSION_CLASSPATH" == "" ] ; then for jar in `ls $SCALA_HOME/lib/*.jar` ; do - MYCLASSPATH="$MYCLASSPATH:$jar" + EXTENSION_CLASSPATH="$EXTENSION_CLASSPATH:$jar" done - MYCLASSPATH=${MYCLASSPATH:1} + EXTENSION_CLASSPATH=${EXTENSION_CLASSPATH:1} fi -QQ_USERCLASSPATH="." -QQ_USERARGS="" -QQ_NEXT=0 -for i in $@@ ; do - if [ $QQ_NEXT -eq 1 ] ; then - QQ_USERCLASSPATH=$i - QQ_NEXT=0 - else - if [[ $i = "-cp" || $i = "-classpath" ]] ; then - QQ_NEXT=1 - else - QQ_USERARGS="$QQ_USERARGS $i" - QQ_NEXT=0 - fi - fi -done - -## Lex suggested the user classpath comes before -## the Scala libraries, since it gets preferred. - -if [ "$QQ_USERCLASSPATH" != "." ] ; then - MYCLASSPATH="$QQ_USERCLASSPATH:$MYCLASSPATH" -else - if [ "$CLASSPATH" != "" ] ; then - MYCLASSPATH="$CLASSPATH:$MYCLASSPATH" - else - MYCLASSPATH=".:$MYCLASSPATH" - fi -fi +MYCLASSPATH="$EXTENSION_CLASSPATH" if $cygwin; then if [ "$OS" = "Windows_NT" ] && cygpath -m .>/dev/null 2>/dev/null ; then @@ -94,4 +61,27 @@ for flag in "$@@" ; do fi done -${JAVACMD:=java} @javaflags@ -Dscala.home="$SCALA_HOME" -Dscala.tool.name="@name@" -Dscala.tool.version="@version@" @properties@ -cp $MYCLASSPATH @class@ @toolflags@ $QQ_USERARGS +BOOT_CLASSPATH="" +if [ -f "$SCALA_HOME/lib/scala-library.jar" ] ; then + BOOT_CLASSPATH="$SCALA_HOME/lib/scala-library.jar" +fi + +if $cygwin; then + if [ "$OS" = "Windows_NT" ] && cygpath -m .>/dev/null 2>/dev/null ; then + format=mixed + else + format=windows + fi + SCALA_HOME=`cygpath --$format "$SCALA_HOME"` + USER_CLASSPATH=`cygpath --path --$format "$USER_CLASSPATH"` + BOOT_CLASSPATH=`cygpath --path --$format "$BOOT_CLASSPATH"` + EXTENSION_CLASSPATH=`cygpath --path --$format "$EXTENSION_CLASSPATH"` + MYCLASSPATH=`cygpath --path --$format "$MYCLASSPATH"` +fi + +QQ_BOOT_ARG="" +if [ "$BOOT_CLASSPATH" != "" ] ; then + QQ_BOOT_ARG="-Xbootclasspath/a:$BOOT_CLASSPATH" +fi + +${JAVACMD:=java} $QQ_BOOT_ARG @javaflags@ -cp "$MYCLASSPATH" -Dscala.home="$SCALA_HOME" -Dscala.class.path="$USER_CLASSPATH" -Dscala.boot.class.path="$BOOT_CLASSPATH" -Dscala.ext.path="$EXTENSION_CLASSPATH" -Dscala.tool.name="@name@" -Dscala.tool.version="@version@" @properties@ @class@ @toolflags@ $@@ |