/[cvs]/jsr166/build.xml
ViewVC logotype

Diff of /jsr166/build.xml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.50 by tim, Tue Aug 5 04:03:38 2003 UTC revision 1.115 by jsr166, Sun Jan 20 06:11:07 2013 UTC
# Line 8  Line 8 
8    
9    User-specific settings are read from user.properties.    User-specific settings are read from user.properties.
10    See user.properties.sample for an explanation of some useful settings.    See user.properties.sample for an explanation of some useful settings.
11    
12      The repository contains all dependencies except for ant and the JDK
13      itself.  Because the JDK version matters and because different
14      targets require different JDKs, we assume that users have created a
15      hierarchy containing:
16      $HOME/jdk/jdk6
17      $HOME/jdk/jdk7
18      $HOME/jdk/jdk8
19      where each of the above is a JDK or a symlink to same, and
20      $HOME/jdk/src/jdk6
21      $HOME/jdk/src/jdk7
22      $HOME/jdk/src/jdk8
23      where each of the above is a complete JDK source tree
24      (e.g. mercurial forest) or a symlink to same.
25  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
26    </description>    </description>
27    
# Line 21  Line 35 
35    
36    
37    <!-- Compilation options -->    <!-- Compilation options -->
38    <property name="build.sourcelevel"    value="1.5"/>    <property name="build.sourcelevel"    value="6"/>
   <property name="build.docsourcelevel" value="1.4"/>  
39    <property name="build.debug"          value="true"/>    <property name="build.debug"          value="true"/>
40    <property name="build.debuglevel"     value="source,lines,vars"/>    <property name="build.debuglevel"     value="source,lines,vars"/>
41    <property name="build.deprecation"    value="false"/>    <property name="build.deprecation"    value="false"/>
42    
43    <!-- Build locations -->    <!-- Build locations -->
44    <property name="build.dir"            location="build"/>    <property name="build.dir"                   location="build"/>
45    <property name="build.classes.dir"    location="${build.dir}/classes"/>    <property name="build.classes.dir"           location="${build.dir}/classes"/>
46    <property name="build.emulation.dir"  location="${build.dir}/emulation"/>    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>
47    <property name="build.testcases.dir"  location="${build.dir}/testcases"/>    <property name="build.loops.dir"             location="${build.dir}/loops"/>
48    <property name="build.lib.dir"        location="${build.dir}/lib"/>    <property name="build.reports.dir"           location="${build.dir}/reports"/>
49    <property name="build.ant.dir"        location="${build.dir}/ant"/>  
50    <property name="build.javadocs.dir"   location="${build.dir}/javadocs"/>    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
51    <property name="build.stripped.dir"   location="${build.dir}/stripped"/>    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>
52    <property name="build.reports.dir"    location="${build.dir}/reports"/>    <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/>
53    <property name="build.doccheck.dir"   location="${build.dir}/doccheck"/>    <property name="build.4jdk7.docs.dir"        location="${build.4jdk7.dir}/docs"/>
54    <property name="build.filter.src.dir" location="${build.dir}/filtersrc"/>  
55    <property name="build.filter.doccheck.dir" location="${build.dir}/filterdocchk"/>    <property name="build.jsr166x.dir"           location="${build.dir}/jsr166x"/>
56      <property name="build.jsr166y.dir"           location="${build.dir}/jsr166y"/>
57      <property name="build.jsr166e.dir"           location="${build.dir}/jsr166e"/>
58      <property name="build.extra166y.dir"         location="${build.dir}/extra166y"/>
59    
60      <property name="build.jsr166x.classes.dir"    location="${build.jsr166x.dir}/classes"/>
61      <property name="build.jsr166y.classes.dir"    location="${build.jsr166y.dir}/classes"/>
62      <property name="build.jsr166e.classes.dir"    location="${build.jsr166e.dir}/classes"/>
63      <property name="build.extra166y.classes.dir"  location="${build.extra166y.dir}/classes"/>
64    
65      <!-- JDK binary locations -->
66      <property name="jdks.home"  location="${user.home}/jdk"/>
67    
68      <macrodef name="defjdklocations">
69        <attribute name="v"/>
70        <sequential>
71        <property name="jdk@{v}.home"   location="${jdks.home}/jdk@{v}"/>
72        <property name="java@{v}"       location="${jdk@{v}.home}/bin/java"/>
73        <property name="javac@{v}"      location="${jdk@{v}.home}/bin/javac"/>
74        <property name="javadoc@{v}"    location="${jdk@{v}.home}/bin/javadoc"/>
75        <property name="bootdir@{v}"    location="${jdk@{v}.home}/jre/lib"/>
76        <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/share/classes"/>
77        <property name="bootclasspath@{v}"
78         value="${bootdir@{v}}/resources.jar:${bootdir@{v}}/rt.jar:${bootdir@{v}}/jsse.jar:${bootdir@{v}}/jce.jar:${bootdir@{v}}/:${bootdir@{v}}/charsets.jar"/>
79        </sequential>
80      </macrodef>
81    
82      <defjdklocations v="6"/>
83      <defjdklocations v="7"/>
84      <defjdklocations v="8"/>
85    
86      <macrodef name="run-tck-tests">
87        <attribute name="jvm"/>
88        <attribute name="tck.classes"/>
89        <attribute name="product.jar" default="${product.jar}"/>
90        <attribute name="jvmflags" default=""/>
91        <sequential>
92        <java classname="JSR166TestCase"
93              jvm="@{jvm}" fork="true">
94            <jvmarg value="-Xbootclasspath/p:@{product.jar}"/>
95            <jvmarg line="@{jvmflags}"/>
96            <classpath>
97              <pathelement location="${junit.jar}"/>
98              <pathelement location="@{tck.classes}"/>
99            </classpath>
100        </java>
101        </sequential>
102      </macrodef>
103    
104    <!-- Source locations -->    <!-- Source locations -->
105    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
   <property name="emulation.src.dir"    location="${basedir}/src/emulation"/>  
106    <property name="test.src.dir"         location="${basedir}/src/test"/>    <property name="test.src.dir"         location="${basedir}/src/test"/>
107    <property name="ant.src.dir"          location="${basedir}/etc/ant"/>    <property name="loops.src.dir"        location="${basedir}/src/loops"/>
108    <property name="stylesheet.dir"       location="${basedir}/etc/xsl"/>    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>
109      <property name="jtreg.src.dir"        location="${test.src.dir}/jtreg"/>
110    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
111    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
112      <property name="topsrc.dir"           location="${basedir}/src"/>
113      <property name="4jdk7src.dir"         location="${topsrc.dir}/jdk7"/>
114      <property name="jsr166xsrc.dir"       location="${topsrc.dir}/jsr166x"/>
115      <property name="jsr166ysrc.dir"       location="${topsrc.dir}/jsr166y"/>
116      <property name="jsr166esrc.dir"       location="${topsrc.dir}/jsr166e"/>
117      <property name="extra166ysrc.dir"     location="${topsrc.dir}/extra166y"/>
118    
119    <!-- Distribution locations -->    <!-- Distribution locations -->
120    <property name="dist.javadocs.dir"    location="${dist.dir}/docs"/>    <property name="dist.javadocs.dir"          location="${dist.dir}/jsr166.docs"/>
121      <property name="dist.4jdk7.docs.dir"        location="${dist.dir}/jsr166-4jdk7.docs"/>
122      <property name="dist.jsr166xjavadocs.dir"   location="${dist.dir}/jsr166x.docs"/>
123      <property name="dist.jsr166yjavadocs.dir"   location="${dist.dir}/jsr166y.docs"/>
124      <property name="dist.jsr166ejavadocs.dir"   location="${dist.dir}/jsr166e.docs"/>
125      <property name="dist.extra166yjavadocs.dir" location="${dist.dir}/extra166y.docs"/>
126    
127    <!-- Jar locations -->    <!-- Jar locations -->
128    <property name="product.jar"          location="${build.lib.dir}/jsr166.jar"/>    <property name="product.jar"      location="${build.dir}/jsr166.jar"/>
129    <property name="junit.jar"            location="${lib.dir}/junit.jar"/>    <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>
130    <property name="rt.jar"               location="${java.home}/lib/rt.jar"/>    <property name="jsr166x.jar"      location="${build.jsr166x.dir}/jsr166x.jar"/>
131    <property name="sinjdoc.jar"          location="${lib.dir}/sinjdoc.jar"/>    <property name="jsr166y.jar"      location="${build.jsr166y.dir}/jsr166y.jar"/>
132      <property name="jsr166e.jar"      location="${build.jsr166e.dir}/jsr166e.jar"/>
133      <property name="extra166y.jar"    location="${build.extra166y.dir}/extra166y.jar"/>
134    <!-- Files excluded from dist-docs and emulation jar -->    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
135    <patternset id="unsafe.exclusion">  
136      <exclude name="java/util/Random.*"/>    <!-- Bootclasspath argument -->
137      <exclude name="sun/misc/Unsafe.*"/>    <property name="bootclasspath.args"   value="-Xbootclasspath/p:${product.jar}"/>
138    </patternset>  
139      <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
140    <!-- Files excludes from emulation jar -->    <property name="jdkapi5docs.url"      value="http://docs.oracle.com/javase/1.5.0/docs/api/"/>
141    <patternset id="atomic.exclusion">    <property name="jdkapi6docs.url"      value="http://docs.oracle.com/javase/6/docs/api/"/>
142      <exclude name="java/util/concurrent/atomic/AtomicBoolean*"/>    <property name="jdkapi7docs.url"      value="http://docs.oracle.com/javase/7/docs/api/"/>
143      <exclude name="java/util/concurrent/atomic/AtomicInteger*"/>  
144      <exclude name="java/util/concurrent/atomic/AtomicLong*"/>    <property name="jdkapi8docs.url"      value="http://download.java.net/jdk8/docs/api/"/>
145      <exclude name="java/util/concurrent/atomic/AtomicReference*"/>    <!-- The below does not yet exist as of 2012-11 -->
146      <exclude name="java/util/concurrent/locks/LockSupport*"/>    <!-- <property name="jdkapi8docs.url" value="http://docs.oracle.com/javase/8/docs/api/"/> -->
147      <exclude name="java/util/concurrent/locks/ReentrantLock*"/>  
148    </patternset>    <!-- Default jdk api doc location (latest stable release seems best) -->
149      <property name="jdkapidocs.url"       value="${jdkapi7docs.url}"/>
150    
151      <!-- Define the "jtreg" task -->
152      <!-- See the docs in "jtreg -onlineHelp" -->
153      <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant"
154               classpath="${lib.dir}/jtreg.jar" />
155    
156      <!-- Test classpath -->
157      <path id="test.classpath">
158        <pathelement location="${build.testcases.dir}"/>
159        <pathelement location="${junit.jar}"/>
160      </path>
161    
162      <!-- ALoops classpath -->
163      <path id="loops.classpath">
164        <pathelement location="${build.loops.dir}"/>
165      </path>
166    
167      <!-- Support @jls tag, used in jdk8+ javadoc -->
168      <!-- TODO: How do we get &trade to work? -->
169      <!-- TODO: Why isn't @jls a "standard" tag? -->
170      <!--   property name="javadoc.jls.cite" value="The Java&trade; Language Specification" -->
171      <property name="javadoc.jls.cite" value="The Java Language Specification"/>
172      <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
173    
174    <!-- Main targets -->    <!-- Main targets -->
175    
176    <target name="compile"    <target name="dists"
177            depends="init, configure-compiler, prepare-src"            depends="dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
178            description="Compiles main sources to build folder">            description="Builds all public jars and docs"/>
179    
180      <property name="prepare.src.dir" value="${src.dir}"/>    <target name="compile"
181              depends="configure-compiler"
182              description="Compiles src/main sources to build dir">
183    
184      <mkdir dir="${build.classes.dir}"/>      <mkdir dir="${build.classes.dir}"/>
185    
186        <javac srcdir="${src.dir}"
187               destdir="${build.classes.dir}"
188               debug="${build.debug}"
189               debuglevel="${build.debuglevel}"
190               deprecation="${build.deprecation}"
191               classpath=""
192               includeAntRuntime="false"
193               includeJavaRuntime="false"
194               executable="${javac8}"
195               fork="true">
196    
197          <include name="**/*.java"/>
198          <compilerarg line="${build.args}"/>
199          <compilerarg value="-XDignore.symbol.file=true"/>
200          <compilerarg value="-Xlint:all"/>
201    
202  <!--  <!--
203      <echo>javac ${gjc.args}</echo>        <exclude name="java/lang/**"/>
204      <echo>bootclasspath=${compile.bootclasspath}</echo>        <compilerarg line="${build.args}"/>
205          <compilerarg line="-Xlint -Xmaxwarns 1000"/>
206  -->  -->
207    
     <javac srcdir="${prepare.src.dir}"  
           destdir="${build.classes.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
   
       <compilerarg    line="${gjc.args}"/>  
       <bootclasspath refid="compile.bootclasspath"/>  
   
208      </javac>      </javac>
209    
210    </target>    </target>
211    
212    
213    
214    <target name="jar"    <target name="jar"
215            depends="configure-emulation, init-jar, native-jar, emulation-jar"            depends="compile"
216            description="Builds library jar from compiled sources"/>            description="Builds library jar from compiled sources">
217    
218        <jar destfile="${product.jar}">
219          <fileset dir="${build.classes.dir}"/>
220        </jar>
221    
222      </target>
223    
224    
225    
226    <target name="test"    <target name="test"
227            depends="init, configure-tests, report-tests"            depends="configure-tests, report-tests"
228            description="Runs all tests (requires JUnit 3.8.1 in ${ant.home}/lib)" />            description="Runs all tests (requires JUnit 3.8.1 in ${ant.home}/lib)" />
229    
230    
   <target name="checkstyle"  
           depends="filter-src"  
           description="Reports on style errors in Java source (verbose, mostly chaff)">  
231    
232      <taskdef resource="checkstyletask.properties"    <target name="docs"
233              classpath="${lib.dir}/checkstyle-all-2.4.jar"/>            description="Builds javadocs for src/main to dist dir">
234    
235        <delete dir="${dist.javadocs.dir}"/>
236        <mkdir dir="${dist.javadocs.dir}"/>
237    
238      <checkstyle>      <!-- the packagenames="none" hack below prevents scanning the -->
239        <formatter type="plain"/>  <!-- also available: type="xml" -->      <!-- sourcepath for packages -->
240        <fileset dir="${build.filter.src.dir}" includes="**/*.java"/>  
241      </checkstyle>      <javadoc destdir="${dist.javadocs.dir}"
242                 packagenames="none"
243                 link="${jdkapi8docs.url}"
244                 overview="${src.dir}/intro.html"
245                 sourcepath="${src.dir}:${jdk8src.dir}"
246                 classpath=""
247                 executable="${javadoc8}">
248          <arg value="-XDignore.symbol.file=true"/>
249          <arg value="-tag"/>
250          <arg value="${javadoc.jls.option}"/>
251          <fileset dir="${src.dir}" defaultexcludes="yes">
252            <include name="**/*.java"/>
253          </fileset>
254        </javadoc>
255    
256    </target>    </target>
257    
258    
   <target name="doccheck"  
           depends="filter-doccheck"  
           description="Reports on javadoc style errors">  
259    
260      <delete dir="${build.doccheck.dir}"/>    <target name="dist"
261      <mkdir dir="${build.doccheck.dir}"/>            depends="dist-clean, dist-jar, docs"
262              description="Puts all distributable products in single hierarchy"/>
263    
     <javadoc doclet="com.sun.tools.doclets.doccheck.DocCheck"  
          docletpath="${lib.dir}/doccheck.jar"  
             destdir="${build.doccheck.dir}">  
       <packageset dir="${build.filter.doccheck.dir}"/>  
     </javadoc>  
264    
265      <echo>DocCheck output is in ${build.doccheck.dir}</echo>    <target name="release"
266              depends="dist"
267              description="Puts entire CVS tree, plus distribution productions, in a jar">
268    
269    </target>      <property name="release.jar" value="dist/jsr166-${version}-dist.jar"/>
270    
271        <jar basedir="${basedir}" destfile="${release.jar}">
272          <!-- <exclude name="build/**"/> -->
273          <exclude name="${release.jar}"/>
274          <exclude name="user.properties"/>
275          <exclude name="etc/notes/**"/>
276          <exclude name="src/emulation/**"/>
277          <exclude name="**/SyntaxTest.java"/>
278          <exclude name="**/SuperfluousAbstract.java"/>
279        </jar>
280    
281    <target name="docs"    </target>
           depends="filter-src"  
           description="Builds javadocs with custom tags to build folder">  
282    
     <delete dir="${build.javadocs.dir}"/>  
     <mkdir dir="${build.javadocs.dir}"/>  
283    
     <javadoc destdir="${build.javadocs.dir}"  
                 link="http://java.sun.com/j2se/1.4.1/docs/api"  
             overview="${src.dir}/intro.html"  
               source="${build.docsourcelevel}">  
   
       <tag name="revised" description="Last revised:"/>  
       <tag name="spec"    description="Specified by:"/>  
       <tag name="editor"  description="Last edited by:"/>  
       <tag name="fixme"   description="FIX ME:"/>  
284    
285        <packageset dir="${build.filter.src.dir}"/>    <target name="clean"
286              description="Removes all build products">
287    
288      </javadoc>      <delete dir="${build.dir}"/>
289    
290    </target>    </target>
291    
292    
   <target name="sinjdocs"  
           depends="configure-tests"  
           description="Builds javadocs with custom tags to build folder">  
293    
294      <delete dir="${build.javadocs.dir}"/>    <target name="dist-clean"
295      <mkdir dir="${build.javadocs.dir}"/>            description="Removes all build and distribution products">
296    
297        <delete dir="${dist.dir}"/>
298    
299      </target>
300    
     <java classname="net.cscott.sinjdoc.Main" fork="true">  
301    
       <jvmarg value="-Xbootclasspath/p:${test.run.bootclasspath}"/>  
302    
303        <classpath>    <!-- Internal targets -->
         <pathelement location="${sinjdoc.jar}"/>  
         <path refid="test.classpath"/>  
       </classpath>  
304    
       <!-- <arg value="-link"/>       <arg value="http://java.sun.com/j2se/1.4.1/docs/api"/> -->  
305    
306        <arg value="-d"/>          <arg value="${build.javadocs.dir}"/>    <target name="dist-jar"
307        <arg value="-sourcepath"/> <arg value="${src.dir}"/>            depends="clean, jar">
       <arg value="-overview"/>   <arg value="${src.dir}/intro.html"/>  
       <arg value="-source"/>     <arg value="1.5"/>  
       <arg value="-verbose"/>  
       <arg value="java.util"/>  
   
       <!--  
       <arg value="-help"/>  
       -->  
308    
309      </java>      <copy file="${product.jar}" todir="${dist.dir}"/>
310    
311    </target>    </target>
312    
313    
314    <target name="strip"    <target name="compile-tests"
315            depends="init, configure-compiler"            depends="jar">
316            description="Strip generics from java source (not working yet)">  
317        <mkdir dir="${build.testcases.dir}"/>
318    
319      <mkdir dir="${build.stripped.dir}"/>      <javac srcdir="${tck.src.dir}"
320               destdir="${build.testcases.dir}"
321               debug="${build.debug}"
322               debuglevel="${build.debuglevel}"
323               deprecation="${build.deprecation}"
324               source="6"
325               classpath="${junit.jar}"
326               bootclasspath="${product.jar}:${bootclasspath6}"
327               includeAntRuntime="false"
328               includeJavaRuntime="false"
329               executable="${javac8}"
330               fork="true">
331    
332          <include name="**/*.java"/>
333          <compilerarg line="${build.args}"/>
334          <compilerarg value="-XDignore.symbol.file=true"/>
335          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
336    
337      <!--      </javac>
338       # javac -s doesn't reliably generate compilable code. It generates  
339       # bridge methods (marked as "synthetic") that can have identical      <javac srcdir="${test.src.dir}"
340       # signatures to existing methods except for the return value.             destdir="${build.testcases.dir}"
341       -->             debug="${build.debug}"
342      <javac srcdir="${src.dir}"             debuglevel="${build.debuglevel}"
343            destdir="${build.stripped.dir}"             deprecation="${build.deprecation}"
344               source="6"
345               classpath=""
346               bootclasspath="${product.jar}:${bootclasspath6}"
347               includeAntRuntime="false"
348               includeJavaRuntime="false"
349               executable="${javac8}"
350               fork="true">
351    
352          <include name="jsr166/test/**/*.java"/>
353    
354          <compilerarg line="${build.args}"/>
355          <compilerarg value="-XDignore.symbol.file=true"/>
356          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
357    
358        </javac>
359    
360    <!--
361        <javac srcdir="${jtreg.src.dir}"
362              destdir="${build.testcases.dir}"
363              debug="${build.debug}"              debug="${build.debug}"
364         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
365        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
366             source="${build.sourcelevel}"             source="${build.sourcelevel}"
367               fork="true">               fork="true">
368    
369        <compilerarg    line="${gjc.args} -s"/>        <compilerarg value="${bootclasspath.args}"/>
370        <bootclasspath refid="compile.bootclasspath"/>        <compilerarg line="${build.args}"/>
371          <compilerarg value="-XDignore.symbol.file=true"/>
372    
373      </javac>      </javac>
374    -->
375    
376    </target>    </target>
377    
378    
379    <target name="dist"    <target name="run-tests"
380            depends="init, dist-clean, dist-jar, dist-docs"            depends="compile-tests">
           description="Puts all distributable products in single hierarchy"/>  
381    
382    <target name="release"      <!-- May be overridden by user.properties -->
383            depends="dist"      <property name="testcase" value="*"/>
           description="Puts entire CVS tree, plus distribution productions, in a jar">  
384    
385  <!--      <mkdir dir="${build.reports.dir}"/>
     #keep build dir? - dl  
     <delete dir="${build.dir}"/>  
 -->  
     <property name="release.jar" value="dist/jsr166-${version}-dist.jar"/>  
386    
387      <jar basedir="${basedir}" destfile="${release.jar}">      <junit printsummary="true"
388        <exclude name="${release.jar}"/>               showoutput="true"
389        <exclude name="user.properties"/>            errorProperty="junit.failed"
390        <exclude name="etc/notes/**"/>          failureProperty="junit.failed"
391        <exclude name="lib/gjc/2.1/**"/>                      dir="${build.reports.dir}"
392        <exclude name="**/SyntaxTest.java"/>                      jvm="${java8}"
393      </jar>                     fork="true">
394    
395    </target>        <jvmarg value="-Xbootclasspath/p:${product.jar}"/>
396          <jvmarg value="-server"/>
397          <jvmarg value="-showversion"/>
398    
399    <target name="clean"        <classpath refid="test.classpath"/>
           description="Removes all build products">  
400    
401      <delete dir="${build.dir}"/>        <formatter type="xml"/>
     <delete dir="${build.classes.dir}"/>  
     <delete dir="${build.lib.dir}"/>  
402    
403    </target>        <batchtest todir="${build.reports.dir}" unless="no.test.tck">
404            <fileset dir="${tck.src.dir}">
405              <include name="**/${testcase}Test.java"/>
406            </fileset>
407          </batchtest>
408    
409          <batchtest todir="${build.reports.dir}" if="do.test.old">
410            <fileset dir="${test.src.dir}">
411              <include name="jsr166/test/**/${testcase}Test.java"/>
412            </fileset>
413          </batchtest>
414    
415    <target name="dist-clean"  <!--
416            description="Removes all build and distribution products">        <batchtest todir="${build.reports.dir}" if="do.test.jtreg">
417            <fileset dir="${jtreg.src.dir}">
418              <include name="**/${testcase}Test.java"/>
419            </fileset>
420          </batchtest>
421    -->
422    
423      <delete dir="${dist.dir}"/>      </junit>
424    
425    </target>    </target>
426    
427    
428    <target name="dist-docs"    <target name="report-tests"
429            depends="filter-src"            depends="run-tests">
           description="Builds javadocs without custom tags to dist folder">  
   
     <delete dir="${dist.javadocs.dir}"/>  
     <mkdir dir="${dist.javadocs.dir}"/>  
430    
431      <javadoc destdir="${dist.javadocs.dir}"      <!-- Sets junit.report.format to frames if redirection is present,
432                  link="http://java.sun.com/j2se/1.4.1/docs/api"           otherwise sets it to noframes. -->
433              overview="${src.dir}/intro.html"      <available property="junit.report.format"
434                source="${build.docsourcelevel}">                    value="frames"
435                  classname="org.apache.xalan.lib.Redirect"
436        />
437        <property name="junit.report.format" value="noframes"/>
438    
439        <packageset dir="${build.filter.src.dir}"/>      <junitreport todir="${build.reports.dir}">
440          <fileset dir="${build.reports.dir}">
441            <include name="TEST-*.xml"/>
442          </fileset>
443          <report format="${junit.report.format}" todir="${build.reports.dir}"
444          />
445        </junitreport>
446    
447      </javadoc>      <fail message="Test Cases Failed" if="junit.failed"/>
448    
449    </target>    </target>
450    
451    
452      <target name="configure-compiler">
453    
454    <!-- Internal targets -->      <property name="unchecked.option" value="-Xlint:unchecked"/>
455    
456        <condition property="warnunchecked.arg" value="${unchecked.option}">
457          <istrue value="${build.warnunchecked}"/>
458        </condition>
459    
460    <target name="init">      <property name="warnunchecked.arg" value=""/>
461    
462      <!-- Version is kept in a separate file -->  
463      <loadfile property="version" srcFile="version.properties"/>      <!-- Common options in javac invocations -->
464      <echo>Building JSR-166 version ${version}</echo>      <property name="build.args" value="${warnunchecked.arg}"/>
465    
466    </target>    </target>
467    
468    
469    <target name="init-jar">    <target name="configure-tests"
470           depends="configure-compiler">
471    
472      <mkdir dir="${build.lib.dir}"/>      <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->
473        <available property="junit.available"
474                   classname="junit.framework.Protectable"/>
475    
476    </target>      <!-- Xalan -->
477        <available property="xalan.available"
478                   classname="org.apache.xalan.Version"/>
479    
480    
481    <target name="native-jar"      <!-- Ant 1.6beta and later don't need or want this check -->
482            depends="compile"      <!--
483            unless="build.emulation.true">      <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests"
484              unless="junit.available"/>
485    
486      <jar destfile="${product.jar}">      <fail message="Need Xalan 2.5.1 jar in ${ant.home}${file.separator}lib to run tests"
487        <fileset dir="${build.classes.dir}"/>            unless="xalan.available"/>
488      </jar>      -->
489    
490    </target>    </target>
491    
492    
493    <target name="compile-emulation"    <!-- Various demos and test programs -->
494            depends="init, configure-compiler"  
495            if="build.emulation.true">  
496      <target name="loops" depends="configure-compiler"
497              description="Benchmark from Doug Lea's AQS paper">
498    
499      <mkdir dir="${build.emulation.dir}"/>      <mkdir dir="${build.loops.dir}"/>
500    
501      <javac srcdir="${emulation.src.dir}"      <javac srcdir="${loops.src.dir}"
502            destdir="${build.emulation.dir}"            destdir="${build.loops.dir}"
503              debug="${build.debug}"              debug="${build.debug}"
504         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
505        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
506             source="${build.sourcelevel}"             source="${build.sourcelevel}"
507               fork="true">               fork="true">
508    
509        <compilerarg    line="${gjc.args}"/>        <compilerarg line="${build.args}"/>
510        <bootclasspath refid="compile.bootclasspath"/>        <classpath refid="loops.classpath"/>
511          <compilerarg value="-XDignore.symbol.file=true"/>
512    
513      </javac>      </javac>
514    
515        <java classname="ALoops" fork="true">
516          <classpath refid="loops.classpath"/>
517        </java>
518    
519    </target>    </target>
520    
521    
522    <target name="emulation-jar"    <!-- jsr166 4jdk7 -->
           depends="compile-emulation"  
           if="build.emulation.true">  
523    
524    
525      <jar destfile="${product.jar}" duplicate="add">    <target name="4jdk7compile"
526        <fileset dir="${build.classes.dir}">            depends="configure-compiler"
527          <patternset refid="atomic.exclusion"/>            description="Compiles src/jdk7 sources, targeting jdk7">
528          <patternset refid="unsafe.exclusion"/>  
529        </fileset>      <mkdir dir="${build.4jdk7.classes.dir}"/>
530        <fileset dir="${build.emulation.dir}"/>  
531        <javac srcdir="${4jdk7src.dir}"
532               destdir="${build.4jdk7.classes.dir}"
533               debug="${build.debug}"
534               debuglevel="${build.debuglevel}"
535               deprecation="${build.deprecation}"
536               source="6"
537               classpath=""
538               bootclasspath="${bootclasspath6}"
539               includeAntRuntime="false"
540               includeJavaRuntime="false"
541               executable="${javac7}"
542               fork="true">
543    
544          <include name="**/*.java"/>
545          <compilerarg line="${build.args}"/>
546          <compilerarg value="-XDignore.symbol.file=true"/>
547          <compilerarg value="-Xlint:all"/>
548    
549        </javac>
550    
551        <jar destfile="${4jdk7product.jar}" index="true">
552          <fileset dir="${build.4jdk7.classes.dir}"/>
553      </jar>      </jar>
554    
555    </target>      <mkdir dir="${build.4jdk7.tck.classes.dir}"/>
556    
557        <javac srcdir="${tck.src.dir}"
558               destdir="${build.4jdk7.tck.classes.dir}"
559               debug="${build.debug}"
560               debuglevel="${build.debuglevel}"
561               deprecation="${build.deprecation}"
562               source="6"
563               classpath="${junit.jar}"
564               bootclasspath="${4jdk7product.jar}:${bootclasspath6}"
565               includeAntRuntime="false"
566               includeJavaRuntime="false"
567               executable="${javac7}"
568               fork="true">
569    
570          <include name="**/*.java"/>
571          <compilerarg line="${build.args}"/>
572          <compilerarg value="-XDignore.symbol.file=true"/>
573          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
574    
575    <target name="dist-jar"      </javac>
576            depends="clean, jar">  
577      </target>
578    
     <copy file="${product.jar}" todir="${dist.dir}"/>  
579    
580      <target name="4jdk7-test-tck"
581              depends="4jdk7compile"
582              description="Runs tck tests for jsr166-4jdk7 directly">
583        <run-tck-tests
584          jvm="${java7}"
585          tck.classes="${build.4jdk7.tck.classes.dir}"
586          product.jar="${4jdk7product.jar}"/>
587    </target>    </target>
588    
589    
590    <target name="compile-ant-filter"    <target name="4jdk7-test-tck-junit"
591            depends="init">            depends="4jdk7compile"
592              description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">
593    
594      <mkdir dir="${build.ant.dir}"/>      <junit printsummary="true"
595               showoutput="true"
596               errorProperty="junit.failed"
597               failureProperty="junit.failed"
598               includeantruntime="true"
599               jvm="${java7}"
600               fork="true">
601    
602      <javac srcdir="${ant.src.dir}"        <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
603            destdir="${build.ant.dir}"        <jvmarg value="-server"/>
604             source="1.4"  
605      />        <classpath>
606            <pathelement location="${junit.jar}"/>
607            <pathelement location="${build.4jdk7.tck.classes.dir}"/>
608          </classpath>
609    
610          <formatter type="brief"/>
611    
612          <test name="JSR166TestCase" haltonfailure="no">
613          </test>
614    
615        </junit>
616    </target>    </target>
617    
618      <target name="4jdk7-test-jtreg"
619              depends="4jdk7compile"
620              description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">
621        <delete dir="${build.4jdk7.dir}/JTwork"   quiet="true"/>
622        <delete dir="${build.4jdk7.dir}/JTreport" quiet="true"/>
623        <mkdir dir="${build.4jdk7.dir}/JTwork/scratch"/>
624        <mkdir dir="${build.4jdk7.dir}/JTreport"/>
625        <jtreg dir="${jtreg.src.dir}"
626               jdk="${jdk7.home}"
627               workDir="${build.4jdk7.dir}/JTwork"
628               reportDir="${build.4jdk7.dir}/JTreport">
629    
630          <arg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
631          <arg value="-agentvm"/>
632          <arg value="-v:nopass,fail"/>
633          <arg value="-vmoptions:-esa -ea"/>
634          <arg value="-automatic"/>
635          <arg value="-k:!ignore"/>
636        </jtreg>
637      </target>
638    
   <target name="filter-src"  
           depends="compile-ant-filter">  
639    
640      <mkdir dir="${build.filter.src.dir}"/>    <target name="4jdk7-test"
641              depends="4jdk7-test-tck, 4jdk7-test-jtreg"
642              description="Runs tck and jtreg tests for jsr166-4jdk7">
643      </target>
644    
     <copy todir="${build.filter.src.dir}">  
       <fileset dir="${src.dir}">  
         <include name="**/*.html"/>  
       </fileset>  
     </copy>  
645    
646      <copy todir="${build.filter.src.dir}">    <target name="4jdk7docs"
647        <fileset dir="${src.dir}">            description="Builds javadocs for src/jdk7 to dist dir">
648          <exclude name="**/*.html"/>  
649          <patternset refid="unsafe.exclusion"/>      <delete dir="${dist.4jdk7.docs.dir}"/>
650        <mkdir dir="${dist.4jdk7.docs.dir}"/>
651    
652        <javadoc destdir="${dist.4jdk7.docs.dir}"
653                 packagenames="none"
654                 link="${jdkapi7docs.url}"
655                 overview="${4jdk7src.dir}/intro.html"
656                 sourcepath="${4jdk7src.dir}:${jdk7src.dir}"
657                 classpath=""
658                 executable="${javadoc7}">
659          <arg value="-XDignore.symbol.file=true"/>
660          <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
661            <include name="**/*.java"/>
662        </fileset>        </fileset>
663        <filterchain>      </javadoc>
664    
665      </target>
666    
         <!--  
          # This filter gets rid of angle-bracketed type parameters  
          # so that javadoc can run on the result. The following  
          # heuristic seems to work:  
          #  
          # For all lines not starting with space(s)-asterisk-space(s),  
          #   replace <something> with a space, where there may be more  
          #   than one right angle bracket at the end, and "something"  
          #   must not contain parens or pipes. (This may need some  
          #   tweaking.)  
          -->  
667    
668          <filterreader classname="jsr166.ant.filters.ReplaceFilter"    <target name="4jdk7dist"
669                        classpath="${build.ant.dir}">            depends="4jdk7dist-clean, 4jdk7dist-jar, 4jdk7docs"
670            <param name="notmatching" value="^\s+\*\s.*$"/>            description="Puts all distributable products in single hierarchy"/>
671            <param name="pattern"     value="&lt;[^|>()]+?>+"/>  
           <param name="replacement" value=" "/>  
         </filterreader>  
672    
673    
674          <!--    <target name="4jdk7clean"
675           # This filter uncomments lines beginning with "//@" so that            description="Removes all 4jdk7 build products">
          # javadoc can see imports that are needed to resolve links  
          # but that shouldn't be in the compiled code.  
          -->  
676    
677          <filterreader classname="jsr166.ant.filters.ReplaceFilter"      <delete dir="${build.4jdk7.dir}"/>
                       classpath="${build.ant.dir}">  
           <param name="matching"    value="^//@.*$"/>  
           <param name="pattern"     value="^//@"/>  
           <param name="replacement" value=""/>  
         </filterreader>  
       </filterchain>  
     </copy>  
678    
679    </target>    </target>
680    
681    
682    
683      <target name="4jdk7dist-clean"
684              description="Removes all build and distribution products">
685    
686    <target name="filter-doccheck"    </target>
           depends="filter-src">  
687    
688      <mkdir dir="${build.filter.doccheck.dir}"/>    <target name="4jdk7dist-jar"
689              depends="4jdk7clean, 4jdk7compile">
690    
691      <copy todir="${build.filter.doccheck.dir}">      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
       <fileset dir="${build.filter.src.dir}">  
         <include name="**/*.html"/>  
       </fileset>  
     </copy>  
692    
693      <property name="generic.declarations"    </target>
              value="/** Fake type parameter. */ public interface E {} /** Fake type parameter. */ public interface T {} /** Fake type parameter. */ public interface K {} /** Fake type parameter. */ public interface V {}"  
     />  
694    
     <copy todir="${build.filter.doccheck.dir}">  
       <fileset dir="${build.filter.src.dir}">  
         <exclude name="**/*.html"/>  
       </fileset>  
       <filterchain>  
         <!--  
          # These two filters try to make the source look like  
          # something that doccheck can process. The first removes  
          # -source 1.4 assertions and the second adds in a bunch  
          # of single letter public nested marker interfaces so that  
          # the generic type parameters are recognized.  
          -->  
   
         <filterreader classname="jsr166.ant.filters.ReplaceFilter"  
                       classpath="${build.ant.dir}">  
           <param name="matching"    value="^\s*assert[\s ].*$"/>  
           <param name="pattern"     value="assert"/>  
           <param name="replacement" value="//assert"/>  
         </filterreader>  
   
         <filterreader classname="jsr166.ant.filters.ReplaceFilter"  
                       classpath="${build.ant.dir}">  
           <param name="matching"    value="^([^*]*(class|interface|implements) .*|)\{.*$"/>  
           <param name="pattern"     value="$"/>  
           <param name="replacement" value=" ${generic.declarations}"/>  
         </filterreader>  
695    
696        </filterchain>    <!-- jsr166x -->
697      </copy>  
698      <target name="jsr166xcompile"
699              depends="configure-compiler"
700              description="Compiles jsr166x sources to build dir">
701    
702        <mkdir dir="${build.jsr166x.classes.dir}"/>
703    
704        <javac srcdir="${topsrc.dir}"
705               destdir="${build.jsr166x.classes.dir}"
706               debug="${build.debug}"
707               debuglevel="${build.debuglevel}"
708               deprecation="${build.deprecation}"
709               classpath=""
710               source="5"
711               bootclasspath="${bootclasspath6}"
712               includeAntRuntime="false"
713               includeJavaRuntime="false"
714               executable="${javac7}"
715               fork="true">
716    
717          <include name="jsr166x/**/*.java"/>
718          <compilerarg line="${build.args}"/>
719          <compilerarg value="-XDignore.symbol.file=true"/>
720          <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
721    
722        </javac>
723    
724    </target>    </target>
725    
726    
   <target name="compile-tests"  
           depends="jar">  
727    
728      <mkdir dir="${build.testcases.dir}"/>    <target name="jsr166xjar"
729              depends="jsr166xcompile"
730              description="Builds library jar from compiled sources">
731    
732  <!--      <jar destfile="${jsr166x.jar}">
733      <echo>javac ${gjc.args}</echo>        <fileset dir="${build.jsr166x.classes.dir}"/>
734      <echo>bootclasspath=${test.compile.bootclasspath}</echo>      </jar>
     <echo>classpath="${test.classpath}"</echo>  
 -->  
735    
736      <javac srcdir="${test.src.dir}"    </target>
           destdir="${build.testcases.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
737    
       <compilerarg    line="${gjc.args}"/>  
       <bootclasspath refid="test.compile.bootclasspath"/>  
       <classpath     refid="test.classpath"/>  
738    
739      </javac>  
740      <target name="jsr166xdocs"
741              description="Builds javadocs to dist dir">
742    
743        <delete dir="${dist.jsr166xjavadocs.dir}"/>
744        <mkdir dir="${dist.jsr166xjavadocs.dir}"/>
745    
746        <javadoc destdir="${dist.jsr166xjavadocs.dir}"
747                 packagenames="jsr166x.*"
748                 link="${jdkapidocs.url}"
749                 source="5"
750                 bootclasspath="${bootclasspath6}"
751                 sourcepath="${topsrc.dir}:${jdk6src.dir}"
752                 executable="${javadoc7}"
753                 additionalparam="-XDignore.symbol.file=true"/>
754    
755    </target>    </target>
756    
757    
758    <target name="run-tests"    <target name="jsr166xdist"
759            depends="compile-tests">            depends="jsr166xdist-clean, jsr166xdist-jar, jsr166xdocs"
760              description="Puts all distributable products in single hierarchy"/>
761    
     <!-- May be overridden by user.properties -->  
     <property name="testcase" value="*"/>  
762    
     <mkdir dir="${build.reports.dir}"/>  
763    
764      <junit printsummary="true"    <target name="jsr166xclean"
765               showoutput="true"            description="Removes all jsr166x build products">
           errorProperty="junit.failed"  
         failureProperty="junit.failed"  
                     dir="${build.reports.dir}"  
                    fork="true">  
766    
767        <jvmarg value="-Xbootclasspath/p:${test.run.bootclasspath}"/>      <delete dir="${build.jsr166x.dir}"/>
768    
769        <formatter type="xml"/>    </target>
770    
       <batchtest todir="${build.reports.dir}">  
         <fileset dir="${test.src.dir}">  
           <include name="**/${testcase}Test.java"/>  
         </fileset>  
       </batchtest>  
771    
772      </junit>  
773      <target name="jsr166xdist-clean"
774              description="Removes all build and distribution products">
775    
776    </target>    </target>
777    
778    
779    <target name="report-tests"    <target name="jsr166xdist-jar"
780            depends="run-tests">            depends="jsr166xclean, jsr166xjar">
781    
782      <!-- Sets junit.report.format to frames if Xalan is present,      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
          otherwise sets it to noframes. -->  
     <available property="junit.report.format"  
                   value="frames"  
               classname="org.apache.xalan.lib.Redirect"  
     />  
     <property name="junit.report.format" value="noframes"/>  
783    
784      <junitreport todir="${build.reports.dir}">    </target>
       <fileset dir="${build.reports.dir}">  
         <include name="TEST-*.xml"/>  
       </fileset>  
       <report styledir="${stylesheet.dir}"  
                 format="${junit.report.format}"  
                  todir="${build.reports.dir}"  
       />  
     </junitreport>  
785    
786      <fail message="Test Cases Failed" if="junit.failed"/>    <!-- jsr166y -->
787    
788    
789      <target name="jsr166ycompile"
790              depends="configure-compiler"
791              description="Compiles jsr166y sources">
792    
793        <mkdir dir="${build.jsr166y.classes.dir}"/>
794    
795        <javac srcdir="${topsrc.dir}"
796               destdir="${build.jsr166y.classes.dir}"
797               debug="${build.debug}"
798               debuglevel="${build.debuglevel}"
799               deprecation="${build.deprecation}"
800               source="6"
801               classpath=""
802               bootclasspath="${bootclasspath6}"
803               includeAntRuntime="false"
804               includeJavaRuntime="false"
805               executable="${javac7}"
806               fork="true">
807    
808          <include name="jsr166y/**/*.java"/>
809          <compilerarg line="${build.args}"/>
810          <compilerarg value="-XDignore.symbol.file=true"/>
811          <compilerarg value="-Xlint:all"/>
812        </javac>
813    </target>    </target>
814    
815    
816    <target name="configure-compiler">    <target name="jsr166yjar"
817              depends="jsr166ycompile"
818              description="Builds library jar from compiled sources">
819    
820      <property name="gjc.version"      <jar destfile="${jsr166y.jar}" index="true">
821               value="2.2"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
822        </jar>
823    
824      <condition property="novariance.arg" value="-novariance">    </target>
       <and>  
         <equals arg1="${gjc.version}" arg2="2.0"/>  
         <or>  
           <not><isset property="gjc.novariance"/></not>  
           <istrue value="${gjc.novariance}"/>  
         </or>  
       </and>  
     </condition>  
825    
     <property name="novariance.arg"  
              value=""/>  
826    
     <property name="gjc.dir"  
              value="${lib.dir}/gjc"/>  
827    
828      <property name="javac.jar"    <target name="jsr166ydocs"
829            location="${gjc.dir}/${gjc.version}/javac.jar"/>            description="Builds javadocs to dist dir">
830    
831      <property name="collect.jar"      <delete dir="${dist.jsr166yjavadocs.dir}"/>
832            location="${gjc.dir}/${gjc.version}/collect${novariance.arg}.jar"/>      <mkdir dir="${dist.jsr166yjavadocs.dir}"/>
833    
834        <javadoc destdir="${dist.jsr166yjavadocs.dir}"
835                 packagenames="jsr166y.*"
836                 link="${jdkapidocs.url}"
837                 source="6"
838                 bootclasspath="${bootclasspath6}"
839                 sourcepath="${topsrc.dir}:${jdk6src.dir}"
840                 executable="${javadoc7}"
841                 additionalparam="-XDignore.symbol.file=true"/>
842    
843      <condition property="warnunchecked.arg" value="-warnunchecked">    </target>
       <istrue value="${gjc.warnunchecked}"/>  
     </condition>  
844    
     <property name="warnunchecked.arg" value=""/>  
845    
846      <condition property="prepare.src.dir" value="${build.dir}/prepare-src">    <target name="jsr166ydist"
847        <istrue value="${build.nothreads}"/>            depends="jsr166ydist-clean, jsr166ydist-jar, jsr166ydocs"
848      </condition>            description="Puts all distributable products in single hierarchy"/>
849    
850    
     <!--  
      ! Bootclasspath munging for source compilation.  
      -->  
851    
852      <path id="pre.bootclasspath">    <target name="jsr166yclean"
853        <pathelement location="${javac.jar}"/>            description="Removes all jsr166y build products">
     </path>  
   
     <path id="compile.bootclasspath">  
       <pathelement location="${build.classes.dir}"/>  
       <pathelement location="${collect.jar}"/>  
       <pathelement location="${rt.jar}"/>  
     </path>  
   
     <!-- Flatten paths into platform-appropriate strings -->  
     <property name="pre.bootclasspath"     refid="pre.bootclasspath"/>  
     <property name="compile.bootclasspath" refid="compile.bootclasspath"/>  
854    
855        <delete dir="${build.jsr166y.dir}"/>
856    
857      </target>
858    
859      <!-- Common options in javac invocations -->  
860      <property name="gjc.args"  
861               value="-J-Xbootclasspath/p:${pre.bootclasspath} ${warnunchecked.arg} ${novariance.arg}"    <target name="jsr166ydist-clean"
862      />            description="Removes all build and distribution products">
863    
864    </target>    </target>
865    
866      <target name="jsr166ydist-jar"
867              depends="jsr166yclean, jsr166yjar">
868    
869    <target name="prepare-src"      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
           depends="configure-compiler"  
           if="prepare.src.dir">  
870    
871      <mkdir dir="${prepare.src.dir}"/>    </target>
872      <copy todir="${prepare.src.dir}">  
873        <fileset dir="${src.dir}">  
874          <exclude name="java/lang/**"/>    <!-- extra166y -->
875        </fileset>  
876      </copy>  
877      <target name="extra166ycompile"
878              depends="configure-compiler, jsr166yjar"
879              description="Compiles extra166y sources">
880    
881        <mkdir dir="${build.extra166y.classes.dir}"/>
882    
883        <javac srcdir="${topsrc.dir}"
884               destdir="${build.extra166y.classes.dir}"
885               debug="${build.debug}"
886               debuglevel="${build.debuglevel}"
887               deprecation="${build.deprecation}"
888               classpath=""
889               source="6"
890               bootclasspath="${jsr166y.jar}:${bootclasspath6}"
891               includeAntRuntime="false"
892               includeJavaRuntime="false"
893               executable="${javac7}"
894               fork="true">
895    
896          <include name="extra166y/**/*.java"/>
897          <compilerarg line="${build.args}"/>
898          <compilerarg value="-XDignore.symbol.file=true"/>
899          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
900    
901        </javac>
902    
903    </target>    </target>
904    
905    
   <target name="configure-emulation">  
906    
907      <condition property="build.emulation.true">    <target name="extra166yjar"
908        <or>            depends="extra166ycompile"
909          <and>            description="Builds library jar from compiled sources">
910            <os family="windows"/>  
911            <not>      <jar destfile="${extra166y.jar}" index="true">
912              <isset property="build.emulation"/>        <fileset dir="${build.extra166y.classes.dir}"/>
913            </not>      </jar>
         </and>  
         <istrue value="${build.emulation}"/>  
       </or>  
     </condition>  
914    
915    </target>    </target>
916    
917    
   <target name="configure-tests"  
        depends="configure-compiler">  
918    
919      <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->    <target name="extra166ydocs"
920      <available property="junit.available"            description="Builds javadocs to build dir">
                classname="junit.framework.Protectable"/>  
921    
922      <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests"      <delete dir="${dist.extra166yjavadocs.dir}"/>
923            unless="junit.available"/>      <mkdir dir="${dist.extra166yjavadocs.dir}"/>
924    
925        <javadoc destdir="${dist.extra166yjavadocs.dir}"
926                 packagenames="extra166y.*"
927                 link="${jdkapidocs.url}"
928                 source="6"
929                 bootclasspath="${bootclasspath6}"
930                 sourcepath="${topsrc.dir}:${jdk6src.dir}"
931                 executable="${javadoc7}"
932                 additionalparam="-XDignore.symbol.file=true"/>
933    
934      <!--    </target>
      ! Bootclasspath munging for testing, so JUnit can test our local  
      ! modifications to java.*.  
      -->  
935    
     <path id="test.classpath">  
       <pathelement location="${product.jar}"/>  
       <pathelement location="${build.testcases.dir}"/>  
       <pathelement location="${junit.jar}"/>  
     </path>  
936    
937      <path id="test.compile.bootclasspath">    <target name="extra166ydist"
938        <pathelement location="${javac.jar}"/>            depends="extra166ydist-clean, extra166ydist-jar, extra166ydocs"
939        <pathelement location="${collect.jar}"/>            description="Puts all distributable products in single hierarchy"/>
       <pathelement location="${rt.jar}"/>  
     </path>  
940    
     <path id="test.run.bootclasspath">  
       <pathelement location="${javac.jar}"/>  
       <path refid="test.classpath"/>  
     </path>  
941    
942      <!-- Flatten test classpaths into platform-appropriate strings -->  
943      <property name="test.classpath"             refid="test.classpath"/>    <target name="extra166yclean"
944      <property name="test.compile.bootclasspath" refid="test.compile.bootclasspath"/>            description="Removes all extra166y build products">
945      <property name="test.run.bootclasspath"     refid="test.run.bootclasspath"/>  
946        <delete dir="${build.extra166y.dir}"/>
947    
948    </target>    </target>
949    
950    
951    
952    <!-- Anthill targets -->    <target name="extra166ydist-clean"
953              description="Removes all build and distribution products">
954    
955      </target>
956    
957      <target name="extra166ydist-jar"
958              depends="extra166yclean, extra166yjar">
959    
960        <copy file="${extra166y.jar}" todir="${dist.dir}"/>
961    
962    <target name="anthill-build"    </target>
           depends="jar, test, docs, dist-docs"/>  
963    
964    <target name="anthill-publish">    <!-- jsr166e -->
965    
966      <copy todir="${deployDir}/docs/private">    <target name="jsr166ecompile"
967        <fileset dir="${build.javadocs.dir}"/>            depends="configure-compiler"
968      </copy>            description="Compiles jsr166e sources">
969    
970      <copy todir="${deployDir}/docs/public">      <mkdir dir="${build.jsr166e.classes.dir}"/>
       <fileset dir="${dist.javadocs.dir}"/>  
     </copy>  
971    
972      <copy tofile="${deployDir}/index.html"      <javac srcdir="${topsrc.dir}"
973            file="${basedir}/etc/anthill-index.html"/>             destdir="${build.jsr166e.classes.dir}"
974               debug="${build.debug}"
975               debuglevel="${build.debuglevel}"
976               deprecation="${build.deprecation}"
977               source="7"
978               classpath=""
979               includeAntRuntime="false"
980               includeJavaRuntime="false"
981               executable="${javac7}"
982               fork="true">
983    
984          <include name="jsr166e/**/*.java"/>
985          <compilerarg line="${build.args}"/>
986          <compilerarg value="-XDignore.symbol.file=true"/>
987          <compilerarg value="-Xlint:all"/>
988    
989      <copy todir="${deployDir}/notes">      </javac>
       <fileset dir="${basedir}/etc/notes"/>  
     </copy>  
990    
991    </target>    </target>
992    
993    
   <target name="ng" depends="test">  
     <java classname="SuperfluousAbstract" fork="true">  
994    
995        <jvmarg value="-Xbootclasspath/p:${test.run.bootclasspath}"/>    <target name="jsr166ejar"
996              depends="jsr166ecompile"
997              description="Builds library jar from compiled sources">
998    
999        <jar destfile="${jsr166e.jar}" index="true">
1000          <fileset dir="${build.jsr166e.classes.dir}"/>
1001        </jar>
1002    
1003      </target>
1004    
1005    
1006    
1007      <target name="jsr166edocs"
1008              description="Builds javadocs to build dir">
1009    
1010        <delete dir="${dist.jsr166ejavadocs.dir}"/>
1011        <mkdir dir="${dist.jsr166ejavadocs.dir}"/>
1012    
1013        <javadoc destdir="${dist.jsr166ejavadocs.dir}"
1014                 packagenames="jsr166e.*"
1015                 link="${jdkapidocs.url}"
1016                 source="7"
1017                 sourcepath="${topsrc.dir}:${jdk7src.dir}"
1018                 executable="${javadoc7}"
1019                 additionalparam="-XDignore.symbol.file=true" >
1020        </javadoc>
1021    
1022      </target>
1023    
1024    
1025      <target name="jsr166edist"
1026              depends="jsr166edist-clean, jsr166edist-jar, jsr166edocs"
1027              description="Puts all distributable products in single hierarchy"/>
1028    
1029    
1030    
1031      <target name="jsr166eclean"
1032              description="Removes all jsr166e build products">
1033    
1034        <delete dir="${build.jsr166e.dir}"/>
1035    
     </java>  
1036    </target>    </target>
1037    
1038    
1039      <target name="jsr166edist-clean"
1040              description="Removes all build and distribution products">
1041    
1042      </target>
1043    
1044      <target name="jsr166edist-jar"
1045              depends="jsr166eclean, jsr166ejar">
1046    
1047        <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1048    
1049      </target>
1050    
1051  </project>  </project>

Legend:
Removed from v.1.50  
changed lines
  Added in v.1.115

dl@cs.oswego.edu
ViewVC Help
Powered by ViewVC 1.1.27