diff options
-rwxr-xr-x | ant-build-nsc.sh | 24 | ||||
-rw-r--r-- | build-nsc.properties.SAMPLE | 31 | ||||
-rw-r--r-- | build-nsc.xml | 43 |
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}" |