summaryrefslogtreecommitdiff
path: root/src/build
diff options
context:
space:
mode:
Diffstat (limited to 'src/build')
-rw-r--r--src/build/four.xml32
-rw-r--r--src/build/msil.xml38
2 files changed, 55 insertions, 15 deletions
diff --git a/src/build/four.xml b/src/build/four.xml
index 6e31124203..6dd92f34f4 100644
--- a/src/build/four.xml
+++ b/src/build/four.xml
@@ -21,17 +21,37 @@ PROPERTIES
<!-- ===========================================================================
JAVA 1.4 LIBRARY AND COMPILER BUILD (FOUR)
============================================================================ -->
-
+
<target name="four.start"/>
-
+
<target name="four.src" depends="four.start">
+ <!-- simple sync & copy overwrite is not very nice, because overwritten files
+ will then have a new timestamp, and be recompiled -->
<mkdir dir="${build-four-src.dir}"/>
- <sync todir="${build-four-src.dir}">
- <fileset dir="${src.dir}/library"/>
- </sync>
<copy todir="${build-four-src.dir}" overwrite="true">
- <fileset dir="${src.dir}/jvm14-library"/>
+ <fileset dir="${src.dir}/library">
+ <and>
+ <present present="srconly" targetdir="${src.dir}/jvm14-library"/>
+ <different targetdir="${build-four-src.dir}" ignoreFileTimes="true"/>
+ </and>
+ </fileset>
+ <fileset dir="${src.dir}/jvm14-library">
+ <different targetdir="${build-four-src.dir}" ignoreFileTimes="true"/>
+ </fileset>
</copy>
+ <delete verbose="true">
+ <difference>
+ <fileset dir="${build-four-src.dir}"/>
+ <union>
+ <fileset dir="${build-four-src.dir}">
+ <present targetdir="${src.dir}/jvm14-library"/>
+ </fileset>
+ <fileset dir="${build-four-src.dir}">
+ <present targetdir="${src.dir}/library"/>
+ </fileset>
+ </union>
+ </difference>
+ </delete>
</target>
<target name="four.lib" depends="four.src">
diff --git a/src/build/msil.xml b/src/build/msil.xml
index 9167908304..a5e179e57b 100644
--- a/src/build/msil.xml
+++ b/src/build/msil.xml
@@ -6,11 +6,12 @@
SuperSabbus extension for the MSIL library targeted for the dotnet framework. THIS FILE IS NOT STAND-ALONE AND SHOULD ONLY BE USED THROUGH ENTRY POINTS IN SUPERSABBUS.
</description>
- <!-- TODO: run test suite (or at least a part of it) on .NET -->
- <!-- TODO: generate sbaz package scala-msil -->
<!-- TODO: test / make it work on Windows (use <ilasm/> task) -->
- <!-- TODO: (?) generate the runner scripts with scala.tools.ant.ScalaTool -->
+ <!-- TODO: for separate compilation: make sure only files that have been changed
+ since last run are re-compiled -->
+ <!-- TODO: run test suite (or at least a part of it) on .NET -->
<!-- TODO: generate scaladoc of .NET library -->
+ <!-- TODO: (?) generate the runner scripts with scala.tools.ant.ScalaTool -->
<!-- ===========================================================================
PROPERTIES
@@ -95,13 +96,33 @@ MSIL BUILD
<target name="msil.start" depends="msil.init"/>
<target name="msil.src" depends="msil.start">
+ <!-- simple sync & copy overwrite is not very nice, because overwritten files
+ will then have a new timestamp, and be recompiled -->
<mkdir dir="${build-msil-src.dir}"/>
- <sync todir="${build-msil-src.dir}">
- <fileset dir="${src.dir}/library"/>
- </sync>
<copy todir="${build-msil-src.dir}" overwrite="true">
- <fileset dir="${src.dir}/dotnet-library"/>
+ <fileset dir="${src.dir}/library">
+ <and>
+ <present present="srconly" targetdir="${src.dir}/dotnet-library"/>
+ <different targetdir="${build-msil-src.dir}" ignoreFileTimes="true"/>
+ </and>
+ </fileset>
+ <fileset dir="${src.dir}/dotnet-library">
+ <different targetdir="${build-msil-src.dir}" ignoreFileTimes="true"/>
+ </fileset>
</copy>
+ <delete verbose="true">
+ <difference>
+ <fileset dir="${build-msil-src.dir}"/>
+ <union>
+ <fileset dir="${build-msil-src.dir}">
+ <present targetdir="${src.dir}/dotnet-library"/>
+ </fileset>
+ <fileset dir="${build-msil-src.dir}">
+ <present targetdir="${src.dir}/library"/>
+ </fileset>
+ </union>
+ </difference>
+ </delete>
</target>
<target name="msil.lib" depends="msil.src">
@@ -113,8 +134,7 @@ MSIL BUILD
srcdir="${build-msil-src.dir}"
destdir="${build-msil.dir}/library"
target="msil"
- assemname="predef" assemrefs="${lib.dir}"
- failonerror="false">
+ assemname="predef" assemrefs="${lib.dir}">
<include name="**/*.scala"/>
<exclude name="scala/ScalaObject.scala"/>
</scalac>