summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGilles Dubochet <gilles.dubochet@epfl.ch>2008-04-09 16:56:53 +0000
committerGilles Dubochet <gilles.dubochet@epfl.ch>2008-04-09 16:56:53 +0000
commit9346877092dbe49dc13392134c36773f1220b6c3 (patch)
tree68d7ba8a15d5fcf715a76d662ab68b6f9a13a6fe
parent07b35f671e36a681583548c6abc209913c07fec5 (diff)
downloadscala-9346877092dbe49dc13392134c36773f1220b6c3.tar.gz
scala-9346877092dbe49dc13392134c36773f1220b6c3.tar.bz2
scala-9346877092dbe49dc13392134c36773f1220b6c3.zip
Added a simple target to build a JVM 1.4 versio...
Added a simple target to build a JVM 1.4 version of the Scala compiler and library.
-rw-r--r--lib/sabbus.jar.desired.sha12
-rw-r--r--sabbus.xml186
-rw-r--r--src/compiler/scala/tools/ant/sabbus/Make.scala6
3 files changed, 171 insertions, 23 deletions
diff --git a/lib/sabbus.jar.desired.sha1 b/lib/sabbus.jar.desired.sha1
index a5e24c2cdc..e2047964f2 100644
--- a/lib/sabbus.jar.desired.sha1
+++ b/lib/sabbus.jar.desired.sha1
@@ -1 +1 @@
-e82686ff2820b9db1813ee5d00fe657d31d91c52 ?sabbus.jar
+7c49b10e4b8439feba2965a1c725b6597d4005cb ?sabbus.jar
diff --git a/sabbus.xml b/sabbus.xml
index e89da3ddd7..fc0592d099 100644
--- a/sabbus.xml
+++ b/sabbus.xml
@@ -89,6 +89,7 @@ PROPERTIES
<property name="build-quick.dir" value="${build.dir}/quick"/>
<property name="build-pack.dir" value="${build.dir}/pack"/>
<property name="build-strap.dir" value="${build.dir}/strap"/>
+ <property name="build-four.dir" value="${build.dir}/four"/>
<property name="build-docs.dir" value="${build.dir}/scaladoc"/>
<property name="dists.dir" value="${basedir}/dists"/>
@@ -165,11 +166,13 @@ LOCAL REFERENCE BUILD (LOCKER)
srcdir="${src.dir}/library"
destdir="${build-locker.dir}/classes/library"
classpath="${build-locker.dir}/classes/library"
- includes="**/*.java"/>
+ includes="**/*.java"
+ target="1.5" source="1.5"/>
<sabmake id="starr.lib.scalac"
destdir="${build-locker.dir}/classes/library"
compilerpathref="starr.classpath"
- srcpath="${src.dir}/library">
+ srcpath="${src.dir}/library"
+ target="jvm-1.5">
<compilationpath>
<pathelement location="${build-locker.dir}/classes/library"/>
</compilationpath>
@@ -212,7 +215,8 @@ LOCAL REFERENCE BUILD (LOCKER)
<sabmake id="starr.comp.scalac"
destdir="${build-locker.dir}/classes/compiler"
compilerpathref="starr.classpath"
- srcpath="${src.dir}/compiler">
+ srcpath="${src.dir}/compiler"
+ target="jvm-1.5">
<compilationpath>
<pathelement location="${build-locker.dir}/classes/library"/>
<pathelement location="${build-locker.dir}/classes/compiler"/>
@@ -279,16 +283,19 @@ QUICK BUILD (QUICK)
srcdir="${src.dir}/library"
destdir="${build-quick.dir}/classes/library"
classpath="${build-quick.dir}/classes/library"
- includes="**/*.java"/>
+ includes="**/*.java"
+ target="1.5" source="1.5"/>
<javac
srcdir="${src.dir}/actors"
destdir="${build-quick.dir}/classes/library"
classpath="${build-quick.dir}/classes/library"
- includes="**/*.java"/>
+ includes="**/*.java"
+ target="1.5" source="1.5"/>
<sabmake id="locker.lib.scalac"
destdir="${build-quick.dir}/classes/library"
compilerpathref="locker.classpath"
- srcpath="${src.dir}/library">
+ srcpath="${src.dir}/library"
+ target="jvm-1.5">
<compilationpath>
<pathelement location="${build-quick.dir}/classes/library"/>
</compilationpath>
@@ -296,17 +303,17 @@ QUICK BUILD (QUICK)
<sabuse id="locker.lib.scalac" srcdir="${src.dir}/library">
<include name="scala/Predef.scala"/>
</sabuse>
- <!-- -->
+ <!-- re-instantiate locker.lib.scalac because keeping the same instance will lead to some attributes missing -->
<sabbreak id="locker.lib.scalac"/>
<sabmake id="locker.lib.scalac"
destdir="${build-quick.dir}/classes/library"
compilerpathref="locker.classpath"
- srcpath="${src.dir}/library">
+ srcpath="${src.dir}/library"
+ target="jvm-1.5">
<compilationpath>
<pathelement location="${build-quick.dir}/classes/library"/>
</compilationpath>
</sabmake>
- <!-- -->
<sabuse id="locker.lib.scalac" srcdir="${src.dir}/library">
<include name="**/*.scala"/>
<exclude name="scala/Predef.scala"/>
@@ -346,7 +353,8 @@ QUICK BUILD (QUICK)
<sabmake id="locker.comp.scalac"
destdir="${build-quick.dir}/classes/compiler"
compilerpathref="locker.classpath"
- srcpath="${src.dir}/compiler">
+ srcpath="${src.dir}/compiler"
+ target="jvm-1.5">
<compilationpath>
<pathelement location="${build-quick.dir}/classes/library"/>
<pathelement location="${build-quick.dir}/classes/compiler"/>
@@ -387,7 +395,8 @@ QUICK BUILD (QUICK)
<mkdir dir="${build-quick.dir}/classes/partest"/>
<javac
srcdir="${src.dir}/partest"
- destdir="${build-quick.dir}/classes/partest">
+ destdir="${build-quick.dir}/classes/partest"
+ target="1.5" source="1.5">
<classpath>
<pathelement location="${build-quick.dir}/classes/library"/>
<pathelement location="${build-quick.dir}/classes/compiler"/>
@@ -398,7 +407,8 @@ QUICK BUILD (QUICK)
<sabmake id="locker.partest.scalac"
destdir="${build-quick.dir}/classes/partest"
compilerpathref="locker.classpath"
- srcpath="${src.dir}/paartest">
+ srcpath="${src.dir}/paartest"
+ target="jvm-1.5">
<compilationpath>
<pathelement location="${build-quick.dir}/classes/library"/>
<pathelement location="${build-quick.dir}/classes/compiler"/>
@@ -605,36 +615,42 @@ BOOTSTRAPPING BUILD (STRAP)
srcdir="${src.dir}/library"
destdir="${build-strap.dir}/classes/library"
classpath="${build-strap.dir}/classes/library"
- includes="**/*.java"/>
+ includes="**/*.java"
+ target="1.5" source="1.5"/>
<javac
srcdir="${src.dir}/actors"
destdir="${build-strap.dir}/classes/library"
classpath="${build-strap.dir}/classes/library"
- includes="**/*.java"/>
+ includes="**/*.java"
+ target="1.5" source="1.5"/>
<scalac
srcdir="${src.dir}/library"
destdir="${build-strap.dir}/classes/library"
classpath="${build-strap.dir}/classes/library"
- sourcepath="${src.dir}/library">
+ sourcepath="${src.dir}/library"
+ target="jvm-1.5">
<include name="scala/Predef.scala"/>
</scalac>
<scalac
srcdir="${src.dir}/library"
destdir="${build-strap.dir}/classes/library"
- classpath="${build-strap.dir}/classes/library">
+ classpath="${build-strap.dir}/classes/library"
+ target="jvm-1.5">
<include name="**/*.scala"/>
<exclude name="scala/Predef.scala"/>
</scalac>
<scalac
srcdir="${src.dir}/actors"
destdir="${build-strap.dir}/classes/library"
- classpath="${build-strap.dir}/classes/library">
+ classpath="${build-strap.dir}/classes/library"
+ target="jvm-1.5">
<include name="**/*.scala"/>
</scalac>
<scalac
srcdir="${src.dir}/dbc"
destdir="${build-strap.dir}/classes/library"
- classpath="${build-strap.dir}/classes/library">
+ classpath="${build-strap.dir}/classes/library"
+ target="jvm-1.5">
<include name="**/*.scala"/>
</scalac>
<propertyfile file="${build-strap.dir}/classes/library/library.properties">
@@ -664,7 +680,8 @@ BOOTSTRAPPING BUILD (STRAP)
<mkdir dir="${build-strap.dir}/classes/compiler"/>
<scalac
srcdir="${src.dir}/compiler"
- destdir="${build-strap.dir}/classes/compiler">
+ destdir="${build-strap.dir}/classes/compiler"
+ target="jvm-1.5">
<include name="**/*.scala"/>
<classpath>
<pathelement location="${build-strap.dir}/classes/library"/>
@@ -702,7 +719,8 @@ BOOTSTRAPPING BUILD (STRAP)
<mkdir dir="${build-strap.dir}/classes/partest"/>
<javac
srcdir="${src.dir}/partest"
- destdir="${build-strap.dir}/classes/partest">
+ destdir="${build-strap.dir}/classes/partest"
+ target="1.5" source="1.5">
<classpath>
<pathelement location="${build-strap.dir}/classes/library"/>
<pathelement location="${build-strap.dir}/classes/compiler"/>
@@ -712,7 +730,8 @@ BOOTSTRAPPING BUILD (STRAP)
</javac>
<scalac
srcdir="${src.dir}/partest"
- destdir="${build-strap.dir}/classes/partest">
+ destdir="${build-strap.dir}/classes/partest"
+ target="jvm-1.5">
<include name="**/*.scala"/>
<classpath>
<pathelement location="${build-strap.dir}/classes/library"/>
@@ -807,6 +826,128 @@ DOCUMENTATION
</target>
<!-- ===========================================================================
+JAVA 1.4 LIBRARY AND COMPILER BUILD (FOUR)
+============================================================================ -->
+
+ <target name="four.start" depends="pack.done"/>
+
+ <target name="four.pre-lib" depends="four.start">
+ <uptodate property="four.lib.available" targetfile="${build-four.dir}/library.complete">
+ <srcfiles dir="${src.dir}">
+ <include name="library/**"/>
+ <include name="dbc/**"/>
+ <include name="actors/**"/>
+ </srcfiles>
+ </uptodate>
+ </target>
+
+ <target name="four.lib" depends="four.pre-lib" unless="four.lib.available">
+ <stopwatch name="four.lib.timer"/>
+ <mkdir dir="${build-four.dir}/classes/library"/>
+ <javac
+ srcdir="${src.dir}/library"
+ destdir="${build-four.dir}/classes/library"
+ classpath="${build-four.dir}/classes/library"
+ includes="**/*.java"
+ target="1.4" source="1.4"/>
+ <javac
+ srcdir="${src.dir}/actors"
+ destdir="${build-four.dir}/classes/library"
+ classpath="${build-four.dir}/classes/library"
+ includes="**/*.java"
+ target="1.4" source="1.4"/>
+ <scalac
+ srcdir="${src.dir}/library"
+ destdir="${build-four.dir}/classes/library"
+ classpath="${build-four.dir}/classes/library"
+ sourcepath="${src.dir}/library"
+ target="jvm-1.4">
+ <include name="scala/Predef.scala"/>
+ </scalac>
+ <scalac
+ srcdir="${src.dir}/library"
+ destdir="${build-four.dir}/classes/library"
+ classpath="${build-four.dir}/classes/library"
+ target="jvm-1.4">
+ <include name="**/*.scala"/>
+ <exclude name="scala/Predef.scala"/>
+ </scalac>
+ <scalac
+ srcdir="${src.dir}/actors"
+ destdir="${build-four.dir}/classes/library"
+ classpath="${build-four.dir}/classes/library"
+ target="jvm-1.4">
+ <include name="**/*.scala"/>
+ </scalac>
+ <scalac
+ srcdir="${src.dir}/dbc"
+ destdir="${build-four.dir}/classes/library"
+ classpath="${build-four.dir}/classes/library"
+ target="jvm-1.4">
+ <include name="**/*.scala"/>
+ </scalac>
+ <propertyfile file="${build-four.dir}/classes/library/library.properties">
+ <entry key="version.number" value="${version.number}"/>
+ <entry key="copyright.string" value="${copyright.string}"/>
+ </propertyfile>
+ <copy todir="${build-four.dir}/classes/library">
+ <fileset dir="${src.dir}/library">
+ <include name="**/*.tmpl"/>
+ <include name="**/*.xml"/>
+ <include name="**/*.js"/>
+ <include name="**/*.css"/>
+ </fileset>
+ </copy>
+ <touch file="${build-four.dir}/library.complete" verbose="no"/>
+ <stopwatch name="four.lib.timer" action="total"/>
+ </target>
+
+ <target name="four.pre-comp" depends="four.lib">
+ <uptodate property="four.comp.available" targetfile="${build-four.dir}/compiler.complete">
+ <srcfiles dir="${src.dir}/compiler"/>
+ </uptodate>
+ </target>
+
+ <target name="four.comp" depends="four.pre-comp" unless="four.comp.available">
+ <stopwatch name="four.comp.timer"/>
+ <mkdir dir="${build-four.dir}/classes/compiler"/>
+ <scalac
+ srcdir="${src.dir}/compiler"
+ destdir="${build-four.dir}/classes/compiler"
+ target="jvm-1.4">
+ <include name="**/*.scala"/>
+ <classpath>
+ <pathelement location="${build-four.dir}/classes/library"/>
+ <pathelement location="${build-four.dir}/classes/compiler"/>
+ <pathelement location="${fjbg.jar}"/>
+ <pathelement location="${msil.jar}"/>
+ <pathelement location="${jline.jar}"/>
+ <pathelement location="${ant.jar}"/>
+ </classpath>
+ </scalac>
+ <propertyfile file="${build-four.dir}/classes/compiler/compiler.properties">
+ <entry key="version.number" value="${version.number}"/>
+ <entry key="copyright.string" value="${copyright.string}"/>
+ </propertyfile>
+ <copy todir="${build-four.dir}/classes/compiler">
+ <fileset dir="${src.dir}/compiler">
+ <include name="**/*.tmpl"/>
+ <include name="**/*.xml"/>
+ <include name="**/*.js"/>
+ <include name="**/*.css"/>
+ </fileset>
+ </copy>
+ <touch file="${build-four.dir}/compiler.complete" verbose="no"/>
+ <stopwatch name="four.comp.timer" action="total"/>
+ </target>
+
+ <target name="four.done" depends="four.comp"/>
+
+ <target name="four.clean">
+ <delete dir="${build-four.dir}" includeemptydirs="yes" quiet="yes" failonerror="no"/>
+ </target>
+
+<!-- ===========================================================================
BOOTRAPING TEST AND TEST SUITE
============================================================================ -->
@@ -961,7 +1102,8 @@ MAKE SABBUS JAR (to remove once sabbus is part of starr library)
<mkdir dir="${build.dir}/sabbus"/>
<scalac
srcdir="${src.dir}/compiler/scala/tools/ant/sabbus/"
- destdir="${build.dir}/sabbus">
+ destdir="${build.dir}/sabbus"
+ target="jvm-1.5">
<include name="*.scala"/>
<classpath>
<pathelement location="${lib.starr.jar}"/>
diff --git a/src/compiler/scala/tools/ant/sabbus/Make.scala b/src/compiler/scala/tools/ant/sabbus/Make.scala
index 32ef5e0414..21ac55ceb9 100644
--- a/src/compiler/scala/tools/ant/sabbus/Make.scala
+++ b/src/compiler/scala/tools/ant/sabbus/Make.scala
@@ -26,6 +26,10 @@ class Make extends Task {
}
}
+ def setTarget(input: String): Unit = {
+ compTarget = Some(input)
+ }
+
def setCompilationPath(input: Path): Unit = {
if (compilationPath.isEmpty) compilationPath = Some(input)
else compilationPath.get.append(input)
@@ -74,6 +78,7 @@ class Make extends Task {
private var id: Option[String] = None
private var params: Option[String] = None
+ private var compTarget: Option[String] = None
private var compilationPath: Option[Path] = None
private var sourcePath: Option[Path] = None
private var compilerPath: Option[Path] = None
@@ -84,6 +89,7 @@ class Make extends Task {
if (compilerPath.isEmpty) error("Mandatory attribute 'compilerpath' is not set.")
val settings = new Settings
if (!destinationDir.isEmpty) settings.d = destinationDir.get
+ if (!compTarget.isEmpty) settings.target = compTarget.get
if (!compilationPath.isEmpty) settings.classpath = compilationPath.get
if (!sourcePath.isEmpty) settings.sourcepath = sourcePath.get
if (!params.isEmpty) settings.more = params.get