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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.37  
changed lines
  Added in v.1.162

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