@@ -123,6 +123,18 @@ END-USER TARGETS
123123 <antcall target =" palo.done" />
124124 </target >
125125
126+ <target name =" fastlocker"
127+ description =" Buildlocker without extra fuss" >
128+ <antcall target =" locker.unlock" />
129+ <antcall target =" locker.done" />
130+ </target >
131+
132+ <target name =" buildlocker"
133+ description =" Does the same for locker as build does for quick" >
134+ <antcall target =" locker.unlock" />
135+ <antcall target =" palo.bin" />
136+ </target >
137+
126138 <target name =" newlibs"
127139 description =" Requires libraries (MSIL, FJBG) to be rebuilt. Add this target before any other if class file format is incompatible." >
128140 <property name =" libs.outdated" value =" yes" />
@@ -189,9 +201,6 @@ PROPERTIES
189201 <!-- if ANT_OPTS is already set by the environment, it will be unaltered,
190202 but if it is unset it will take this default value. -->
191203 <property name =" env.ANT_OPTS" value =" -Xms1536M -Xmx1536M -Xss1M -XX:MaxPermSize=192M -XX:+UseParallelGC" />
192-
193- <!-- to find max heap usage: -Xaprof ; currently at 980M for locker.comp -->
194- <echo message =" Forking with JVM opts: ${ env.ANT_OPTS } ${ jvm.opts } " />
195204
196205 <property
197206 name =" scalacfork.jvmargs"
@@ -216,15 +225,14 @@ INITIALISATION
216225 <property name =" scalac.args.optimise" value =" " />
217226 <!-- scalac.args.quickonly are added to quick.* targets but not others (particularly, locker.)
218227 This is to facilitate testing new command line options which do not yet exist in starr. -->
219- <property name =" scalac.args.quickonly" value =" " />
220-
228+ <property name =" scalac.args.quickonly" value =" " />
221229 <property name =" scalac.args.all" value =" ${ scalac.args } ${ scalac.args.optimise } " />
222230 <property name =" scalac.args.quick" value =" ${ scalac.args.all } ${ scalac.args.quickonly } " />
223231 <!-- Setting-up Ant contrib tasks -->
224232 <taskdef resource =" net/sf/antcontrib/antlib.xml" classpath =" ${ lib.dir } /ant/ant-contrib.jar" />
225233 <!-- This is the start time for the distribution -->
226234 <tstamp prefix =" time" >
227- <format property =" human" pattern =" d MMMM yyyy, HH:mm:ss" />
235+ <format property =" human" pattern =" d MMMM yyyy, HH:mm:ss" locale = " en,US " />
228236 <format property =" short" pattern =" yyyyMMddHHmmss" />
229237 </tstamp >
230238 <!-- Find out whether we are running on Windows -->
@@ -236,18 +244,21 @@ INITIALISATION
236244 <exec osfamily =" windows" executable =" tools/get-scala-revision.bat" outputproperty =" git.describe" failifexecutionfails =" false" />
237245 <!-- some default in case something went wrong getting the revision -->
238246 <property name =" git.describe" value =" -unknown-" />
239-
240247 <property name =" init.avail" value =" yes" />
241248
242249 <!-- Generating version number -->
243250 <property file =" ${ basedir } /build.number" />
244251 <property
245252 name =" version.number"
246253 value =" ${ version.major } .${ version.minor } .${ version.patch } .${ git.describe } " />
247-
254+
248255 <!-- And print-out what we are building -->
249- <echo level =" info" message =" Build number is '${ version.number } '" />
250- <echo level =" info" message =" Built ${ time.human } from revision ${ git.describe } with ${ java.vm.name } ${ java.version } " />
256+ <echo message =" build time: ${ time.human } " />
257+ <echo message =" java version: ${ java.vm.name } ${ java.version } " />
258+ <echo message =" java args: ${ env.ANT_OPTS } ${ jvm.opts } " />
259+ <echo message =" javac args: ${ javac.args } " />
260+ <echo message =" scalac args: ${ scalac.args } " />
261+ <echo message =" build number: ${ version.number } " />
251262
252263 <!-- Local libs (developer use.) -->
253264 <mkdir dir =" ${ lib-extra.dir } " />
@@ -412,12 +423,34 @@ LOCAL REFERENCE BUILD (LOCKER)
412423 <delete dir =" ${ build-locker.dir } " includeemptydirs =" yes" quiet =" yes" failonerror =" no" />
413424 </target >
414425
415- <target name =" locker.unlock" >
416- <delete file =" ${ build-locker.dir } /all.complete" />
426+ <target name =" locker.unlock.pre-lib" >
427+ <uptodate property =" locker.lib.available" targetfile =" ${ build-locker.dir } /library.complete" >
428+ <srcfiles dir =" ${ src.dir } " >
429+ <include name =" library/**" />
430+ </srcfiles >
431+ </uptodate >
432+ </target >
433+
434+ <target name =" locker.unlock.lib" depends =" locker.unlock.pre-lib" unless =" locker.lib.available" >
417435 <delete file =" ${ build-locker.dir } /library.complete" />
436+ </target >
437+
438+ <target name =" locker.unlock.pre-comp" depends =" locker.unlock.lib" >
439+ <uptodate property =" locker.comp.available" targetfile =" ${ build-locker.dir } /compiler.complete" >
440+ <srcfiles dir =" ${ src.dir } " >
441+ <include name =" compiler/**" />
442+ </srcfiles >
443+ </uptodate >
444+ </target >
445+
446+ <target name =" locker.unlock.comp" depends =" locker.unlock.pre-comp" unless =" locker.comp.available" >
418447 <delete file =" ${ build-locker.dir } /compiler.complete" />
419448 </target >
420449
450+ <target name =" locker.unlock" depends =" locker.unlock.comp" >
451+ <delete file =" ${ build-locker.dir } /all.complete" />
452+ </target >
453+
421454<!-- ===========================================================================
422455PACKED LOCKER BUILD (PALO)
423456============================================================================ -->
@@ -450,7 +483,10 @@ PACKED LOCKER BUILD (PALO)
450483 <jar destfile =" ${ build-palo.dir } /lib/scala-compiler.jar" manifest =" ${ basedir } /META-INF/MANIFEST.MF" >
451484 <fileset dir =" ${ build-locker.dir } /classes/compiler" />
452485 <!-- filemode / dirmode: see trac ticket #1294 -->
486+ <zipfileset dirmode =" 755" filemode =" 644" src =" ${ lib.dir } /fjbg.jar" />
487+ <zipfileset dirmode =" 755" filemode =" 644" src =" ${ lib.dir } /msil.jar" />
453488 </jar >
489+ <copy file =" ${ jline.jar } " toDir =" ${ build-palo.dir } /lib" />
454490 </target >
455491
456492 <target name =" palo.done" depends =" palo.comp" >
@@ -460,6 +496,51 @@ PACKED LOCKER BUILD (PALO)
460496 <delete dir =" ${ build-palo.dir } " includeemptydirs =" yes" quiet =" yes" failonerror =" no" />
461497 </target >
462498
499+ <target name =" palo.pre-bin" depends =" palo.comp" >
500+ <uptodate property =" palo.bin.available" targetfile =" ${ build-locker.dir } /bin.complete" >
501+ <srcfiles dir =" ${ src.dir } " >
502+ <include name =" compiler/scala/tools/ant/templates/**" />
503+ </srcfiles >
504+ </uptodate >
505+ </target >
506+
507+ <target name =" palo.bin" depends =" palo.pre-bin" unless =" palo.bin.available" >
508+ <taskdef name =" palo-bin" classname =" scala.tools.ant.ScalaTool" >
509+ <classpath >
510+ <pathelement location =" ${ build-palo.dir } /lib/scala-library.jar" />
511+ <pathelement location =" ${ build-palo.dir } /lib/scala-compiler.jar" />
512+ <pathelement location =" ${ build-palo.dir } /lib/jline.jar" />
513+ </classpath >
514+ </taskdef >
515+ <mkdir dir =" ${ build-palo.dir } /bin" />
516+ <palo-bin
517+ file =" ${ build-palo.dir } /bin/scala"
518+ class =" scala.tools.nsc.MainGenericRunner"
519+ javaFlags =" ${ java.flags } " />
520+ <palo-bin
521+ file =" ${ build-palo.dir } /bin/scalac"
522+ class =" scala.tools.nsc.Main"
523+ javaFlags =" ${ java.flags } " />
524+ <palo-bin
525+ file =" ${ build-palo.dir } /bin/scaladoc"
526+ class =" scala.tools.nsc.ScalaDoc"
527+ javaFlags =" ${ java.flags } " />
528+ <palo-bin
529+ file =" ${ build-palo.dir } /bin/fsc"
530+ class =" scala.tools.nsc.CompileClient"
531+ javaFlags =" ${ java.flags } " />
532+ <palo-bin
533+ file =" ${ build-palo.dir } /bin/scalap"
534+ class =" scala.tools.scalap.Main"
535+ javaFlags =" ${ java.flags } " />
536+ <chmod perm =" ugo+rx" file =" ${ build-palo.dir } /bin/scala" />
537+ <chmod perm =" ugo+rx" file =" ${ build-palo.dir } /bin/scalac" />
538+ <chmod perm =" ugo+rx" file =" ${ build-palo.dir } /bin/scaladoc" />
539+ <chmod perm =" ugo+rx" file =" ${ build-palo.dir } /bin/fsc" />
540+ <chmod perm =" ugo+rx" file =" ${ build-palo.dir } /bin/scalap" />
541+ <touch file =" ${ build-locker.dir } /bin.complete" verbose =" no" />
542+ </target >
543+
463544<!-- ===========================================================================
464545QUICK BUILD (QUICK)
465546============================================================================ -->
@@ -662,7 +743,14 @@ QUICK BUILD (QUICK)
662743 <stopwatch name =" quick.plugins.timer" action =" total" />
663744 </target >
664745
665- <target name =" quick.scalacheck" depends =" quick.plugins" >
746+ <target name =" quick.pre-scalacheck" depends =" quick.plugins" >
747+ <uptodate property =" quick.scalacheck.available" targetfile =" ${ build-quick.dir } /scalacheck.complete" >
748+ <srcfiles dir =" ${ src.dir } /scalacheck" />
749+ </uptodate >
750+ </target >
751+
752+ <target name =" quick.scalacheck" depends =" quick.pre-scalacheck" unless =" quick.scalacheck.available" >
753+ <stopwatch name =" quick.scalacheck.timer" />
666754 <mkdir dir =" ${ build-quick.dir } /classes/scalacheck" />
667755 <scalacfork
668756 destdir =" ${ build-quick.dir } /classes/scalacheck"
@@ -676,6 +764,8 @@ QUICK BUILD (QUICK)
676764 <pathelement location =" ${ build-quick.dir } /classes/scalacheck" />
677765 </compilationpath >
678766 </scalacfork >
767+ <touch file =" ${ build-quick.dir } /scalacheck.complete" verbose =" no" />
768+ <stopwatch name =" quick.scalacheck.timer" action =" total" />
679769 </target >
680770
681771 <target name =" quick.pre-scalap" depends =" quick.scalacheck" >
@@ -1688,7 +1778,9 @@ DISTRIBUTION
16881778 </copy >
16891779 <mkdir dir =" ${ dist.dir } /doc/scala-devel-docs/examples" />
16901780 <copy toDir =" ${ dist.dir } /doc/scala-devel-docs/examples" >
1691- <fileset dir =" ${ docs.dir } /examples" />
1781+ <fileset dir =" ${ docs.dir } /examples" >
1782+ <exclude name =" **/*.desired.sha1" />
1783+ </fileset >
16921784 </copy >
16931785 <mkdir dir =" ${ dist.dir } /doc/scala-devel-docs/tools" />
16941786 <copy toDir =" ${ dist.dir } /doc/scala-devel-docs/tools" >
0 commit comments