summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xant-build-nsc.sh24
-rw-r--r--build-nsc.properties.SAMPLE31
-rw-r--r--build-nsc.xml43
3 files changed, 29 insertions, 69 deletions
diff --git a/ant-build-nsc.sh b/ant-build-nsc.sh
index b949b8f2ba..9fc82146ab 100755
--- a/ant-build-nsc.sh
+++ b/ant-build-nsc.sh
@@ -1,24 +1,18 @@
#!/bin/sh
-export ANT_OPTS=-Xmx256m
+. ant-common.sh
-awk '/^$/ {next;} /^#/ {next;} {print "export " $1 $2 $3}' build-nsc.properties > env.sh
+# jars for `scalac' task MUST EXIST
+if ! addJar $fjbg_jar fjbg_jar; then exit -1; fi
+if ! addJar $scala_jar scala_jar; then echo "try: make jar target=LIBRARY" && exit -1; fi
+if ! addJar $tools_jar tools_jar; then echo "try: make jar target=TOOLS" && exit -1; fi
-. env.sh
-
-# ------- don't change these, change build-nsc.properties instead
-
-# jars for `scalac' task
-CLASSPATH=${fjbg_jar}
-CLASSPATH=$CLASSPATH:${scala_jar}
-CLASSPATH=$CLASSPATH:${tools_jar}
-
-# jars for `pico' task including the `-scala-hacks' enableda
-CLASSPATH=$CLASSPATH:${jaco_jar}
-CLASSPATH=$CLASSPATH:${hacked_pico_dir}
+# jars for `pico' task MUST EXIST including the `-scala-hacks' enabled
+if ! addJar $jaco_jar jaco_jar; then exit -1; fi
# jars for `nsc' task (once its compiled)
-CLASSPATH=$CLASSPATH:${jars_dir}/nsc4ant.jar:${jars_dir}/nsc.jar
+if ! addJar $jars_dir/nsc4ant.jar; then echo "{ *** WARNING: $jars_dir/nsc4ant.jar doesn't exist}"; fi
+if ! addJar $jars_dir/nsc.jar; then echo "{ *** WARNING: $jars_dir/nsc.jar doesn't exist}"; fi
export CLASSPATH
diff --git a/build-nsc.properties.SAMPLE b/build-nsc.properties.SAMPLE
index 8532de346d..05b19efb63 100644
--- a/build-nsc.properties.SAMPLE
+++ b/build-nsc.properties.SAMPLE
@@ -1,35 +1,24 @@
-# this file serves two purposes,
+# this file serves two purposes
#
# 1. properties file for ant
-# 2. environment variables for ant-build-nsc.sh script
+# 2. environment variables for shell-scripts (e.g. ant-build-nsc.sh)
#
+# don't use characters like '.' in variable names, and
+# don't run commands here
#
scala_jar = /localhome/buraq/scala/objects/main/lib/scala.jar
-
-#
tools_jar = /localhome/buraq/scala/objects/main/lib/tools.jar
-
+fjbg_jar = /home/linuxsoft/apps/fjbg/jars/fjbg.jar
#
jaco_jar = /home/linuxsoft/apps/jaco/lib/jaco.jar
-
-#
-fjbg_jar = /home/linuxsoft/apps/fjbg/jars/fjbg.jar
-
-#
-hacked_pico_dir = /tmp/hackedPicoB
-
#
-tools_util_dir = /tmp/picoClassesB
-
+tools_util_dir = /tmp/classes_tools_util
#
-nsc_dir = /tmp/nscClassesB
-
+nsc_dir = /tmp/classes_nsc
#
-nsc4ant_dir = /tmp/nsc4antClassesB
-
+nsc4ant_dir = /tmp/classes_nsc4ant
#
-nsc_output_dir = /tmp/nscOutputClassesB
-
+nsc_output_dir = /tmp/classes_nsc_output
#
-jars_dir = /tmp/jarsB
+jars_dir = /tmp/jars_nsc
ant_jar = /home/linuxsoft/apps/ant/lib/ant.jar
diff --git a/build-nsc.xml b/build-nsc.xml
index 771f01a33b..c0c24a0d13 100644
--- a/build-nsc.xml
+++ b/build-nsc.xml
@@ -12,15 +12,16 @@
%%% Preliminaries
%%%
+ 1) working scala compiler ($fjbg.jar, $scala.jar and $tools.jar)
+
+ if you want to use the latest CVS one, type
make jar target=LIBRARY
make jar target=TOOLS
- You need a working scalac, which is accessible for ant.
- This means, you should have `fjbg.jar', `scala.jar' and
- `tools.jar' on your classpath
+ and set the variables to the places in your projectoutputdir
- check the ant-build-nsc script! adjust to your paths if necessary.
+ 2) working pizza compiler ($jaco.jar)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
@@ -35,23 +36,14 @@
<available classname="scala.tools.scala4ant.NscTask$class"
property="nsc4ant.present"/>
- <target name="build.hackedPicoTask">
-
- <mkdir dir="${hacked_pico_dir}"/>
- <javac srcdir="newsources" destdir="${hacked_pico_dir}">
- <include name="jaco/pizza/HackedPicoTask.java"/>
- <include name="jaco/pizza/HackedPicoAdaptor.java"/>
- </javac>
- </target>
-
<!-- taskdef for nsc comes later, because has to be compiled before -->
- <target name="build.nsc" depends="build.hackedPicoTask">
+ <target name="build.nsc">
<mkdir dir="${tools_util_dir}"/>
- <taskdef name="pico" classname="jaco.pizza.HackedPicoTask"/>
+ <taskdef name="pico" classname="jaco.pizza.AntTask"/>
- <pico srcdir="sources" destdir="${tools_util_dir}" source="1.4">
+ <pico srcdir="sources" destdir="${tools_util_dir}" source="1.4" scalaHack="true">
<include name="scala/*.java"/>
<include name="scala/runtime/*.java"/>
<include name="scala/runtime/**/*.java"/>
@@ -74,6 +66,7 @@
scalac does not always go find the latest source file (*3) -->
<include name="scala/tools/nsc/**/*.scala"/>
+ <exclude name="scala/tools/nsc/backend/**"/>
</scalac>
<mkdir dir="${jars_dir}"/>
@@ -111,7 +104,7 @@
<!-- if NscTask$class not found, give error message -->
<target name="need.nsc" unless = "nsc4ant.present">
- <echo message="please build nsc4ant first"/>
+ <echo message="please call build.nsc4ant in a separate run"/>
</target>
<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -126,22 +119,6 @@
<mkdir dir="${nsc_output_dir}"/>
- <!--java classname="scala.tools.nsc.Main"
- classpath="./objects/main/lib/scala:./objects/main/lib/tools:${jars.dir}/nsc.jar:${tools.util.dir}" >
- <arg value="-classpath"/>
- <arg value="sources:newsources:${tools.util.dir}"/>
- <arg value="-d"/>
- <arg value="/tmp"/>
- <arg value="-nopredefs"/>
- <arg value="sources/scala/Predef.scala"/>
- <arg value="sources/scala/runtime/ScalaRunTime.scala"/>
-
-
- </java
-
- classpath=".:sources:newsources:../newsources:${tools.util.dir}"
-
--->
<echo>Compiling predef and runtime</echo>
<nsc srcdir="sources" destdir="${nsc_output_dir}"
classpath="sources:newsources:${tools_util_dir}"