summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/ant/templates/tool-unix.tmpl
diff options
context:
space:
mode:
authorGilles Dubochet <gilles.dubochet@epfl.ch>2006-03-20 15:58:47 +0000
committerGilles Dubochet <gilles.dubochet@epfl.ch>2006-03-20 15:58:47 +0000
commit0a5eb2c599eead1eeba7559ed0dcc5706079bf4d (patch)
tree73c710573e7146cb6958e90f679ed35f51aaa740 /src/compiler/scala/tools/ant/templates/tool-unix.tmpl
parentb656cd6c838b424ed2aa0cff746e3f49b9871dd0 (diff)
downloadscala-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.tmpl74
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@ $@@