summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.xml39
-rw-r--r--src/compiler/scala/tools/ant/templates/tool-unix.tmpl5
-rw-r--r--src/compiler/scala/tools/ant/templates/tool-windows.tmpl10
-rw-r--r--src/compiler/scala/tools/nsc/Main.scala8
-rw-r--r--src/compiler/scala/tools/nsc/Properties.scala11
-rw-r--r--src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala29
-rwxr-xr-xsrc/mono/bin/scala.net60
-rwxr-xr-xsrc/mono/bin/scala.net.bat81
-rwxr-xr-xsrc/mono/bin/scalac.net86
-rwxr-xr-xsrc/mono/bin/scalac.net.bat116
10 files changed, 408 insertions, 37 deletions
diff --git a/build.xml b/build.xml
index e79e4f5a77..0330396a04 100644
--- a/build.xml
+++ b/build.xml
@@ -53,6 +53,7 @@ PROPERTIES
<property name="examples.dir" value="${build.dir}/examples"/>
<property name="cldc.dir" value="${build.dir}/cldc"/>
<property name="msil.dir" value="${build.dir}/msil"/>
+ <property name="mono.dir" value="${src.dir}/mono"/>
<!-- Sets location and structure of the distribution -->
<property name="dist.dir" value="${basedir}/dists"/>
<property name="lib.jar.name" value="scala-library.jar"/>
@@ -737,7 +738,7 @@ MSIL
</target>
- <target name="msil" depends="setup.quick, msil.sources">
+ <target name="msil.dll" depends="setup.quick, msil.sources">
<quick srcdir="${msil.dir}/src" usepredefs="no" target="msil"
assemname="${msil.dir}/predef" assemrefs="${lib.dir}">
<include name="scala/Predef.scala"/>
@@ -780,6 +781,42 @@ MSIL
</exec>
</target>
+ <target name="msil" depends="msil.dll">
+ <copy todir="${quick.dir}/bin">
+ <fileset
+ dir="${mono.dir}/bin"
+ includes="*.bat,*.net"
+ />
+ <filterset>
+ <filter token="VERSION" value="${version.number}"/>
+ <filter token="COPYRIGHT" value="${copyright.string}"/>
+ <filter token="NAME" value="Scala code runner"/>
+ </filterset>
+ </copy>
+ <if><isset property="os.win"/>
+ <then>
+ <copy todir="${quick.dir}/lib">
+ <fileset dir="${msil.dir}" includes="*.dll"/>
+ <fileset dir="${lib.dir}" includes="*.dll"/>
+ </copy>
+ </then>
+ <else>
+ <symlink
+ link="${quick.dir}/lib/predef.dll"
+ resource="${msil.dir}/predef.dll"
+ overwrite="yes" failonerror="no"/>
+ <symlink
+ link="${quick.dir}/lib/scalaruntime.dll"
+ resource="${lib.dir}/scalaruntime.dll"
+ overwrite="yes" failonerror="no"/>
+ <symlink
+ link="${quick.dir}/lib/mscorlib.dll"
+ resource="${lib.dir}/mscorlib.dll"
+ overwrite="yes" failonerror="no"/>
+ </else>
+ </if>
+ </target>
+
<!-- ===========================================================================
TEST
============================================================================ -->
diff --git a/src/compiler/scala/tools/ant/templates/tool-unix.tmpl b/src/compiler/scala/tools/ant/templates/tool-unix.tmpl
index 913a747e48..2233056bb3 100644
--- a/src/compiler/scala/tools/ant/templates/tool-unix.tmpl
+++ b/src/compiler/scala/tools/ant/templates/tool-unix.tmpl
@@ -70,7 +70,4 @@ if $cygwin; then
BOOT_CLASSPATH=`cygpath --path --$format "$BOOT_CLASSPATH"`
fi
-ILASM=`which ilasm 2>/dev/null`
-[ -x "$ILASM" ] || ILASM=""
-
-${JAVACMD:=java} ${JAVA_OPTS:=@javaflags@} -Xbootclasspath/a:"$BOOT_CLASSPATH" -cp "$EXTENSION_CLASSPATH" -Dscala.home="$SCALA_HOME" -Denv.classpath="$CLASSPATH" -Dilasm.tool="$ILASM" @properties@ @class@ @toolflags@ "$@@"
+${JAVACMD:=java} ${JAVA_OPTS:=@javaflags@} -Xbootclasspath/a:"$BOOT_CLASSPATH" -cp "$EXTENSION_CLASSPATH" -Dscala.home="$SCALA_HOME" -Denv.classpath="$CLASSPATH" @properties@ @class@ @toolflags@ "$@@"
diff --git a/src/compiler/scala/tools/ant/templates/tool-windows.tmpl b/src/compiler/scala/tools/ant/templates/tool-windows.tmpl
index 0809b2c117..492614d238 100644
--- a/src/compiler/scala/tools/ant/templates/tool-windows.tmpl
+++ b/src/compiler/scala/tools/ant/templates/tool-windows.tmpl
@@ -34,10 +34,6 @@ rem We use the value of the JAVA_OPTS environment variable if defined
set _JAVA_OPTS=%JAVA_OPTS%
if "%_JAVA_OPTS%"=="" set _JAVA_OPTS=@javaflags@
-rem We use the value of the ILASM environment variable if defined
-set _ILASM=%ILASM%
-if "%_ILASM%"=="" call :find_ilasm ilasm.exe
-
set _EXTENSION_CLASSPATH=@extclasspath@
if "%_EXTENSION_CLASSPATH%"=="" (
for %%f in ("%_SCALA_HOME%\lib\*") do call :add_cpath "%%f"
@@ -56,7 +52,7 @@ if "%_BOOT_CLASSPATH%"=="" (
)
)
-set _PROPS=-Dscala.home="%_SCALA_HOME%" -Denv.classpath="%CLASSPATH%" -Dilasm.tool="%_ILASM%" @properties@
+set _PROPS=-Dscala.home="%_SCALA_HOME%" -Denv.classpath="%CLASSPATH%" @properties@
rem echo %_JAVACMD% -Xbootclasspath/a:"%_BOOT_CLASSPATH%" %_JAVA_OPTS% %_PROPS% -cp "%_EXTENSION_CLASSPATH%" @class@ @toolflags@ %_ARGS%
%_JAVACMD% -Xbootclasspath/a:"%_BOOT_CLASSPATH%" %_JAVA_OPTS% %_PROPS% -cp "%_EXTENSION_CLASSPATH%" @class@ @toolflags@ %_ARGS%
@@ -82,10 +78,6 @@ rem set _SCALA_HOME=%~dps0..
set _SCALA_HOME=%_BIN_DIR%..
goto :eof
-:find_ilasm
- set _ILASM=%~$PATH:1
-goto :eof
-
:set_args
set _ARGS=
:loop
diff --git a/src/compiler/scala/tools/nsc/Main.scala b/src/compiler/scala/tools/nsc/Main.scala
index ced42db739..cc50e71d9b 100644
--- a/src/compiler/scala/tools/nsc/Main.scala
+++ b/src/compiler/scala/tools/nsc/Main.scala
@@ -6,6 +6,8 @@
package scala.tools.nsc
+import java.io.File
+
import scala.tools.nsc.doc.{DocDriver => DocGenerator}
import scala.tools.nsc.reporters.{Reporter, ConsoleReporter}
import scala.tools.nsc.util.FakePos //{Position}
@@ -46,6 +48,12 @@ object Main extends AnyRef with EvalLoop {
if (command.settings.version.value)
reporter.info(null, versionMsg, true)
else {
+ if (command.settings.target.value == "msil") {
+ val libpath = System.getProperty("msil.libpath")
+ if (libpath != null)
+ command.settings.assemrefs.value =
+ command.settings.assemrefs.value + File.pathSeparator + libpath
+ }
try {
object compiler extends Global(command.settings, reporter)
if (reporter.hasErrors) {
diff --git a/src/compiler/scala/tools/nsc/Properties.scala b/src/compiler/scala/tools/nsc/Properties.scala
index 2ec544b7e0..9f3001c9e0 100644
--- a/src/compiler/scala/tools/nsc/Properties.scala
+++ b/src/compiler/scala/tools/nsc/Properties.scala
@@ -53,13 +53,6 @@ object Properties {
val cmdName: String =
if (isWin) "scala.bat" else "scala"
- val ilasmFormat: java.text.MessageFormat = {
- val ilasm = System.getProperty("ilasm.tool", "")
- if (ilasm == "") null
- else
- new java.text.MessageFormat(ilasm + (
- if (isWin) " /quiet /exe /output={0} {1}"
- else " --format exe --output={0} {1}"
- ))
- }
+ val msilILasm: String =
+ System.getProperty("msil.ilasm", "")
}
diff --git a/src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala b/src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala
index 2c883c2513..115eb8e7ff 100644
--- a/src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala
+++ b/src/compiler/scala/tools/nsc/backend/msil/GenMSIL.scala
@@ -455,21 +455,22 @@ abstract class GenMSIL extends SubComponent {
createTypes()
val filename = new File(outDir, assemName + ".msil").getPath()
if (settings.debug.value)
- log("output file name: " + filename)
+ log("Output file name: " + filename)
try {
massembly.Save(filename)
-// val fm = Properties.ilasmFormat
-// if (fm != null) {
-// val exeName = new File(outDir, assemName + ".exe").getPath()
-// val cmd = fm.format(Array(/*output*/exeName, /*input*/filename))
-// try {
-// Runtime.getRuntime().exec(cmd)
-// } catch {
-// case ex: java.io.IOException =>
-// Console.println("Cannot run command: " + cmd)
-// exit(1)
-// }
-// }
+ val ilasm = Properties.msilILasm
+ if (ilasm != "") {
+ val cmd = ilasm + " " + filename
+ if (settings.debug.value)
+ log("Executing command: " + cmd)
+ try {
+ Runtime.getRuntime().exec(cmd)
+ } catch {
+ case _ =>
+ Console.println("Cannot run command: " + cmd)
+ exit(1)
+ }
+ }
} catch {
case _: Error => abort("Could not save file " + filename)
}
@@ -1288,7 +1289,7 @@ abstract class GenMSIL extends SubComponent {
case LOAD_MODULE(module) =>
if (settings.debug.value)
- log("genearting LOAD_MODULE for: " + showsym(module))
+ log("Generating LOAD_MODULE for: " + showsym(module))
mcode.Emit(OpCodes.Ldsfld, getModuleInstanceField(module))
case STORE_ARRAY_ITEM(kind) =>
diff --git a/src/mono/bin/scala.net b/src/mono/bin/scala.net
new file mode 100755
index 0000000000..a654f0071a
--- /dev/null
+++ b/src/mono/bin/scala.net
@@ -0,0 +1,60 @@
+#!/bin/sh
+
+##############################################################################
+# @NAME@ @VERSION@
+##############################################################################
+# @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
+
+# Finding the root folder for this Scala distribution
+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;
+SCALA_HOME=`dirname "$SOURCE"`/..;
+SCALA_HOME=`cd "$SCALA_HOME"; pwd`;
+if $cygwin; then
+ SCALA_HOME=`cygpath --windows --short-name "$SCALA_HOME"`
+ SCALA_HOME=`cygpath --unix "$SCALA_HOME"`
+fi
+
+if [ ! -x "$MONO" ] ; then
+ if [ -d "$MONO_HOME" ] ; then
+ MONO="$MONO_HOME/bin/mono"
+ else
+ MONO="mono"
+ fi
+fi
+
+MSIL_LIBPATH="$SCALA_HOME/lib"
+[ -z "$MONO_PATH" ] || MSIL_LIBPATH="$MSIL_LIBPATH:$MONO_PATH"
+
+if $cygwin; then
+ if [ "$OS" = "Windows_NT" ] && cygpath -m .>/dev/null 2>/dev/null ; then
+ format=mixed
+ else
+ format=windows
+ fi
+ MSIL_LIBPATH=`cygpath --path --$format "$MSIL_LIBPATH"`
+fi
+
+env MONO_PATH="$MSIL_LIBPATH" $MONO "$@"
diff --git a/src/mono/bin/scala.net.bat b/src/mono/bin/scala.net.bat
new file mode 100755
index 0000000000..89c097a09f
--- /dev/null
+++ b/src/mono/bin/scala.net.bat
@@ -0,0 +1,81 @@
+@echo off
+
+rem ##########################################################################
+rem # @NAME@ @VERSION@
+rem ##########################################################################
+rem # @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 ##########################################################################
+
+rem We adopt the following conventions:
+rem - System/user environment variables start with a letter
+rem - Local batch variables start with an underscore ('_')
+
+if "%OS%"=="Windows_NT" (
+ @setlocal
+ call :set_home
+ set _ARGS=%*
+) else (
+ set _SCALA_HOME=%SCALA_HOME%
+ rem The following line tests SCALA_HOME instead of _SCALA_HOME, because
+ rem the above change to _SCALA_HOME is not visible within this block.
+ if "%SCALA_HOME%"=="" goto error1
+ call :set_args
+)
+
+rem We use the value of the MONO environment variable if defined
+set _MONO=%MONO%
+if "%_MONO%"=="" (
+ if exist "%MONO_HOME%"\nul (
+ set _MONO=%MONO_HOME%\bin\mono.exe
+ ) else (
+ call :find_mono mono.exe
+ )
+)
+
+set _MSIL_LIBPATH=%_SCALA_HOME%\lib
+if not "%MONO_PATH%"=="" (
+ set _MSIL_LIBPATH=%_MSIL_LIBPATH%;%MONO_PATH%
+)
+
+set MONO_PATH=%_MSIL_LIBPATH%
+%_MONO% %_ARGS%
+goto end
+
+rem ##########################################################################
+rem # subroutines
+
+rem Variable "%~dps0" works on WinXP SP2 or newer
+rem (see http://support.microsoft.com/?kbid=833431)
+rem set _SCALA_HOME=%~dps0..
+:set_home
+ set _BIN_DIR=
+ for %%i in (%~sf0) do set _BIN_DIR=%_BIN_DIR%%%~dpsi
+ set _SCALA_HOME=%_BIN_DIR%..
+goto :eof
+
+:find_mono
+ set _MONO=%~$PATH:1
+goto :eof
+
+:set_args
+ set _ARGS=
+ :loop
+ rem Argument %1 may contain quotes so we use parentheses here
+ if (%1)==() goto :eof
+ set _ARGS=%_ARGS% %1
+ shift
+ goto loop
+
+rem ##########################################################################
+rem # errors
+
+:error1
+echo ERROR: environment variable SCALA_HOME is undefined. It should point to your installation directory.
+goto end
+
+:end
+if "%OS%"=="Windows_NT" @endlocal
diff --git a/src/mono/bin/scalac.net b/src/mono/bin/scalac.net
new file mode 100755
index 0000000000..e3442b3606
--- /dev/null
+++ b/src/mono/bin/scalac.net
@@ -0,0 +1,86 @@
+#!/bin/sh
+
+##############################################################################
+# @NAME@ @VERSION@
+##############################################################################
+# @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
+
+# Finding the root folder for this Scala distribution
+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;
+SCALA_HOME=`dirname "$SOURCE"`/..;
+SCALA_HOME=`cd "$SCALA_HOME"; pwd`;
+if $cygwin; then
+ SCALA_HOME=`cygpath --windows --short-name "$SCALA_HOME"`
+ SCALA_HOME=`cygpath --unix "$SCALA_HOME"`
+fi
+
+# Constructing the extension classpath
+EXTENSION_CLASSPATH=""
+if [ -z "$EXTENSION_CLASSPATH" ] ; then
+ for ext in `ls -d "$SCALA_HOME"/lib/*` ; do
+ if [ -z "$EXTENSION_CLASSPATH" ] ; then
+ EXTENSION_CLASSPATH="$ext"
+ else
+ EXTENSION_CLASSPATH="$EXTENSION_CLASSPATH:$ext"
+ fi
+ done
+fi
+
+# Setting the boot class-path to be the standard library (either as a JAR or a folder)
+BOOT_CLASSPATH=""
+if [ -z "$BOOT_CLASSPATH" ] ; then
+ if [ -f "$SCALA_HOME/lib/scala-library.jar" ] ; then
+ BOOT_CLASSPATH="$SCALA_HOME/lib/scala-library.jar"
+ elif [ -d "$SCALA_HOME/lib/library" ] ; then
+ BOOT_CLASSPATH="$SCALA_HOME/lib/library"
+ fi
+fi
+
+if [ ! -x "$ILASM" ] ; then
+ if [ -d "$MONO_HOME" ] ; then
+ ILASM="$MONO_HOME/bin/ilasm"
+ else
+ ILASM="ilasm"
+ fi
+fi
+
+MSIL_LIBPATH="$SCALA_HOME/lib/predef.dll:$SCALA_HOME/lib/scalaruntime.dll:$SCALA_HOME/lib/mscorlib.dll"
+[ -z "$MONO_PATH" ] || MSIL_LIBPATH="$MSIL_LIBPATH:$MONO_PATH"
+
+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"`
+ EXTENSION_CLASSPATH=`cygpath --path --$format "$EXTENSION_CLASSPATH"`
+ BOOT_CLASSPATH=`cygpath --path --$format "$BOOT_CLASSPATH"`
+ MSIL_LIBPATH=`cygpath --path --$format "$MSIL_LIBPATH"`
+ ILASM=`cygpath --$format "$COMSPEC"`" /C "`cygpath --windows "$ILASM"`
+fi
+
+${JAVACMD:=java} ${JAVA_OPTS:=-Xmx256M -Xms16M} -Xbootclasspath/a:"$BOOT_CLASSPATH" -cp "$EXTENSION_CLASSPATH" -Dscala.home="$SCALA_HOME" -Denv.classpath="$CLASSPATH" -Dmsil.libpath="$MSIL_LIBPATH" -Dmsil.ilasm="$ILASM" scala.tools.nsc.Main -target:msil "$@"
diff --git a/src/mono/bin/scalac.net.bat b/src/mono/bin/scalac.net.bat
new file mode 100755
index 0000000000..fab7c619e3
--- /dev/null
+++ b/src/mono/bin/scalac.net.bat
@@ -0,0 +1,116 @@
+@echo off
+
+rem ##########################################################################
+rem # @NAME@ @VERSION@
+rem ##########################################################################
+rem # @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 ##########################################################################
+
+rem We adopt the following conventions:
+rem - System/user environment variables start with a letter
+rem - Local batch variables start with an underscore ('_')
+
+if "%OS%"=="Windows_NT" (
+ @setlocal
+ call :set_home
+ set _ARGS=%*
+) else (
+ set _SCALA_HOME=%SCALA_HOME%
+ rem The following line tests SCALA_HOME instead of _SCALA_HOME, because
+ rem the above change to _SCALA_HOME is not visible within this block.
+ if "%SCALA_HOME%"=="" goto error1
+ call :set_args
+)
+
+rem We use the value of the JAVACMD environment variable if defined
+set _JAVACMD=%JAVACMD%
+if "%_JAVACMD%"=="" set _JAVACMD=java
+
+rem We use the value of the JAVA_OPTS environment variable if defined
+set _JAVA_OPTS=%JAVA_OPTS%
+if "%_JAVA_OPTS%"=="" set _JAVA_OPTS=-Xmx256M -Xms16M
+
+rem We use the value of the ILASM environment variable if defined
+set _ILASM=%ILASM%
+if "%_ILASM%"=="" (
+ if exist "%MONO_HOME%"\nul (
+ set _ILASM=%MONO_HOME%\bin\ilasm.bat
+ ) else (
+ call :find_ilasm ilasm.bat
+ )
+)
+
+set _EXTENSION_CLASSPATH=
+if "%_EXTENSION_CLASSPATH%"=="" (
+ for %%f in ("%_SCALA_HOME%\lib\*") do call :add_cpath "%%f"
+ if "%OS%"=="Windows_NT" (
+ for /d %%f in ("%_SCALA_HOME%\lib\*") do call :add_cpath "%%f"
+ )
+)
+
+set _BOOT_CLASSPATH=
+if "%_BOOT_CLASSPATH%"=="" (
+ if exist "%_SCALA_HOME%\lib\scala-library.jar" (
+ set _BOOT_CLASSPATH=%_SCALA_HOME%\lib\scala-library.jar
+ )
+ if exist "%_SCALA_HOME%\lib\library"\nul (
+ set _BOOT_CLASSPATH=%_SCALA_HOME%\lib\library
+ )
+)
+
+set _MSIL_LIBPATH=%_SCALA_HOME%\lib\predef.dll;%_SCALA_HOME%\lib\scalaruntime.dll;%_SCALA_HOME%\lib\mscorlib.dll
+if not "%MONO_PATH%"=="" (
+ set _MSIL_LIBPATH=%_MSIL_LIBPATH%;%MONO_PATH%
+)
+
+set _PROPS=-Dscala.home="%_SCALA_HOME%" -Denv.classpath="%CLASSPATH%" -Dmsil.libpath="%_MSIL_LIBPATH%" -Dmsil.ilasm="%_ILASM%"
+
+%_JAVACMD% -Xbootclasspath/a:"%_BOOT_CLASSPATH%" %_JAVA_OPTS% %_PROPS% -cp "%_EXTENSION_CLASSPATH%" scala.tools.nsc.Main -target:msil %_ARGS%
+goto end
+
+rem ##########################################################################
+rem # subroutines
+
+:add_cpath
+ if "%_EXTENSION_CLASSPATH%"=="" (
+ set _EXTENSION_CLASSPATH=%~1
+ ) else (
+ set _EXTENSION_CLASSPATH=%_EXTENSION_CLASSPATH%;%~1
+ )
+goto :eof
+
+rem Variable "%~dps0" works on WinXP SP2 or newer
+rem (see http://support.microsoft.com/?kbid=833431)
+rem set _SCALA_HOME=%~dps0..
+:set_home
+ set _BIN_DIR=
+ for %%i in (%~sf0) do set _BIN_DIR=%_BIN_DIR%%%~dpsi
+ set _SCALA_HOME=%_BIN_DIR%..
+goto :eof
+
+:find_ilasm
+ set _ILASM=%~$PATH:1
+goto :eof
+
+:set_args
+ set _ARGS=
+ :loop
+ rem Argument %1 may contain quotes so we use parentheses here
+ if (%1)==() goto :eof
+ set _ARGS=%_ARGS% %1
+ shift
+ goto loop
+
+rem ##########################################################################
+rem # errors
+
+:error1
+echo ERROR: environment variable SCALA_HOME is undefined. It should point to your installation directory.
+goto end
+
+:end
+if "%OS%"=="Windows_NT" @endlocal