diff options
Diffstat (limited to 'build.xml')
-rw-r--r-- | build.xml | 120 |
1 files changed, 106 insertions, 14 deletions
@@ -123,6 +123,18 @@ END-USER TARGETS <antcall target="palo.done"/> </target> + <target name="fastlocker" + description="Buildlocker without extra fuss"> + <antcall target="locker.unlock"/> + <antcall target="locker.done"/> + </target> + + <target name="buildlocker" + description="Does the same for locker as build does for quick"> + <antcall target="locker.unlock"/> + <antcall target="palo.bin"/> + </target> + <target name="newlibs" description="Requires libraries (MSIL, FJBG) to be rebuilt. Add this target before any other if class file format is incompatible."> <property name="libs.outdated" value="yes"/> @@ -189,9 +201,6 @@ PROPERTIES <!-- if ANT_OPTS is already set by the environment, it will be unaltered, but if it is unset it will take this default value. --> <property name="env.ANT_OPTS" value="-Xms1536M -Xmx1536M -Xss1M -XX:MaxPermSize=192M -XX:+UseParallelGC" /> - - <!-- to find max heap usage: -Xaprof ; currently at 980M for locker.comp --> - <echo message="Forking with JVM opts: ${env.ANT_OPTS} ${jvm.opts}" /> <property name="scalacfork.jvmargs" @@ -216,15 +225,14 @@ INITIALISATION <property name="scalac.args.optimise" value=""/> <!-- scalac.args.quickonly are added to quick.* targets but not others (particularly, locker.) This is to facilitate testing new command line options which do not yet exist in starr. --> - <property name="scalac.args.quickonly" value=""/> - + <property name="scalac.args.quickonly" value=""/> <property name="scalac.args.all" value="${scalac.args} ${scalac.args.optimise}"/> <property name="scalac.args.quick" value="${scalac.args.all} ${scalac.args.quickonly}"/> <!-- Setting-up Ant contrib tasks --> <taskdef resource="net/sf/antcontrib/antlib.xml" classpath="${lib.dir}/ant/ant-contrib.jar"/> <!-- This is the start time for the distribution --> <tstamp prefix="time"> - <format property="human" pattern="d MMMM yyyy, HH:mm:ss"/> + <format property="human" pattern="d MMMM yyyy, HH:mm:ss" locale="en,US"/> <format property="short" pattern="yyyyMMddHHmmss"/> </tstamp> <!-- Find out whether we are running on Windows --> @@ -236,7 +244,6 @@ INITIALISATION <exec osfamily="windows" executable="tools/get-scala-revision.bat" outputproperty="git.describe" failifexecutionfails="false" /> <!-- some default in case something went wrong getting the revision --> <property name="git.describe" value="-unknown-"/> - <property name="init.avail" value="yes"/> <!-- Generating version number --> @@ -244,10 +251,14 @@ INITIALISATION <property name="version.number" value="${version.major}.${version.minor}.${version.patch}.${git.describe}"/> - + <!-- And print-out what we are building --> - <echo level="info" message="Build number is '${version.number}'"/> - <echo level="info" message="Built ${time.human} from revision ${git.describe} with ${java.vm.name} ${java.version}"/> + <echo message=" build time: ${time.human}" /> + <echo message=" java version: ${java.vm.name} ${java.version}" /> + <echo message=" java args: ${env.ANT_OPTS} ${jvm.opts}" /> + <echo message=" javac args: ${javac.args}" /> + <echo message=" scalac args: ${scalac.args}" /> + <echo message=" build number: ${version.number}" /> <!-- Local libs (developer use.) --> <mkdir dir="${lib-extra.dir}"/> @@ -412,12 +423,34 @@ LOCAL REFERENCE BUILD (LOCKER) <delete dir="${build-locker.dir}" includeemptydirs="yes" quiet="yes" failonerror="no"/> </target> - <target name="locker.unlock"> - <delete file="${build-locker.dir}/all.complete"/> + <target name="locker.unlock.pre-lib"> + <uptodate property="locker.lib.available" targetfile="${build-locker.dir}/library.complete"> + <srcfiles dir="${src.dir}"> + <include name="library/**"/> + </srcfiles> + </uptodate> + </target> + + <target name="locker.unlock.lib" depends="locker.unlock.pre-lib" unless="locker.lib.available"> <delete file="${build-locker.dir}/library.complete"/> + </target> + + <target name="locker.unlock.pre-comp" depends="locker.unlock.lib"> + <uptodate property="locker.comp.available" targetfile="${build-locker.dir}/compiler.complete"> + <srcfiles dir="${src.dir}"> + <include name="compiler/**"/> + </srcfiles> + </uptodate> + </target> + + <target name="locker.unlock.comp" depends="locker.unlock.pre-comp" unless="locker.comp.available"> <delete file="${build-locker.dir}/compiler.complete"/> </target> + <target name="locker.unlock" depends="locker.unlock.comp"> + <delete file="${build-locker.dir}/all.complete" /> + </target> + <!-- =========================================================================== PACKED LOCKER BUILD (PALO) ============================================================================ --> @@ -450,7 +483,10 @@ PACKED LOCKER BUILD (PALO) <jar destfile="${build-palo.dir}/lib/scala-compiler.jar" manifest="${basedir}/META-INF/MANIFEST.MF"> <fileset dir="${build-locker.dir}/classes/compiler"/> <!-- filemode / dirmode: see trac ticket #1294 --> + <zipfileset dirmode="755" filemode="644" src="${lib.dir}/fjbg.jar"/> + <zipfileset dirmode="755" filemode="644" src="${lib.dir}/msil.jar"/> </jar> + <copy file="${jline.jar}" toDir="${build-palo.dir}/lib"/> </target> <target name="palo.done" depends="palo.comp"> @@ -460,6 +496,51 @@ PACKED LOCKER BUILD (PALO) <delete dir="${build-palo.dir}" includeemptydirs="yes" quiet="yes" failonerror="no"/> </target> + <target name="palo.pre-bin" depends="palo.comp"> + <uptodate property="palo.bin.available" targetfile="${build-locker.dir}/bin.complete"> + <srcfiles dir="${src.dir}"> + <include name="compiler/scala/tools/ant/templates/**"/> + </srcfiles> + </uptodate> + </target> + + <target name="palo.bin" depends="palo.pre-bin" unless="palo.bin.available"> + <taskdef name="palo-bin" classname="scala.tools.ant.ScalaTool"> + <classpath> + <pathelement location="${build-palo.dir}/lib/scala-library.jar"/> + <pathelement location="${build-palo.dir}/lib/scala-compiler.jar"/> + <pathelement location="${build-palo.dir}/lib/jline.jar"/> + </classpath> + </taskdef> + <mkdir dir="${build-palo.dir}/bin"/> + <palo-bin + file="${build-palo.dir}/bin/scala" + class="scala.tools.nsc.MainGenericRunner" + javaFlags="${java.flags}"/> + <palo-bin + file="${build-palo.dir}/bin/scalac" + class="scala.tools.nsc.Main" + javaFlags="${java.flags}"/> + <palo-bin + file="${build-palo.dir}/bin/scaladoc" + class="scala.tools.nsc.ScalaDoc" + javaFlags="${java.flags}"/> + <palo-bin + file="${build-palo.dir}/bin/fsc" + class="scala.tools.nsc.CompileClient" + javaFlags="${java.flags}"/> + <palo-bin + file="${build-palo.dir}/bin/scalap" + class="scala.tools.scalap.Main" + javaFlags="${java.flags}"/> + <chmod perm="ugo+rx" file="${build-palo.dir}/bin/scala"/> + <chmod perm="ugo+rx" file="${build-palo.dir}/bin/scalac"/> + <chmod perm="ugo+rx" file="${build-palo.dir}/bin/scaladoc"/> + <chmod perm="ugo+rx" file="${build-palo.dir}/bin/fsc"/> + <chmod perm="ugo+rx" file="${build-palo.dir}/bin/scalap"/> + <touch file="${build-locker.dir}/bin.complete" verbose="no"/> + </target> + <!-- =========================================================================== QUICK BUILD (QUICK) ============================================================================ --> @@ -662,7 +743,14 @@ QUICK BUILD (QUICK) <stopwatch name="quick.plugins.timer" action="total"/> </target> - <target name="quick.scalacheck" depends="quick.plugins"> + <target name="quick.pre-scalacheck" depends="quick.plugins"> + <uptodate property="quick.scalacheck.available" targetfile="${build-quick.dir}/scalacheck.complete"> + <srcfiles dir="${src.dir}/scalacheck"/> + </uptodate> + </target> + + <target name="quick.scalacheck" depends="quick.pre-scalacheck" unless="quick.scalacheck.available"> + <stopwatch name="quick.scalacheck.timer"/> <mkdir dir="${build-quick.dir}/classes/scalacheck"/> <scalacfork destdir="${build-quick.dir}/classes/scalacheck" @@ -676,6 +764,8 @@ QUICK BUILD (QUICK) <pathelement location="${build-quick.dir}/classes/scalacheck"/> </compilationpath> </scalacfork> + <touch file="${build-quick.dir}/scalacheck.complete" verbose="no"/> + <stopwatch name="quick.scalacheck.timer" action="total"/> </target> <target name="quick.pre-scalap" depends="quick.scalacheck"> @@ -1688,7 +1778,9 @@ DISTRIBUTION </copy> <mkdir dir="${dist.dir}/doc/scala-devel-docs/examples"/> <copy toDir="${dist.dir}/doc/scala-devel-docs/examples"> - <fileset dir="${docs.dir}/examples"/> + <fileset dir="${docs.dir}/examples"> + <exclude name="**/*.desired.sha1"/> + </fileset> </copy> <mkdir dir="${dist.dir}/doc/scala-devel-docs/tools"/> <copy toDir="${dist.dir}/doc/scala-devel-docs/tools"> |