summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGilles Dubochet <gilles.dubochet@epfl.ch>2005-11-01 10:38:08 +0000
committerGilles Dubochet <gilles.dubochet@epfl.ch>2005-11-01 10:38:08 +0000
commitb5bb25e41823189701e45e4ca527a0dba952fe88 (patch)
treed00920f2ee11b022eaccfbdc4d4b63bf2544fca5
parent25152f0884db1a9854f3c6237a8805b9c2bb3099 (diff)
downloadscala-b5bb25e41823189701e45e4ca527a0dba952fe88.tar.gz
scala-b5bb25e41823189701e45e4ca527a0dba952fe88.tar.bz2
scala-b5bb25e41823189701e45e4ca527a0dba952fe88.zip
Updated SABBUS to generate functioning scalac a...
Updated SABBUS to generate functioning scalac and scala script (bug #469).
-rw-r--r--build.xml42
-rw-r--r--sources/bin/nscala-tool.win.tmpl45
-rw-r--r--sources/bin/nscala.unix.tmpl79
-rw-r--r--sources/bin/nscala.win.tmpl48
4 files changed, 196 insertions, 18 deletions
diff --git a/build.xml b/build.xml
index 8015209172..eef3670885 100644
--- a/build.xml
+++ b/build.xml
@@ -311,23 +311,29 @@
value="${distrib.unix.current.dir}/share/scala"/>
<!-- Set up 'bin' directory (unix) -->
<mkdir dir="${distrib.unix.scala.dir}/bin"/>
- <copy file="${bin.dir}/.nsc_wrapper.tmpl"
- tofile="${distrib.unix.scala.dir}/bin/.nsc_wrapper">
+ <copy file="${support.dir}/bin/nscala.unix.tmpl"
+ tofile="${distrib.unix.scala.dir}/bin/.scala_wrapper">
<filterset>
<filter token="VERSION" value="${scala.version}"/>
<filter token="COPYRIGHT" value="${copyright.notice}"/>
- <filter token="CPATH" value="$PREFIX/lib/fjbg.jar:$PREFIX/lib/msil.jar:$PREFIX/lib/scala.jar:$PREFIX/lib/tools.jar:$PREFIX/lib/${osc-nstools.jar.name}"/>
+ <filter token="TOOLS_CPATH" value="$PREFIX/lib/fjbg.jar:$PREFIX/lib/msil.jar:$PREFIX/lib/scala.jar:$PREFIX/lib/tools.jar:$PREFIX/lib/${osc-nstools.jar.name}:$PREFIX/lib/${nslib.jar.name}"/>
+ <filter token="LIB_CPATH" value="$PREFIX/lib/${nslib.jar.name}"/>
</filterset>
</copy>
- <chmod file="${distrib.unix.scala.dir}/bin/.nsc_wrapper" perm="ugo+rx"/>
- <symlink resource="${distrib.unix.scala.dir}/bin/.nsc_wrapper"
+ <chmod file="${distrib.unix.scala.dir}/bin/.scala_wrapper" perm="ugo+rx"/>
+ <symlink resource=".scala_wrapper"
link="${distrib.unix.scala.dir}/bin/scala"/>
- <symlink resource="${distrib.unix.scala.dir}/bin/.nsc_wrapper"
+ <symlink resource=".scala_wrapper"
link="${distrib.unix.scala.dir}/bin/scalac"/>
- <symlink resource="${distrib.unix.scala.dir}/bin/.nsc_wrapper"
+ <symlink resource=".scala_wrapper"
link="${distrib.unix.scala.dir}/bin/scalap"/>
- <symlink resource="${distrib.unix.scala.dir}/bin"
- link="${distrib.unix.current.dir}/bin"/>
+ <mkdir dir="${distrib.unix.current.dir}/bin"/>
+ <symlink resource="${distrib.unix.scala.dir}/bin/scala"
+ link="${distrib.unix.current.dir}/bin/scala"/>
+ <symlink resource="${distrib.unix.scala.dir}/bin/scalac"
+ link="${distrib.unix.current.dir}/bin/scalac"/>
+ <symlink resource="${distrib.unix.scala.dir}/bin/scalap"
+ link="${distrib.unix.current.dir}/bin/scalap"/>
<!-- Set up 'lib' directory -->
<mkdir dir="${distrib.unix.scala.dir}/lib"/>
<copy todir="${distrib.unix.scala.dir}/lib">
@@ -355,33 +361,33 @@
value="&quot;%SCALA_HOME%&quot;\lib"/>
<!-- Set up 'bin' directory -->
<mkdir dir="${distrib.win.current.dir}/bin"/>
- <copy file="${bin.dir}/.scala_bat.tmpl"
- tofile="${distrib.win.current.dir}/bin/scala.bat">
+ <copy file="${support.dir}/bin/nscala.win.tmpl"
+ tofile="${distrib.win.current.dir}/bin/nscala.bat">
<filterset>
<filter token="PRODUCT" value="scala"/>
<filter token="VERSION" value="${scala.version}"/>
<filter token="COPYRIGHT" value="${copyright.notice}"/>
- <filter token="BOOTCPATH" value="${quotted.lib.dir}\scala.jar;${quotted.lib.dir}\tools.jar"/>
+ <filter token="BOOTCPATH" value="${quotted.lib.dir}\${nslib.jar.name}"/>
</filterset>
</copy>
- <copy file="${bin.dir}/.nsc_bat.tmpl"
- tofile="${distrib.win.current.dir}/bin/scalac.bat">
+ <copy file="${support.dir}/bin/nscala-tool.win.tmpl"
+ tofile="${distrib.win.current.dir}/bin/nscalac.bat">
<filterset>
<filter token="PRODUCT" value="scalac"/>
<filter token="VERSION" value="${scala.version}"/>
<filter token="COPYRIGHT" value="${copyright.notice}"/>
<filter token="MAIN" value="scala.tools.nsc.Main"/>
- <filter token="CPATH" value="${quotted.lib.dir}\fjbg.jar;${quotted.lib.dir}\msil.jar;${quotted.lib.dir}\scala.jar;${quotted.lib.dir}\tools.jar;${quotted.lib.dir}\${osc-nstools.jar.name}"/>
+ <filter token="CPATH" value="${quotted.lib.dir}\fjbg.jar;${quotted.lib.dir}\msil.jar;${quotted.lib.dir}\scala.jar;${quotted.lib.dir}\tools.jar;${quotted.lib.dir}\${osc-nstools.jar.name};${quotted.lib.dir}\${nslib.jar.name}"/>
</filterset>
</copy>
- <copy file="${bin.dir}/.nsc_bat.tmpl"
- tofile="${distrib.win.current.dir}/bin/scalap.bat">
+ <copy file="${support.dir}/bin/nscala-tool.win.tmpl"
+ tofile="${distrib.win.current.dir}/bin/nscalap.bat">
<filterset>
<filter token="PRODUCT" value="scalap"/>
<filter token="VERSION" value="${scala.version}"/>
<filter token="COPYRIGHT" value="${copyright.notice}"/>
<filter token="MAIN" value="scala.tools.scalap.Main"/>
- <filter token="CPATH" value="${quotted.lib.dir}\fjbg.jar;${quotted.lib.dir}\msil.jar;${quotted.lib.dir}\scala.jar;${quotted.lib.dir}\tools.jar;${quotted.lib.dir}\${osc-nstools.jar.name}"/>
+ <filter token="CPATH" value="${quotted.lib.dir}\fjbg.jar;${quotted.lib.dir}\msil.jar;${quotted.lib.dir}\scala.jar;${quotted.lib.dir}\tools.jar;${quotted.lib.dir}\${osc-nstools.jar.name};${quotted.lib.dir}\${nslib.jar.name}"/>
</filterset>
</copy>
<fixcrlf srcdir="${distrib.win.current.dir}/bin" eol="dos"/>
diff --git a/sources/bin/nscala-tool.win.tmpl b/sources/bin/nscala-tool.win.tmpl
new file mode 100644
index 0000000000..5006ac5ec1
--- /dev/null
+++ b/sources/bin/nscala-tool.win.tmpl
@@ -0,0 +1,45 @@
+@echo off
+
+rem ##########################################################################
+rem # Copyright @COPYRIGHT@
+rem #
+rem # This is free software; see the distribution for copying conditions.
+rem # There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
+rem # PARTICULAR PURPOSE.
+rem ##########################################################################
+
+if "%OS%"=="Windows_NT" @setlocal
+
+if "%SCALA_HOME%" == "" goto error1
+if not exist "%SCALA_HOME%\VERSION-@VERSION@" goto error2
+
+set _ARGS=
+:loop
+if '%1' == '' goto exec
+set _ARGS=%_ARGS% %1
+shift
+goto loop
+
+:exec
+set _JAVACMD=java
+set _PROPS=-Dscala.product=@PRODUCT@ -Dscala.version=@VERSION@
+set _MAIN=@MAIN@
+set _CPATH=@CPATH@
+
+rem echo %_JAVACMD% %_PROPS% -cp %_CPATH% %_MAIN% %_ARGS%
+%_JAVACMD% %_PROPS% -cp %_CPATH% %_MAIN% %_ARGS%
+goto end
+
+rem ##########################################################################
+rem # errors
+
+:error1
+echo ERROR: environment variable SCALA_HOME is undefined. It should point to the directory containing the file "VERSION-@VERSION@".
+goto end
+
+:error2
+echo ERROR: environment variable SCALA_HOME points to the wrong directory "%SCALA_HOME%". It should point to the directory containing the file "VERSION-@VERSION@".
+goto end
+
+:end
+if "%OS%"=="Windows_NT" @endlocal
diff --git a/sources/bin/nscala.unix.tmpl b/sources/bin/nscala.unix.tmpl
new file mode 100644
index 0000000000..814cf69f9d
--- /dev/null
+++ b/sources/bin/nscala.unix.tmpl
@@ -0,0 +1,79 @@
+#!/bin/bash
+
+##############################################################################
+# Copyright @COPYRIGHT@
+#
+# This is free software; see the distribution for copying conditions.
+# There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+##############################################################################
+
+cygwin=false;
+darwin=false;
+case "`uname`" in
+ CYGWIN*) cygwin=true ;;
+ Darwin*) darwin=true ;;
+esac
+
+SOURCE=$0;
+SCRIPT=`basename "$SOURCE"`;
+while [ -h "$SOURCE" ]; do
+ SCRIPT=`basename "$SOURCE"`;
+ LOOKUP=`ls -ld "$SOURCE"`;
+ TARGET=`expr "$LOOKUP" : '.*-> \(.*\)$'`;
+ if expr "${TARGET:-.}/" : '/.*/$' > /dev/null; then
+ SOURCE=${TARGET:-.};
+ else
+ SOURCE=`dirname "$SOURCE"`/${TARGET:-.};
+ fi;
+done;
+PREFIX=`dirname "$SOURCE"`/..;
+prefix=$PREFIX;
+PREFIX=`cd "$PREFIX"; pwd`;
+
+if [ -z "$SCRIPT" ]; then
+ abort "Illegal direct invocation; invoke me through a symbolic link.";
+fi;
+
+_JAVACMD=java
+_TOOLS_CPATH=@TOOLS_CPATH@
+_LIB_CPATH=@LIB_CPATH@
+
+# For Cygwin, switch paths to appropriate format before running java
+if $cygwin; then
+ if [ "$OS" = "Windows_NT" ] && cygpath -m .>/dev/null 2>/dev/null ; then
+ format=mixed
+ else
+ format=windows
+ fi
+ _CPATH=`cygpath --path --$format "$_CPATH"`
+fi
+
+main=
+case "$SCRIPT" in
+ scala ) ;;
+ scalac* ) main=scala.tools.nsc.Main;;
+ scaladoc* ) main=scala.tools.scaladoc.Main;;
+ scalap* ) main=scala.tools.scalap.Main;;
+ * ) abort "Don't know what to do for $SCRIPT.";;
+esac;
+
+if [ -z "$main" ]; then
+ for arg in "" "$@"; do
+ [ -z "$arg" ] && continue;
+ if [ "$arg" = "-version" ]; then
+ echo "$SCRIPT @VERSION@ -- @COPYRIGHT@";
+ exit 0
+ fi
+ done;
+ $_JAVACMD \
+ -Xbootclasspath/a:"$_LIB_CPATH" \
+ "$@"
+else
+ $_JAVACMD \
+ -Dscala.product="$SCRIPT" \
+ -Dscala.version="@VERSION@" \
+ -Dscala.home="$PREFIX" \
+ -cp "$_TOOLS_CPATH" \
+ $main "$@"
+fi
diff --git a/sources/bin/nscala.win.tmpl b/sources/bin/nscala.win.tmpl
new file mode 100644
index 0000000000..139d3e5374
--- /dev/null
+++ b/sources/bin/nscala.win.tmpl
@@ -0,0 +1,48 @@
+@echo off
+
+rem ##########################################################################
+rem # Copyright @COPYRIGHT@
+rem #
+rem # This is free software; see the distribution for copying conditions.
+rem # There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
+rem # PARTICULAR PURPOSE.
+rem ##########################################################################
+
+if "%OS%"=="Windows_NT" @setlocal
+
+if "%SCALA_HOME%" == "" goto error1
+if not exist "%SCALA_HOME%\VERSION-@VERSION@" goto error2
+
+set _ARGS=
+:loop
+if '%1' == '' goto exec
+if '%1' == '-version' goto version
+set _ARGS=%_ARGS% %1
+shift
+goto loop
+
+:exec
+set _JAVACMD=java
+set _JAVAOPT=-Xbootclasspath/a:@BOOTCPATH@
+
+rem echo %_JAVACMD% %_JAVAOPT% %_ARGS%
+%_JAVACMD% %_JAVAOPT% %_ARGS%
+goto end
+
+:version
+echo @PRODUCT@ @VERSION@ -- @COPYRIGHT@
+goto end
+
+rem ##########################################################################
+rem # errors
+
+:error1
+echo ERROR: environment variable SCALA_HOME is undefined. It should point to the directory containing the file "VERSION-@VERSION@".
+goto end
+
+:error2
+echo ERROR: environment variable SCALA_HOME points to the wrong directory "%SCALA_HOME%". It should point to the directory containing the file "VERSION-@VERSION@".
+goto end
+
+:end
+if "%OS%"=="Windows_NT" @endlocal