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

Diff of /jsr166/build.xml

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

revision 1.70 by dl, Wed Aug 11 10:57:33 2004 UTC revision 1.199 by jsr166, Fri Mar 25 03:36:15 2016 UTC
# Line 1  Line 1 
1  <project name="jsr166" default="usage">  <project name="jsr166" default="usage"
2      xmlns:if="ant:if" xmlns:unless="ant:unless">
3    
4    <description>    <description>
5  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
# Line 8  Line 9 
9    
10    User-specific settings are read from user.properties.    User-specific settings are read from user.properties.
11    See user.properties.sample for an explanation of some useful settings.    See user.properties.sample for an explanation of some useful settings.
12    
13      The repository contains all dependencies except for ant and the JDK
14      itself.  Because the JDK version matters and because different
15      targets require different JDKs, we assume that users have created a
16      hierarchy containing:
17      $HOME/jdk/jdk6
18      $HOME/jdk/jdk7
19      $HOME/jdk/jdk8
20      $HOME/jdk/jdk9
21      where each of the above is a JDK or a symlink to same, and
22      $HOME/jdk/src/jdk6
23      $HOME/jdk/src/jdk7
24      $HOME/jdk/src/jdk8
25      $HOME/jdk/src/jdk9
26      where each of the above is a complete JDK source tree
27      (e.g. mercurial forest) or a symlink to same.
28    
29      Alternatively, define ant variables thus:
30      ant -Djdk$N.home=... -Djdk$N.src.home=...
31      for $N in 6 7 8 9 ...
32    
33      As of 2015-09, there is incomplete hacky support for jigsaw
34      Build for jigsaw using something like:
35      ant -Djdk9.home="$HOME/jdk/jigsaw" -Djdk9.src.home="$HOME/jdk/src/jigsaw" clean test dist
36      "docs" target is still broken.
37  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
38    </description>    </description>
39    
40    <target name="usage" description="Advises user to run with -projecthelp">    <!-- Display main targets by running 'ant -projecthelp' -->
41      <echo>Run "ant -projecthelp" for full usage information.</echo>    <target name="usage">
42        <java classname="org.apache.tools.ant.Main">
43          <arg value="-projecthelp" />
44        </java>
45    </target>    </target>
46    
47      <!-- HOWTO printf debug: <echo message="prop=${prop}"/> -->
48    
49    <!-- User-specific settings -->    <!-- User-specific settings -->
50    <property file="user.properties"/>    <property file="user.properties"/>
51    
52    
53    <!-- Compilation options -->    <!-- Compilation options -->
54    <property name="build.sourcelevel"    value="1.5"/>    <property name="build.sourcelevel"    value="6"/>
55    <property name="build.debug"          value="true"/>    <property name="build.debug"          value="true"/>
56    <property name="build.debuglevel"     value="source,lines,vars"/>    <property name="build.debuglevel"     value="source,lines,vars"/>
57    <property name="build.deprecation"    value="false"/>    <property name="build.deprecation"    value="false"/>
58      <property name="build.javadoc.access" value="protected"/>
59    
60    <!-- Build locations -->    <!-- Build locations -->
61    <property name="build.dir"            location="build"/>    <property name="build.dir"                   location="build"/>
62    <property name="build.classes.dir"    location="${build.dir}/classes"/>    <property name="build.classes.dir"           location="${build.dir}/classes"/>
63    <property name="build.testcases.dir"  location="${build.dir}/testcases"/>    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>
64    <property name="build.j1.dir"         location="${build.dir}/j1"/>    <property name="build.loops.dir"             location="${build.dir}/loops"/>
65    <property name="build.loops.dir"      location="${build.dir}/loops"/>    <property name="build.reports.dir"           location="${build.dir}/reports"/>
66    <property name="build.lib.dir"        location="${build.dir}/lib"/>  
67    <property name="build.ant.dir"        location="${build.dir}/ant"/>    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
68    <property name="build.javadocs.dir"   location="${build.dir}/javadocs"/>    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>
69    <property name="build.reports.dir"    location="${build.dir}/reports"/>    <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/>
70    <property name="build.checkstyle.dir" location="${build.dir}/checkstyle"/>    <property name="build.4jdk7.docs.dir"        location="${build.4jdk7.dir}/docs"/>
71    <property name="build.doccheck.dir"   location="${build.dir}/doccheck"/>  
72    <property name="build.filter.src.dir" location="${build.dir}/filtersrc"/>    <property name="build.jsr166x.dir"           location="${build.dir}/jsr166x"/>
73    <property name="build.dc-filter.dir"  location="${build.dir}/filterdocchk"/>    <property name="build.jsr166y.dir"           location="${build.dir}/jsr166y"/>
74    <property name="build.jsr166x.dir"    location="${build.dir}/jsr166x"/>    <property name="build.jsr166e.dir"           location="${build.dir}/jsr166e"/>
75    <property name="build.jsr166xlib.dir"        location="${build.dir}/jsr166xlib"/>    <property name="build.extra166y.dir"         location="${build.dir}/extra166y"/>
76    <property name="build.jsr166xjavadocs.dir"   location="${build.dir}/jsr166xjavadocs"/>  
77      <property name="build.jsr166x.classes.dir"   location="${build.jsr166x.dir}/classes"/>
78      <property name="build.jsr166y.classes.dir"   location="${build.jsr166y.dir}/classes"/>
79      <property name="build.jsr166e.classes.dir"   location="${build.jsr166e.dir}/classes"/>
80      <property name="build.extra166y.classes.dir" location="${build.extra166y.dir}/classes"/>
81    
82      <!-- JDK locations -->
83      <property name="jdks.home"  location="${user.home}/jdk"/>
84    
85      <macrodef name="defjdklocations">
86        <attribute name="v"/>
87        <sequential>
88        <property name="jdk@{v}.home"     location="${jdks.home}/jdk@{v}"/>
89        <property name="java@{v}"         location="${jdk@{v}.home}/bin/java"/>
90        <property name="javac@{v}"        location="${jdk@{v}.home}/bin/javac"/>
91        <property name="javadoc@{v}"      location="${jdk@{v}.home}/bin/javadoc"/>
92        <property name="jdk@{v}.src.home" location="${jdks.home}/src/jdk@{v}"/>
93        <local name="have.java.base"/>
94        <available property="have.java.base"
95          file="${jdk@{v}.src.home}/jdk/src/java.base/share/classes" type="dir"/>
96        <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/java.base/share/classes"
97          if:set="have.java.base"/>
98        <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/share/classes"
99          unless:set="have.java.base"/>
100        <local name="modules"/>
101        <available property="modules" file="${jdk@{v}.home}/jmods" type="dir"/>
102        <local name="boot.jar.dir"/>
103        <property name="boot.jar.dir"   location="${jdk@{v}.home}/jre/lib" unless:set="modules"/>
104        <path id="bootclasspath@{v}" unless:set="modules">
105          <pathelement path="${boot.jar.dir}/resources.jar"/>
106          <pathelement path="${boot.jar.dir}/rt.jar"/>
107          <pathelement path="${boot.jar.dir}/jsse.jar"/>
108          <pathelement path="${boot.jar.dir}/jce.jar"/>
109          <pathelement path="${boot.jar.dir}/charsets.jar"/>
110        </path>
111        <property name="bootclasspath@{v}" value="${toString:bootclasspath@{v}}" unless:set="modules"/>
112        </sequential>
113      </macrodef>
114    
115      <macrodef name="mirror-dir">
116        <attribute name="src"/>
117        <attribute name="dst"/>
118        <sequential>
119        <delete dir="@{dst}"/>
120        <mkdir dir="@{dst}"/>
121        <copy todir="@{dst}" preservelastmodified="true">
122          <fileset dir="@{src}"/>
123        </copy>
124        </sequential>
125      </macrodef>
126    
127      <defjdklocations v="6"/>
128      <defjdklocations v="7"/>
129      <defjdklocations v="8"/>
130      <defjdklocations v="9"/>
131    
132    <!-- Source locations -->    <!-- Source locations -->
133    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
134    <property name="test.src.dir"         location="${basedir}/src/test"/>    <property name="test.src.dir"         location="${basedir}/src/test"/>
   <property name="j1.src.dir"           location="${basedir}/src/javaone"/>  
135    <property name="loops.src.dir"        location="${basedir}/src/loops"/>    <property name="loops.src.dir"        location="${basedir}/src/loops"/>
136    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>
137    <property name="jtreg.src.dir"        location="${test.src.dir}/jtreg"/>    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>
138    <property name="ant.src.dir"          location="${basedir}/etc/ant"/>    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg"/>
139    <property name="stylesheet.dir"       location="${basedir}/etc/xsl"/>    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>
140      <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>
141    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
142    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
143    <property name="topsrc.dir"           location="${basedir}/src"/>    <property name="topsrc.dir"           location="${basedir}/src"/>
144    <property name="jsr166xsrc.dir"       location="${basedir}/src/jsr166x"/>    <property name="4jdk7src.dir"         location="${topsrc.dir}/jdk7"/>
145      <property name="jsr166xsrc.dir"       location="${topsrc.dir}/jsr166x"/>
146    <!-- Distribution locations -->    <property name="jsr166ysrc.dir"       location="${topsrc.dir}/jsr166y"/>
147    <property name="dist.javadocs.dir"    location="${dist.dir}/docs"/>    <property name="jsr166esrc.dir"       location="${topsrc.dir}/jsr166e"/>
148    <property name="dist.jsr166xjavadocs.dir"    location="${dist.dir}/jsr166xdocs"/>    <property name="extra166ysrc.dir"     location="${topsrc.dir}/extra166y"/>
149    
150      <!-- Javadoc locations -->
151      <property name="docs.dir"          location="${build.dir}/docs"/>
152      <property name="4jdk7docs.dir"     location="${build.4jdk7.dir}/docs"/>
153      <property name="jsr166xdocs.dir"   location="${build.jsr166x.dir}/docs"/>
154      <property name="jsr166ydocs.dir"   location="${build.jsr166y.dir}/docs"/>
155      <property name="jsr166edocs.dir"   location="${build.jsr166e.dir}/docs"/>
156      <property name="extra166ydocs.dir" location="${build.extra166y.dir}/docs"/>
157    
158      <property name="dist.docs.dir"          location="${dist.dir}/docs"/>
159      <property name="dist.4jdk7docs.dir"     location="${dist.dir}/jsr166-4jdk7docs"/>
160      <property name="dist.jsr166xdocs.dir"   location="${dist.dir}/jsr166xdocs"/>
161      <property name="dist.jsr166ydocs.dir"   location="${dist.dir}/jsr166ydocs"/>
162      <property name="dist.jsr166edocs.dir"   location="${dist.dir}/jsr166edocs"/>
163      <property name="dist.extra166ydocs.dir" location="${dist.dir}/extra166ydocs"/>
164    
165    <!-- Jar locations -->    <!-- Jar locations -->
166    <property name="product.jar"          location="${build.lib.dir}/jsr166.jar"/>    <property name="product.jar"      location="${build.dir}/jsr166.jar"/>
167    <property name="jsr166xproduct.jar"   location="${build.jsr166xlib.dir}/jsr166x.jar"/>    <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>
168    <property name="junit.jar"            location="${lib.dir}/junit.jar"/>    <property name="jsr166x.jar"      location="${build.jsr166x.dir}/jsr166x.jar"/>
169    <property name="concurrent.jar"       location="${lib.dir}/concurrent.jar"/>    <property name="jsr166y.jar"      location="${build.jsr166y.dir}/jsr166y.jar"/>
170      <property name="jsr166e.jar"      location="${build.jsr166e.dir}/jsr166e.jar"/>
171    <!-- Bootclasspath argument -->    <property name="extra166y.jar"    location="${build.extra166y.dir}/extra166y.jar"/>
172    <property name="bootclasspath.args"   value="-Xbootclasspath/p:${product.jar}"/>    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
173    
174    <!-- Test classpath -->    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
175    <path id="test.classpath">    <property name="java5.docroot.url"      value="http://docs.oracle.com/javase/1.5.0/docs"/>
176      <pathelement location="${build.testcases.dir}"/>    <property name="java6.docroot.url"      value="http://docs.oracle.com/javase/6/docs"/>
177      <pathelement location="${junit.jar}"/>    <property name="java7.docroot.url"      value="http://docs.oracle.com/javase/7/docs"/>
178    </path>    <property name="java8.docroot.url"      value="http://docs.oracle.com/javase/8/docs"/>
179      <!-- The expected canonical location does not yet exist as of 2015-11 -->
180      <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->
181      <property name="java9.docroot.url"      value="http://download.java.net/jdk9/docs"/>
182      <!-- Default jdk doc location (latest stable release seems best) -->
183      <property name="java.docroot.url"       value="${java8.docroot.url}"/>
184    
185      <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
186      <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>
187      <property name="java6.api.url"      value="${java6.docroot.url}/api/"/>
188      <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>
189      <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>
190      <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>
191      <property name="java.api.url"       value="${java.docroot.url}/api/"/>
192    
193      <!-- Define the "jtreg" task -->
194      <!-- See the docs in "jtreg -onlineHelp" -->
195      <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant"
196               classpath="${lib.dir}/jtreg.jar" />
197    
198      <!-- Tck options; see JSR166TestCase.java
199       To profile a single tck test class:
200       ant -Djsr166.profileTests=true -Djsr166.profileThreshold=10 -Djsr166.tckTestClass=CompletableFutureTest tck
201       To stress test a single tck test class:
202       ant -Djsr166.tckTestClass=CountedCompleterTest -Djsr166.runsPerTest=100 tck
203       To stress test a single tck test method:
204       ant -Djsr166.tckTestClass=RecursiveTaskTest -Djsr166.runsPerTest=1000 -Djsr166.methodFilter=testAbnormalInvokeAll3 tck
205      -->
206      <property name="jsr166.tckTestClass"     value="JSR166TestCase"/>
207      <macrodef name="run-tck-tests">
208        <attribute name="tck.src.dir" default="${tck.src.dir}"/>
209        <attribute name="target"/>
210        <attribute name="compile-target" default="@{target}"/>
211        <attribute name="workdir"/>
212        <attribute name="classes"/>
213        <attribute name="jvmflags" default="-ea -esa -Djsr166.testImplementationDetails=true"/>
214        <element name="javac-elements" optional="true"/>
215    
216        <sequential>
217    
218        <local name="modules"/>
219        <condition property="modules">
220          <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>
221        </condition>
222    
223        <mkdir dir="@{workdir}/tck-classes"/>
224    
225        <javac srcdir="@{tck.src.dir}"
226               destdir="@{workdir}/tck-classes"
227               debug="${build.debug}"
228               debuglevel="${build.debuglevel}"
229               deprecation="${build.deprecation}"
230               source="@{compile-target}"
231               target="@{compile-target}"
232               classpath="${junit.jar}"
233               includeAntRuntime="false"
234               includeJavaRuntime="false"
235               executable="${javac@{compile-target}}"
236               fork="true">
237    
238          <include name="*.java"/>
239          <compilerarg value="-XDignore.symbol.file=true"/>
240          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
241          <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
242          <compilerarg value="-Xpatch:${build.classes.dir}" if:set="modules"/>
243          <compilerarg line="${build.args}"/>
244          <javac-elements/>
245    
246        </javac>
247    
248        <java classname="${jsr166.tckTestClass}"
249              failonerror="true"
250              jvm="${java@{target}}"
251              fork="true">
252            <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
253            <jvmarg value="-Xpatch:${build.classes.dir}" if:set="modules"/>
254            <jvmarg line="@{jvmflags}"/>
255    
256            <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
257            <syspropertyset id="system-properties-used-by-tck">
258              <propertyref prefix="java.util.concurrent.ForkJoinPool"/>
259              <propertyref prefix="jsr166."/>
260              <propertyref name="test.timeout.factor"/>
261            </syspropertyset>
262    
263            <classpath>
264              <pathelement location="${junit.jar}"/>
265              <pathelement location="@{workdir}/tck-classes"/>
266            </classpath>
267        </java>
268    
269        </sequential>
270      </macrodef>
271    
272      <!-- Define jtreg test sets for different jdk versions -->
273      <fileset dir="${jtreg9.src.dir}">
274        <patternset id="jdk9.jtreg.tests">
275          <include name="**/*.java"/>
276        </patternset>
277      </fileset>
278    
279      <fileset dir="${jtreg8.src.dir}">
280        <patternset id="jdk8.jtreg.tests">
281          <include name="**/*.java"/>
282          <exclude name="**/SpliteratorCharacteristics.java"/>
283          <!-- https://bugs.openjdk.java.net/browse/JDK-6842353 -->
284          <exclude name="**/GCDuringIteration.java"/>
285        </patternset>
286      </fileset>
287    
288      <fileset dir="${jtreg7.src.dir}">
289        <patternset id="jdk7.jtreg.tests">
290          <include name="**/*.java"/>
291        </patternset>
292      </fileset>
293    
294      <!-- ant -Djtreg.flags=-timeoutFactor:4 -->
295      <property name="jtreg.flags" value=""/>
296    
297      <macrodef name="run-jtreg-tests">
298        <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->
299        <attribute name="source" default="7"/>
300        <attribute name="target"/>
301        <attribute name="workdir"/>
302        <attribute name="classes"/>
303        <attribute name="jtregflags" default=""/>
304    
305        <sequential>
306    
307        <!-- ant -Djtreg.verbose=time,fail,error jtreg -->
308        <property name="jtreg.verbose" value="nopass,fail,error"/>
309    
310        <local name="modules"/>
311        <condition property="modules">
312          <available file="${jdk@{target}.home}/jmods" type="dir"/>
313        </condition>
314    
315        <delete dir="@{workdir}/JTwork"   quiet="true"/>
316        <delete dir="@{workdir}/JTreport" quiet="true"/>
317        <mkdir dir="@{workdir}/JTwork/scratch"/>
318        <!-- workaround for https://bugs.openjdk.java.net/browse/CODETOOLS-7901571 -->
319        <mkdir dir="@{workdir}/JTreport/html"/>
320        <mkdir dir="@{workdir}/JTreport/text"/>
321        <jtreg dir="${jtreg@{target}.src.dir}"
322               jdk="${jdk@{target}.home}"
323               workDir="@{workdir}/JTwork"
324               reportDir="@{workdir}/JTreport">
325          <patternset refid="jdk@{target}.jtreg.tests"/>
326          <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
327          <arg value="-Xpatch:${build.classes.dir}" if:set="modules"/>
328          <arg value="-agentvm"/>
329          <arg value="-verbose:${jtreg.verbose}"/>
330          <arg value="-vmoptions:-esa -ea"/>
331          <arg value="-automatic"/>
332          <arg value="-k:!ignore"/>
333          <arg line="@{jtregflags}"/>
334          <arg line="${jtreg.flags}"/>
335        </jtreg>
336        </sequential>
337      </macrodef>
338    
339    <!-- ALoops classpath -->    <!-- ALoops classpath -->
340    <path id="loops.classpath">    <path id="loops.classpath">
341      <pathelement location="${build.loops.dir}"/>      <pathelement location="${build.loops.dir}"/>
342    </path>    </path>
343    
344    <!-- J1 classpath -->    <!-- Support @jls tag, used in jdk8+ javadoc -->
345    <path id="j1.classpath">    <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
346      <pathelement location="${build.j1.dir}"/>    <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
     <pathelement location="${junit.jar}"/>  
     <pathelement location="${concurrent.jar}"/>  
   </path>  
   
347    
348    <!-- Main targets -->    <!-- Main targets -->
349    
350      <property name="build.main.java.version" value="9"/>
351      <property name="build.main.javac" value="${javac9}"/>
352    
353      <target name="dists"
354              depends="dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
355              description="Builds all public jars and docs"/>
356    
357    <target name="compile"    <target name="compile"
358            depends="init, configure-compiler"            depends="configure-compiler"
359            description="Compiles main sources to build folder">            description="Compiles src/main sources to build dir">
360    
361        <local name="modules"/>
362        <condition property="modules">
363          <and>
364            <available file="${jdk9.home}/jmods" type="dir"/>
365            <equals arg1="9" arg2="${build.main.java.version}"/>
366          </and>
367        </condition>
368    
369      <mkdir dir="${build.classes.dir}"/>      <local name="destdir"/>
370        <property name="destdir" value="${build.classes.dir}/java.base" if:set="modules"/>
371        <property name="destdir" value="${build.classes.dir}" unless:set="modules"/>
372    
373        <mkdir dir="${destdir}"/>
374    
375      <javac srcdir="${src.dir}"      <javac srcdir="${src.dir}"
376            destdir="${build.classes.dir}"             destdir="${destdir}"
377              debug="${build.debug}"             debug="${build.debug}"
378         debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
379        deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
380             source="${build.sourcelevel}"             classpath=""
381               fork="true">             includeAntRuntime="false"
382               includeJavaRuntime="false"
383               executable="${build.main.javac}"
384               fork="true">
385    
386        <include name="**/*.java"/>        <include name="**/*.java"/>
387        <exclude name="java/lang/**"/>        <compilerarg value="-Xmodule:java.base" if:set="modules"/>
388          <compilerarg value="-Xprefer:source"/>
389          <compilerarg value="-XDignore.symbol.file=true"/>
390          <compilerarg value="-Xlint:all"/>
391          <compilerarg value="-Werror"/>
392          <compilerarg value="-Xdoclint:all/protected"/>
393          <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
394        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
395    
396      </javac>      </javac>
397    
398        <!-- We need jdk9's Contended annotation, but at compile time only -->
399        <delete file="${destdir}/jdk/internal/vm/annotation/Contended.class"/>
400    </target>    </target>
401    
402    
   
403    <target name="jar"    <target name="jar"
404            depends="compile"            depends="compile"
405            description="Builds library jar from compiled sources">            description="Builds library jar from compiled sources">
406    
     <mkdir dir="${build.lib.dir}"/>  
   
407      <jar destfile="${product.jar}">      <jar destfile="${product.jar}">
408        <fileset dir="${build.classes.dir}"/>        <fileset dir="${build.classes.dir}"/>
409          <manifest>
410            <attribute name="Built-By" value="${user.name}"/>
411            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
412          </manifest>
413      </jar>      </jar>
   
414    </target>    </target>
415    
416    
   
   <target name="test"  
           depends="init, configure-tests, report-tests"  
           description="Runs all tests (requires JUnit 3.8.1 in ${ant.home}/lib)" />  
   
   
   
417    <target name="docs"    <target name="docs"
418            description="Builds javadocs with custom tags to build folder">            description="Builds javadocs for src/main to dist dir">
   
     <delete dir="${build.javadocs.dir}"/>  
     <mkdir dir="${build.javadocs.dir}"/>  
   
     <javadoc destdir="${build.javadocs.dir}"  
                 link="http://java.sun.com/j2se/1.4.1/docs/api"  
             overview="${src.dir}/intro.html"  
               source="${build.sourcelevel}">  
419    
420        <tag name="revised" description="Last revised:"/>      <delete dir="${docs.dir}"/>
421        <tag name="spec"    description="Specified by:"/>      <mkdir dir="${docs.dir}"/>
   
       <packageset dir="${src.dir}"/>  
   
     </javadoc>  
   
   </target>  
422    
423        <!-- the packagenames="none" hack below prevents scanning the -->
424        <!-- sourcepath for packages -->
425    
426        <javadoc destdir="${docs.dir}"
427    <target name="doccheck"               packagenames="none"
428            depends="filter-doccheck"               link="${java9.api.url}"
429            description="Reports on javadoc style errors">               overview="${src.dir}/intro.html"
430                 access="${build.javadoc.access}"
431      <delete dir="${build.doccheck.dir}"/>               sourcepath="${src.dir}:${jdk9.src.dir}"
432      <mkdir dir="${build.doccheck.dir}"/>               classpath=""
433                 executable="${javadoc9}">
434      <javadoc doclet="com.sun.tools.doclets.doccheck.DocCheck"        <fileset dir="${src.dir}" defaultexcludes="yes">
435           docletpath="${lib.dir}/doccheck.jar"          <include name="**/*.java"/>
436              destdir="${build.doccheck.dir}">        </fileset>
437        <packageset dir="${build.dc-filter.dir}"/>        <arg line="-Xdocrootparent ${java9.docroot.url}"/>
438          <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
439          <arg value="-XDignore.symbol.file=true"/>
440    <!--  TODO     <arg value="-Xmodule:java.base"/> -->
441          <arg value="-tag"/>
442          <arg value="${javadoc.jls.option}"/>
443          <arg value="-tag"/>
444          <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>
445          <arg value="-tag"/>
446          <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
447          <arg value="-tag"/>
448          <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
449    <!-- tags added in jdk9 -->
450          <arg value="-tag"/>
451          <arg value="revised:X"/>
452          <arg value="-tag"/>
453          <arg value="spec:X"/>
454      </javadoc>      </javadoc>
   
     <echo>DocCheck output is in ${build.doccheck.dir}</echo>  
   
455    </target>    </target>
456    
457    
   
   <target name="checkstyle"  
           depends="filter-src"  
           description="Reports on style errors in Java source (verbose, mostly chaff)">  
   
     <taskdef resource="checkstyletask.properties"  
             classpath="${lib.dir}/checkstyle-all-3.1.jar"/>  
   
     <mkdir dir="${build.checkstyle.dir}"/>  
   
     <checkstyle config="etc/checkstyle/sun_checks.xml"  
        failOnViolation="false">  
       <formatter type="xml" toFile="${build.checkstyle.dir}/checkstyle-report.xml"/>  
       <fileset dir="${build.filter.src.dir}" includes="**/*.java"/>  
     </checkstyle>  
   
     <style in="${build.checkstyle.dir}/checkstyle-report.xml"  
           out="${build.checkstyle.dir}/checkstyle-report.html"  
         style="${stylesheet.dir}/checkstyle-frames.xsl"/>  
   
   </target>  
   
   
   
458    <target name="dist"    <target name="dist"
459            depends="init, dist-clean, dist-jar, dist-docs"            depends="dist-clean, dist-jar, dist-docs"
460            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
461    
462    
   
463    <target name="release"    <target name="release"
464            depends="dist"            depends="dist"
465            description="Puts entire CVS tree, plus distribution productions, in a jar">            description="Puts entire CVS tree, plus distribution productions, in a jar">
# Line 221  Line 474 
474        <exclude name="src/emulation/**"/>        <exclude name="src/emulation/**"/>
475        <exclude name="**/SyntaxTest.java"/>        <exclude name="**/SyntaxTest.java"/>
476        <exclude name="**/SuperfluousAbstract.java"/>        <exclude name="**/SuperfluousAbstract.java"/>
477          <manifest>
478            <attribute name="Built-By" value="${user.name}"/>
479            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
480          </manifest>
481      </jar>      </jar>
   
482    </target>    </target>
483    
484    
   
485    <target name="clean"    <target name="clean"
486            description="Removes all build products">            description="Removes all build products">
487    
488      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
     <delete dir="${build.classes.dir}"/>  
     <delete dir="${build.lib.dir}"/>  
489    
490    </target>    </target>
491    
492    
   
493    <target name="dist-clean"    <target name="dist-clean"
494            description="Removes all build and distribution products">            description="Removes all build and distribution products">
495    
496        <delete dir="${build.dir}"/>
497      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
498    
499    </target>    </target>
500    
501    
502      <target name="dist-jar"
503              depends="clean, jar">
504        <copy file="${product.jar}" todir="${dist.dir}"/>
505      </target>
506    
507    <target name="dist-docs"    <target name="dist-docs"
508            description="Builds javadocs without custom tags to dist folder">            depends="clean, docs">
509        <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
     <delete dir="${dist.javadocs.dir}"/>  
     <mkdir dir="${dist.javadocs.dir}"/>  
   
     <javadoc destdir="${dist.javadocs.dir}"  
                 link="http://java.sun.com/j2se/1.4.2/docs/api"  
             overview="${src.dir}/intro.html"  
               source="${build.sourcelevel}">  
   
       <packageset dir="${src.dir}"/>  
   
     </javadoc>  
   
510    </target>    </target>
511    
512      <target name="tck"
513              depends="jar"
514              description="Runs tck tests for main directly">
515    
516        <run-tck-tests
517          target="${build.main.java.version}"
518          workdir="${build.dir}"
519          classes="${product.jar}"/>
520      </target>
521    
522    <!-- Internal targets -->    <target name="tck-parallelism-1"
523              description="Runs tck with given common pool parallelism">
524        <antcall target="tck">
525          <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
526        </antcall>
527      </target>
528    
529    <target name="init">    <target name="tck-parallelism-0"
530              description="Runs tck with given common pool parallelism">
531        <antcall target="tck">
532          <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
533        </antcall>
534      </target>
535    
536      <!-- Version is kept in a separate file -->    <target name="jtreg"
537      <loadfile property="version" srcFile="version.properties"/>            depends="jar"
538      <echo>Building JSR-166 version ${version}</echo>            description="Runs jtreg tests for main using the jtreg ant task">
539      <echo>java.home is ${java.home}</echo>      <run-jtreg-tests
540           target="${build.main.java.version}"
541           workdir="${build.dir}"
542           classes="${product.jar}"/>
543      </target>
544    
545      <target name="test"
546              depends="tck, tck-parallelism-1, jtreg"
547              description="Runs tck and jtreg tests for main">
548    </target>    </target>
549    
550      <target name="jtreg8" description="Runs jtreg tests with jdk8">
551    
552    <target name="dist-jar"      <antcall target="jtreg">
553            depends="clean, jar">        <param name="build.main.java.version" value="8"/>
554          <param name="build.main.javac" value="${javac8}"/>
555      <copy file="${product.jar}" todir="${dist.dir}"/>      </antcall>
556    
557    </target>    </target>
558    
559      <target name="test89"
560              description="Runs tck and jtreg tests for main for multiple java versions">
561    
562    <target name="compile-ant-filter"      <antcall target="clean"/>
563            depends="init">      <antcall target="test">
564          <param name="build.main.java.version" value="8"/>
565          <param name="build.main.javac" value="${javac8}"/>
566        </antcall>
567    
568      <mkdir dir="${build.ant.dir}"/>      <antcall target="clean"/>
569        <antcall target="test">
570      <javac srcdir="${ant.src.dir}"        <param name="build.main.java.version" value="9"/>
571            destdir="${build.ant.dir}"        <param name="build.main.javac" value="${javac9}"/>
572             source="1.4"/>      </antcall>
573    
574    </target>    </target>
575    
576    
   <target name="filter-src"  
           depends="compile-ant-filter">  
   
     <mkdir dir="${build.filter.src.dir}"/>  
577    
578      <copy todir="${build.filter.src.dir}">    <target name="configure-compiler">
579        <fileset dir="${src.dir}">      <fail message="ant version too old">
580          <include name="**/*.html"/>        <condition>
581        </fileset>          <not> <antversion atleast="1.9.1"/> </not>
582      </copy>        </condition>
583        </fail>
584    
585      <copy todir="${build.filter.src.dir}">      <property name="unchecked.option" value="-Xlint:unchecked"/>
       <fileset dir="${src.dir}">  
         <exclude name="**/*.html"/>  
         <!-- Files excluded from dist-docs -->  
         <exclude name="java/util/Random.*"/>  
         <exclude name="sun/misc/Unsafe.*"/>  
       </fileset>  
       <!--  
       <filterchain>  
       -->  
   
         <!--  
          # 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.)  
          -->  
   
         <!--  
         <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>  
         -->  
   
       <!--  
       </filterchain>  
       -->  
     </copy>  
586    
587    </target>      <condition property="warnunchecked.arg" value="${unchecked.option}">
588          <istrue value="${build.warnunchecked}"/>
589        </condition>
590    
591        <property name="warnunchecked.arg" value=""/>
592    
   <target name="filter-doccheck"  
           depends="filter-src">  
593    
594      <mkdir dir="${build.dc-filter.dir}"/>      <!-- Common options in javac invocations -->
595        <property name="build.args" value="${warnunchecked.arg}"/>
596    
597      <copy todir="${build.dc-filter.dir}">    </target>
       <fileset dir="${build.filter.src.dir}">  
         <include name="**/*.html"/>  
       </fileset>  
     </copy>  
598    
     <property name="generic.declarations"  
              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 {}"  
     />  
   
     <copy todir="${build.dc-filter.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>  
599    
       </filterchain>  
     </copy>  
600    
601    </target>    <!-- Various demos and test programs -->
602    
603    
604    <target name="compile-tests"    <target name="loops" depends="configure-compiler"
605            depends="jar">            description="Benchmark from Doug Lea's AQS paper">
606    
607      <mkdir dir="${build.testcases.dir}"/>      <mkdir dir="${build.loops.dir}"/>
608    
609      <javac srcdir="${tck.src.dir}"      <javac srcdir="${loops.src.dir}"
610            destdir="${build.testcases.dir}"            destdir="${build.loops.dir}"
611              debug="${build.debug}"              debug="${build.debug}"
612         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
613        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
614             source="${build.sourcelevel}"             source="${build.sourcelevel}"
615               target="${build.sourcelevel}"
616               fork="true">               fork="true">
617    
       <compilerarg value="${bootclasspath.args}"/>  
618        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
619          <classpath refid="loops.classpath"/>
620        <classpath refid="test.classpath"/>        <compilerarg value="-XDignore.symbol.file=true"/>
621    
622      </javac>      </javac>
623    
624      <javac srcdir="${test.src.dir}"      <java classname="ALoops" fork="true">
625            destdir="${build.testcases.dir}"        <classpath refid="loops.classpath"/>
626              debug="${build.debug}"      </java>
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
   
       <include name="jsr166/test/**"/>  
627    
628        <compilerarg value="${bootclasspath.args}"/>    </target>
       <compilerarg line="${build.args}"/>  
629    
       <classpath refid="test.classpath"/>  
630    
631      </javac>    <target name="compile-test-loops" depends="jar"
632              description="compile all the perf tests in src/test/loops">
633    
634  <!--      <mkdir dir="${build.dir}/test/loops"/>
     <javac srcdir="${jtreg.src.dir}"  
           destdir="${build.testcases.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
635    
636        <compilerarg value="${bootclasspath.args}"/>      <javac srcdir="${basedir}/src/test/loops"
637               destdir="${build.dir}/test/loops"
638               debug="${build.debug}"
639               debuglevel="${build.debuglevel}"
640               deprecation="${build.deprecation}"
641               includeAntRuntime="false"
642               includeJavaRuntime="false"
643               executable="${javac9}"
644               fork="true">
645    
646          <include name="*.java"/>
647          <compilerarg value="-XDignore.symbol.file=true"/>
648          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
649          <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
650        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
651    
       <classpath refid="test.classpath"/>  
   
652      </javac>      </javac>
 -->  
653    
654    </target>    </target>
655    
656    
657    <target name="run-tests"    <!-- jsr166 4jdk7 -->
           depends="compile-tests">  
   
     <!-- May be overridden by user.properties -->  
     <property name="testcase" value="*"/>  
   
     <mkdir dir="${build.reports.dir}"/>  
658    
659      <junit printsummary="true"    <target name="4jdk7compile"
660               showoutput="true"            depends="configure-compiler"
661            errorProperty="junit.failed"            description="Compiles src/jdk7 sources, targeting jdk7">
662          failureProperty="junit.failed"  
663                      dir="${build.reports.dir}"      <mkdir dir="${build.4jdk7.classes.dir}"/>
664                     fork="true">  
665        <javac srcdir="${4jdk7src.dir}"
666        <jvmarg value="${bootclasspath.args}"/>             destdir="${build.4jdk7.classes.dir}"
667        <jvmarg value="-server"/>             debug="${build.debug}"
668        <jvmarg value="-showversion"/>             debuglevel="${build.debuglevel}"
669               deprecation="${build.deprecation}"
670               source="6"
671               target="6"
672               classpath=""
673               bootclasspath="${bootclasspath6}"
674               includeAntRuntime="false"
675               includeJavaRuntime="false"
676               executable="${javac7}"
677               fork="true">
678    
679        <classpath refid="test.classpath"/>        <include name="**/*.java"/>
680          <compilerarg value="-Xprefer:source"/>
681          <compilerarg value="-XDignore.symbol.file=true"/>
682          <compilerarg value="-Xlint:all"/>
683          <compilerarg value="-Werror"/>
684          <compilerarg line="${build.args}"/>
685    
686        <formatter type="xml"/>      </javac>
687      </target>
688    
689        <batchtest todir="${build.reports.dir}" unless="no.test.tck">    <target name="4jdk7doclint"
690          <fileset dir="${tck.src.dir}">            depends="configure-compiler"
691            <include name="**/${testcase}Test.java"/>            description="Finds doclint warnings">
692          </fileset>  
693        </batchtest>      <mkdir dir="${build.4jdk7.classes.dir}"/>
694    
695        <batchtest todir="${build.reports.dir}" if="do.test.old">      <javac srcdir="${4jdk7src.dir}"
696          <fileset dir="${test.src.dir}">             destdir="${build.4jdk7.classes.dir}"
697            <include name="jsr166/test/**/${testcase}Test.java"/>             debug="${build.debug}"
698          </fileset>             debuglevel="${build.debuglevel}"
699        </batchtest>             deprecation="${build.deprecation}"
700               source="6"
701  <!--             target="6"
702        <batchtest todir="${build.reports.dir}" if="do.test.jtreg">             classpath=""
703          <fileset dir="${jtreg.src.dir}">             bootclasspath="${bootclasspath6}"
704            <include name="**/${testcase}Test.java"/>             includeAntRuntime="false"
705          </fileset>             includeJavaRuntime="false"
706        </batchtest>             executable="${javac8}"
707  -->             fork="true">
708    
709      </junit>        <include name="**/*.java"/>
710          <compilerarg value="-Xprefer:source"/>
711          <compilerarg value="-XDignore.symbol.file=true"/>
712          <compilerarg value="-Xlint:all"/>
713          <compilerarg value="-Xdoclint:all/protected"/>
714          <compilerarg line="${build.args}"/>
715    
716        </javac>
717    </target>    </target>
718    
719    
720    <target name="report-tests"    <target name="4jdk7jar"
721            depends="run-tests">            depends="4jdk7compile"
722              description="Builds library jar from compiled sources">
     <!-- Sets junit.report.format to frames if redirection is present,  
          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"/>  
   
     <junitreport todir="${build.reports.dir}">  
       <fileset dir="${build.reports.dir}">  
         <include name="TEST-*.xml"/>  
       </fileset>  
       <report styledir="${stylesheet.dir}"  
                 format="${junit.report.format}"  
                  todir="${build.reports.dir}"  
       />  
     </junitreport>  
723    
724      <fail message="Test Cases Failed" if="junit.failed"/>      <jar destfile="${4jdk7product.jar}">
725          <fileset dir="${build.4jdk7.classes.dir}"/>
726          <manifest>
727            <attribute name="Built-By" value="${user.name}"/>
728            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
729          </manifest>
730        </jar>
731    
732    </target>    </target>
733    
734    
735    <target name="configure-compiler">    <target name="4jdk7-tck"
736              depends="4jdk7jar"
737      <property name="unchecked.option" value="-Xlint:unchecked"/>            description="Runs tck tests for jsr166-4jdk7 directly">
738    
739        <run-tck-tests
740          target="7"
741          workdir="${build.4jdk7.dir}"
742          classes="${4jdk7product.jar}">
743          <javac-elements>
744            <!-- JDK8+ test classes -->
745            <exclude name="*8Test.java"/>
746            <exclude name="*9Test.java"/>
747            <exclude name="*10Test.java"/>
748            <exclude name="DoubleAccumulatorTest.java"/>
749            <exclude name="DoubleAdderTest.java"/>
750            <exclude name="LongAccumulatorTest.java"/>
751            <exclude name="LongAdderTest.java"/>
752            <exclude name="CompletableFutureTest.java"/>
753            <exclude name="SplittableRandomTest.java"/>
754            <exclude name="StampedLockTest.java"/>
755            <exclude name="SubmissionPublisherTest.java"/>
756          </javac-elements>
757        </run-tck-tests>
758      </target>
759    
     <condition property="warnunchecked.arg" value="${unchecked.option}">  
       <istrue value="${build.warnunchecked}"/>  
     </condition>  
760    
761      <property name="warnunchecked.arg" value=""/>    <target name="4jdk7-tck-junit"
762              depends="4jdk7compile"
763              description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">
764    
765        <junit printsummary="true"
766               showoutput="true"
767               errorProperty="junit.failed"
768               failureProperty="junit.failed"
769               includeantruntime="true"
770               jvm="${java7}"
771               fork="true">
772    
773      <!-- Common options in javac invocations -->        <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
774      <property name="build.args" value="${warnunchecked.arg}"/>        <jvmarg value="-server"/>
775    
776    </target>        <classpath>
777            <pathelement location="${junit.jar}"/>
778            <pathelement location="${build.4jdk7.tck.classes.dir}"/>
779          </classpath>
780    
781          <formatter type="brief"/>
782    
783    <target name="configure-tests"        <test name="${jsr166.tckTestClass}" haltonfailure="no">
784         depends="configure-compiler">        </test>
785    
786      <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->      </junit>
787      <available property="junit.available"    </target>
                classname="junit.framework.Protectable"/>  
788    
789      <!-- Xalan -->    <target name="4jdk7-jtreg"
790      <available property="xalan.available"            depends="4jdk7jar"
791                 classname="org.apache.xalan.Version"/>            description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">
792        <run-jtreg-tests
793           target="7"
794           workdir="${build.4jdk7.dir}"
795           classes="${4jdk7product.jar}"/>
796      </target>
797    
798    
799      <!-- Ant 1.6beta and later don't need or want this check -->    <target name="4jdk7-test"
800      <!--            depends="4jdk7-tck, 4jdk7-jtreg"
801      <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests"            description="Runs tck and jtreg tests for jsr166-4jdk7">
802            unless="junit.available"/>    </target>
803    
     <fail message="Need Xalan 2.5.1 jar in ${ant.home}${file.separator}lib to run tests"  
           unless="xalan.available"/>  
     -->  
804    
805      <target name="4jdk7docs"
806              description="Builds javadocs for src/jdk7 to dist dir">
807    
808        <delete dir="${4jdk7docs.dir}"/>
809        <mkdir dir="${4jdk7docs.dir}"/>
810    
811        <javadoc destdir="${4jdk7docs.dir}"
812                 packagenames="none"
813                 link="${java7.api.url}"
814                 overview="${4jdk7src.dir}/intro.html"
815                 access="${build.javadoc.access}"
816                 sourcepath="${4jdk7src.dir}:${jdk7.src.dir}"
817                 classpath=""
818                 executable="${javadoc7}">
819          <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
820            <include name="**/*.java"/>
821          </fileset>
822          <arg line="-Xdocrootparent ${java7.docroot.url}"/>
823          <arg value="-XDignore.symbol.file=true"/>
824        </javadoc>
825    </target>    </target>
826    
827    
828      <target name="4jdk7dist"
829              depends="4jdk7dist-jar, 4jdk7dist-docs"
830              description="Puts all distributable products in single hierarchy"/>
831    
   <!-- Anthill targets -->  
832    
833    <target name="anthill-build">    <target name="4jdk7clean"
834              description="Removes all 4jdk7 build products">
835    
836      <!-- Override this in user.properties -->      <delete dir="${build.4jdk7.dir}"/>
     <property name="tiger.home" location="e:/j2sdk1.5.0"/>  
837    
     <exec resultproperty="result.property" dir="${basedir}" executable="${tiger.home}/bin/java">  
       <arg value="-Xmx256000000"/>  
       <!-- classpath of new JVM -->  
       <arg value="-classpath"/> <arg path="${java.class.path}"/>  
       <!-- location of Ant home directory -->  
       <arg value="-Dant.home=${ant.home}"/>  
       <!-- the Ant main class -->  
       <arg value="org.apache.tools.ant.Main"/>  
       <!-- The build file -->  
       <arg value="-buildfile"/>  <arg value="build.xml"/>  
       <!-- the target to build on the new Ant instance -->  
       <arg value="-DJAVA_HOME=${tiger.home}"/>  
       <arg value="do-anthill-build"/>  
     </exec>  
838    </target>    </target>
839    
   <target name="do-anthill-build"  
           depends="jar, test, docs, dist-docs"/>  
840    
841    <target name="anthill-publish">    <target name="4jdk7dist-jar"
842              depends="4jdk7clean, 4jdk7jar">
843        <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
844      </target>
845    
     <copy todir="${deployDir}/docs/private">  
       <fileset dir="${build.javadocs.dir}"/>  
     </copy>  
846    
847      <copy todir="${deployDir}/docs/public">    <target name="4jdk7dist-docs"
848        <fileset dir="${dist.javadocs.dir}"/>            depends="4jdk7clean, 4jdk7docs">
849      </copy>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
850      </target>
851    
     <copy tofile="${deployDir}/index.html"  
           file="${basedir}/etc/anthill-index.html"/>  
852    
853      <copy todir="${deployDir}/notes">    <!-- jsr166x -->
       <fileset dir="${basedir}/etc/notes"/>  
     </copy>  
854    
855    </target>    <target name="jsr166xcompile"
856              depends="configure-compiler"
857              description="Compiles jsr166x sources to build dir">
858    
859        <mkdir dir="${build.jsr166x.classes.dir}"/>
860    
861        <javac srcdir="${topsrc.dir}"
862               destdir="${build.jsr166x.classes.dir}"
863               debug="${build.debug}"
864               debuglevel="${build.debuglevel}"
865               deprecation="${build.deprecation}"
866               classpath=""
867               bootclasspath="${bootclasspath6}"
868               source="5"
869               target="5"
870               includeAntRuntime="false"
871               includeJavaRuntime="false"
872               executable="${javac7}"
873               fork="true">
874    
875          <include name="jsr166x/**/*.java"/>
876          <compilerarg value="-XDignore.symbol.file=true"/>
877          <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
878          <compilerarg value="-Werror"/>
879          <compilerarg line="${build.args}"/>
880    
881    <!-- Various demos and test programs -->      </javac>
882      </target>
883    
884    
885    <target name="sample" depends="init, configure-compiler"    <target name="jsr166xjar"
886            description="Standalone demo program">            depends="jsr166xcompile"
887              description="Builds library jar from compiled sources">
888    
889      <mkdir dir="${build.testcases.dir}"/>      <jar destfile="${jsr166x.jar}">
890          <fileset dir="${build.jsr166x.classes.dir}"/>
891          <manifest>
892            <attribute name="Built-By" value="${user.name}"/>
893            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
894          </manifest>
895        </jar>
896    
897      <javac srcdir="${test.src.dir}"    </target>
           destdir="${build.testcases.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
898    
       <include name="jsr166/test/Sample.java"/>  
899    
900      </javac>    <target name="jsr166xdocs"
901              description="Builds javadocs to dist dir">
902    
903      <copy todir="${build.testcases.dir}">      <delete dir="${jsr166xdocs.dir}"/>
904        <fileset dir="${test.src.dir}">      <mkdir dir="${jsr166xdocs.dir}"/>
         <include name="**/*.properties"/>  
       </fileset>  
     </copy>  
905    
906        <javadoc destdir="${jsr166xdocs.dir}"
907                 packagenames="jsr166x.*"
908                 link="${java.api.url}"
909                 access="${build.javadoc.access}"
910                 sourcepath="${topsrc.dir}:${jdk6.src.dir}"
911                 bootclasspath="${bootclasspath6}"
912                 source="5"
913                 executable="${javadoc7}">
914          <arg line="-Xdocrootparent ${java.docroot.url}"/>
915          <arg value="-XDignore.symbol.file=true"/>
916    
917      <java classname="jsr166.test.Sample" fork="true">      </javadoc>
       <classpath refid="test.classpath"/>  
       <!-- <jvmarg value="-ea"/> -->  
       <!-- <jvmarg value="-server"/> -->  
       <!-- <arg value="1000"/> -->  
     </java>  
918    </target>    </target>
919    
920    
921    <target name="loops" depends="init, configure-compiler"    <target name="jsr166xdist"
922            description="Benchmark from Doug Lea's AQS paper">            depends="jsr166xdist-jar, jsr166xdist-docs"
923              description="Puts all distributable products in single hierarchy"/>
     <mkdir dir="${build.loops.dir}"/>  
   
     <javac srcdir="${loops.src.dir}"  
           destdir="${build.loops.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
924    
       <compilerarg line="${build.args}"/>  
       <classpath refid="loops.classpath"/>  
925    
926      </javac>    <target name="jsr166xclean"
927              description="Removes all jsr166x build products">
928    
929      <java classname="ALoops" fork="true">      <delete dir="${build.jsr166x.dir}"/>
       <classpath refid="loops.classpath"/>  
     </java>  
930    
931    </target>    </target>
932    
933    
934    <target name="compile-j1" depends="init, configure-compiler">    <target name="jsr166xdist-jar"
935              depends="jsr166xclean, jsr166xjar">
936        <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
937      </target>
938    
939      <mkdir dir="${build.j1.dir}"/>    <target name="jsr166xdist-docs"
940              depends="jsr166xclean, jsr166xdocs">
941        <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
942      </target>
943    
944      <javac srcdir="${j1.src.dir}"    <!-- jsr166y -->
           destdir="${build.j1.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}" >  
945    
       <include name="**/*.java"/>  
       <exclude name="**/dijkstra/**"/>  
946    
947      <target name="jsr166ycompile"
948              depends="configure-compiler"
949              description="Compiles jsr166y sources">
950    
951        <mkdir dir="${build.jsr166y.classes.dir}"/>
952    
953        <javac srcdir="${topsrc.dir}"
954               destdir="${build.jsr166y.classes.dir}"
955               debug="${build.debug}"
956               debuglevel="${build.debuglevel}"
957               deprecation="${build.deprecation}"
958               source="6"
959               target="6"
960               classpath=""
961               bootclasspath="${bootclasspath6}"
962               includeAntRuntime="false"
963               includeJavaRuntime="false"
964               executable="${javac7}"
965               fork="true">
966    
967          <include name="jsr166y/**/*.java"/>
968          <compilerarg value="-XDignore.symbol.file=true"/>
969          <compilerarg value="-Xlint:all"/>
970          <compilerarg value="-Werror"/>
971        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
       <classpath refid="j1.classpath"/>  
972    
973      </javac>      </javac>
   
974    </target>    </target>
975    
976    
977    <target name="sw" depends="compile-j1"    <target name="jsr166yjar"
978            description="Runs the SwingWorker demo">            depends="jsr166ycompile"
979              description="Builds library jar from compiled sources">
     <!--  
     <java classname="jsr166.swing.SwingWorkerDemo" fork="true">  
       <classpath refid="j1.classpath"/>  
     </java>  
     -->  
   
     <copy todir="${build.j1.dir}" file="${j1.src.dir}/jsr166/swing/SwingWorker.html"/>  
980    
981      <exec dir="${build.j1.dir}" executable="appletviewer.exe">      <jar destfile="${jsr166y.jar}" index="true">
982        <arg value="${build.j1.dir}/SwingWorker.html"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
983      </exec>        <manifest>
984            <attribute name="Built-By" value="${user.name}"/>
985            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
986          </manifest>
987        </jar>
988    
989    </target>    </target>
990    
   <target name="j1" depends="compile-j1"  
           description="Runs a standalone JavaOne program">  
991    
992      <java classname="${j1.test}" fork="true">    <target name="jsr166ydocs"
993        <classpath refid="j1.classpath"/>            description="Builds javadocs to dist dir">
       <jvmarg value="-client"/>  
994    
995        <!-- TestPseudoRandom args -->      <delete dir="${jsr166ydocs.dir}"/>
996        <arg value="2"/>      <mkdir dir="${jsr166ydocs.dir}"/>
       <arg value="25"/>  
       <arg value="100000"/>  
997    
998        <!-- WebCrawler args -->      <javadoc destdir="${jsr166ydocs.dir}"
999        <!--               packagenames="jsr166y.*"
1000        <arg value="jsr166.webcrawler.WebCrawler3"/>               link="${java.api.url}"
1001        <arg value="http://www.priorartisans.com"/>               access="${build.javadoc.access}"
1002        <arg value="25"/>               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1003        -->               bootclasspath="${bootclasspath6}"
1004                 source="6"
1005      </java>               executable="${javadoc7}">
1006          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1007          <arg value="-XDignore.symbol.file=true"/>
1008    
1009        </javadoc>
1010    </target>    </target>
1011    
1012    
1013    <target name="test-j1" depends="compile-j1"    <target name="jsr166ydist"
1014            description="Runs testcases from the JavaOne source directories">            depends="jsr166ydist-jar, jsr166ydist-docs"
1015              description="Puts all distributable products in single hierarchy"/>
1016    
     <junit printsummary="true"  
              showoutput="true"  
           errorProperty="junit.failed"  
         failureProperty="junit.failed"  
                     dir="${build.j1.dir}"  
                    fork="true">  
   
       <!-- <jvmarg value="-server"/> -->  
       <classpath refid="j1.classpath"/>  
       <formatter type="xml"/>  
   
       <batchtest todir="${build.j1.dir}">  
         <fileset dir="${j1.src.dir}">  
           <include name="**/*Test.java"/>  
         </fileset>  
       </batchtest>  
1017    
1018      </junit>    <target name="jsr166yclean"
1019              description="Removes all jsr166y build products">
     <available property="junit.report.format"  
                   value="frames"  
               classname="org.apache.xalan.lib.Redirect"/>  
     <property name="junit.report.format" value="noframes"/>  
   
     <junitreport todir="${build.j1.dir}">  
       <fileset dir="${build.j1.dir}">  
         <include name="TEST-*.xml"/>  
       </fileset>  
       <report styledir="${stylesheet.dir}"  
                 format="${junit.report.format}"  
                  todir="${build.j1.dir}"  
       />  
     </junitreport>  
1020    
1021      <fail message="Test Cases Failed" if="junit.failed"/>      <delete dir="${build.jsr166y.dir}"/>
1022    
1023    </target>    </target>
1024    
1025    
1026      <target name="jsr166ydist-jar"
1027    <!-- C++ and JNI definitions and demos -->            depends="jsr166yclean, jsr166yjar">
1028        <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
   <target name="configure-cpp">  
   
     <!-- Define tasks and types -->  
   
     <path id="cpptasks.path">  
       <pathelement location="${lib.dir}/cpptasks.jar"/>  
     </path>  
     <taskdef resource="cpptasks.tasks" classpathref="cpptasks.path"/>  
     <typedef resource="cpptasks.types" classpathref="cpptasks.path"/>  
   
     <!-- Set platform property for JNI includes -->  
   
     <condition property="platform" value="linux">  
       <os name="Linux"/>  
     </condition>  
     <condition property="platform" value="win32">  
       <os family="windows"/>  
     </condition>  
     <condition property="platform" value="solaris">  
       <os name="SunOS"/>  
     </condition>  
   
1029    </target>    </target>
1030    
1031      <target name="jsr166ydist-docs"
1032              depends="jsr166yclean, jsr166ydocs">
1033        <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1034      </target>
1035    
   <target name="cppdemo" depends="configure-cpp">  
   
     <mkdir dir="${build.dir}"/>  
1036    
1037      <cc multithreaded="true"    <!-- extra166y -->
                  name="g++"  
                objdir="${build.dir}"  
               outfile="${build.dir}/CppDemo">  
       <fileset dir="${test.src.dir}" includes="CppDemo.cpp"/>  
       <libset libs="stdc++"/>  
     </cc>  
1038    
     <exec executable="${build.dir}/CppDemo">  
       <arg line="count in word frequency of word in command line count"/>  
     </exec>  
1039    
1040    </target>    <target name="extra166ycompile"
1041              depends="configure-compiler, jsr166yjar"
1042              description="Compiles extra166y sources">
1043    
1044        <mkdir dir="${build.extra166y.classes.dir}"/>
1045    
1046    <target name="jnidemo" depends="init, configure-compiler, configure-cpp">      <javac srcdir="${topsrc.dir}"
1047               destdir="${build.extra166y.classes.dir}"
1048               debug="${build.debug}"
1049               debuglevel="${build.debuglevel}"
1050               deprecation="${build.deprecation}"
1051               bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
1052               classpath=""
1053               source="6"
1054               target="6"
1055               includeAntRuntime="false"
1056               includeJavaRuntime="false"
1057               executable="${javac7}"
1058               fork="true">
1059    
1060      <mkdir dir="${build.testcases.dir}"/>        <include name="extra166y/**/*.java"/>
1061          <compilerarg value="-XDignore.symbol.file=true"/>
1062      <javac srcdir="${test.src.dir}"        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1063            destdir="${build.testcases.dir}"        <compilerarg value="-Werror"/>
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
       <compilerarg value="${bootclasspath.args}"/>  
1064        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
       <classpath refid="test.classpath"/>  
       <include name="JniDemo.java"/>  
     </javac>  
   
     <javah destdir="${build.testcases.dir}"  
       classpathref="test.classpath">  
       <class name="JniDemo"/>  
     </javah>  
   
     <cc multithreaded="true"  
                  name="g++"  
                objdir="${build.dir}"  
               outfile="${build.dir}/JniDemo"  
               outtype="shared">  
   
       <compiler>  
         <defineset>  
           <define name="__int64" value="long long"/>  
         </defineset>  
         <includepath location="${java.home}/../include"/>  
         <includepath location="${java.home}/../include/${platform}"/>  
         <compilerarg value="-mno-cygwin"/>  
       </compiler>  
   
       <linker>  
         <linkerarg value="--add-stdcall-alias"/>  
       </linker>  
   
       <includepath location="${build.testcases.dir}"/>  
   
       <fileset dir="${test.src.dir}" includes="JniDemo.cpp"/>  
   
       <libset libs="stdc++"/>  
   
     </cc>  
   
     <!-- Necessary if windows, harmless if not -->  
     <copy file="${build.dir}/libJniDemo.so" tofile="${build.dir}/JniDemo.dll"/>  
   
     <java classname="JniDemo" fork="true">  
       <!-- Watch out: path separator hardwired to semicolon here! -->  
       <sysproperty key="java.library.path" path="${java.library.path};${build.dir}"/>  
       <classpath refid="test.classpath"/>  
       <arg line="count in word frequency of word in command line count"/>  
     </java>  
1065    
1066        </javac>
1067    </target>    </target>
1068    
1069    
1070      <target name="extra166yjar"
1071              depends="extra166ycompile"
1072              description="Builds library jar from compiled sources">
1073    
1074    <!-- Backward compatibility, work in progress (some files not checked in) -->      <jar destfile="${extra166y.jar}" index="true">
1075          <fileset dir="${build.extra166y.classes.dir}"/>
1076          <manifest>
1077            <attribute name="Built-By" value="${user.name}"/>
1078            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1079          </manifest>
1080        </jar>
1081    
1082      </target>
1083    
   <property name="pretiger.src.dir"     location="${build.dir}/pretiger/src"/>  
   <property name="build.pretiger.dir"   location="${build.dir}/pretiger/classes"/>  
   <property name="pretiger.jar"         location="${build.lib.dir}/jsr166-pretiger.jar"/>  
   <property name="pretiger.sourcelevel" value="1.4"/>  
1084    
1085    <target name="defang"    <target name="extra166ydocs"
1086         depends="init"            description="Builds javadocs to build dir">
    description="Generates pre-Tiger compatible source">  
1087    
1088      <delete dir="${pretiger.src.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1089      <mkdir dir="${pretiger.src.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1090    
1091      <exec executable="perl">      <javadoc destdir="${extra166ydocs.dir}"
1092        <arg file="etc/defang.pl"/>               packagenames="extra166y.*"
1093        <!-- <arg value="-v"/> -->               link="${java.api.url}"
1094        <arg value="-s"/> <arg file="${src.dir}"/>               access="${build.javadoc.access}"
1095        <arg value="-t"/> <arg file="${pretiger.src.dir}"/>               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1096      </exec>               bootclasspath="${bootclasspath6}"
1097                 source="6"
1098                 executable="${javadoc7}">
1099          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1100          <arg value="-XDignore.symbol.file=true"/>
1101    
1102        </javadoc>
1103    </target>    </target>
1104    
   <target name="compile-pretiger"  
           depends="init, configure-compiler, defang"  
           description="Compiles pre-Tiger sources to build folder">  
1105    
1106      <mkdir dir="${build.pretiger.dir}"/>    <target name="extra166ydist"
1107              depends="extra166ydist-jar, extra166ydist-docs"
1108              description="Puts all distributable products in single hierarchy"/>
1109    
     <javac srcdir="${pretiger.src.dir}"  
           destdir="${build.pretiger.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${pretiger.sourcelevel}"  
              fork="true">  
1110    
1111        <compilerarg line="${build.args}"/>    <target name="extra166yclean"
1112        <exclude name="**/Thread.java"/>            description="Removes all extra166y build products">
1113    
1114      </javac>      <delete dir="${build.extra166y.dir}"/>
1115    
1116    </target>    </target>
1117    
   <target name="pretiger" depends="compile-pretiger">  
1118    
1119      <mkdir dir="${build.lib.dir}"/>    <target name="extra166ydist-jar"
1120              depends="extra166yclean, extra166yjar">
1121      <jar destfile="${pretiger.jar}">      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1122        <fileset dir="${build.pretiger.dir}">    </target>
       </fileset>  
     </jar>  
1123    
1124      <target name="extra166ydist-docs"
1125              depends="extra166yclean, extra166ydocs">
1126        <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1127    </target>    </target>
1128    
1129    <!-- jsr166x -->    <!-- jsr166e -->
1130    
1131      <property name="build.jsr166e.java.version" value="6"/>
1132      <property name="build.jsr166e.javac" value="${javac6}"/>
1133    
1134    <target name="jsr166xcompile"    <target name="jsr166ecompile"
1135            depends="init, configure-compiler"            depends="configure-compiler"
1136            description="Compiles jsr166x sources">            description="Compiles jsr166e sources">
1137    
1138      <mkdir dir="${build.jsr166x.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1139    
1140      <javac srcdir="${jsr166xsrc.dir}"      <javac srcdir="${topsrc.dir}"
1141            destdir="${build.jsr166x.dir}"             destdir="${build.jsr166e.classes.dir}"
1142              debug="${build.debug}"             debug="${build.debug}"
1143         debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1144        deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1145             source="${build.sourcelevel}"             source="${build.jsr166e.java.version}"
1146               fork="true">             target="${build.jsr166e.java.version}"
1147               classpath=""
1148               includeAntRuntime="false"
1149               includeJavaRuntime="false"
1150               executable="${build.jsr166e.javac}"
1151               fork="true">
1152    
1153        <include name="**/*.java"/>        <include name="jsr166e/**/*.java"/>
1154          <compilerarg value="-XDignore.symbol.file=true"/>
1155          <compilerarg value="-Xlint:all"/>
1156          <compilerarg value="-Werror"/>
1157        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
1158    
1159      </javac>      </javac>
   
1160    </target>    </target>
1161    
1162      <!-- jsr166e: find doclint errors -->
1163      <target name="jsr166edoclint">
1164    
1165        <mkdir dir="${build.jsr166e.classes.dir}"/>
1166    
1167    <target name="jsr166xjar"      <javac srcdir="${topsrc.dir}"
1168            depends="jsr166xcompile"             destdir="${build.jsr166e.classes.dir}"
1169            description="Builds library jar from compiled sources">             debug="${build.debug}"
1170               debuglevel="${build.debuglevel}"
1171               deprecation="${build.deprecation}"
1172               source="${build.jsr166e.java.version}"
1173               target="${build.jsr166e.java.version}"
1174               classpath=""
1175               bootclasspath="${bootclasspath6}"
1176               includeAntRuntime="false"
1177               includeJavaRuntime="false"
1178               executable="${javac8}"
1179               fork="true">
1180    
1181          <include name="jsr166e/**/*.java"/>
1182          <compilerarg value="-XDignore.symbol.file=true"/>
1183          <compilerarg value="-Xlint:all"/>
1184          <compilerarg value="-Werror"/>
1185          <compilerarg value="-Xdoclint:all/protected"/>
1186    
1187      <mkdir dir="${build.jsr166xlib.dir}"/>      </javac>
1188      </target>
1189    
     <jar destfile="${jsr166xproduct.jar}">  
       <fileset dir="${build.jsr166x.dir}"/>  
     </jar>  
1190    
1191    </target>    <target name="jsr166ejar"
1192              depends="jsr166ecompile"
1193              description="Builds library jar from compiled sources">
1194    
1195        <jar destfile="${jsr166e.jar}" index="true">
1196          <fileset dir="${build.jsr166e.classes.dir}"/>
1197          <manifest>
1198            <attribute name="Built-By" value="${user.name}"/>
1199            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1200          </manifest>
1201        </jar>
1202    
1203      </target>
1204    
   <target name="jsr166xdocs"  
           description="Builds javadocs with custom tags to build folder">  
1205    
1206      <delete dir="${build.jsr166xjavadocs.dir}"/>    <target name="jsr166edocs"
1207      <mkdir dir="${build.jsr166xjavadocs.dir}"/>            description="Builds javadocs to build dir">
1208    
1209      <javadoc destdir="${build.jsr166xjavadocs.dir}"      <delete dir="${jsr166edocs.dir}"/>
1210                  link="http://java.sun.com/j2se/1.5.0/docs/api/"      <mkdir dir="${jsr166edocs.dir}"/>
     >  
       <packageset dir="${topsrc.dir}" defaultexcludes="yes">  
       <include name="jsr166x"/>  
       </packageset>  
1211    
1212        <javadoc destdir="${jsr166edocs.dir}"
1213                 packagenames="jsr166e.*"
1214                 link="${java.api.url}"
1215                 access="${build.javadoc.access}"
1216                 sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1217                 source="${build.jsr166e.java.version}"
1218                 executable="${javadoc7}">
1219          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1220          <arg value="-XDignore.symbol.file=true"/>
1221    
1222      </javadoc>      </javadoc>
   
1223    </target>    </target>
1224    
1225    
1226    <target name="jsr166xdist"    <target name="jsr166e-tck-one-java-version"
1227            depends="jsr166xdist-clean, jsr166xdist-jar, jsr166xdist-docs"            depends="jsr166ejar">
           description="Puts all distributable products in single hierarchy"/>  
   
   
   
   <target name="jsr166xclean"  
           description="Removes all build products">  
1228    
1229      <delete dir="${build.jsr166x.dir}"/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
     <delete dir="${build.jsr166xlib.dir}"/>  
1230    
1231        <run-tck-tests
1232          tck.src.dir="${test.src.dir}/tck-jsr166e"
1233          target="${build.jsr166e.java.version}"
1234          workdir="${build.jsr166e.dir}"
1235          classes="${jsr166e.jar}"/>
1236    </target>    </target>
1237    
1238      <target name="jsr166e-tck"
1239              description="Runs tck tests for jsr166e for multiple java versions">
1240    
1241    <!--     <antcall target="clean"/> -->
1242    <!--     <antcall target="jsr166e-tck-one-java-version"> -->
1243    <!--       <param name="build.jsr166e.java.version" value="8"/> -->
1244    <!--       <param name="build.jsr166e.javac" value="${javac8}"/> -->
1245    <!--     </antcall> -->
1246    
1247    <target name="jsr166xdist-clean"      <antcall target="clean"/>
1248            description="Removes all build and distribution products">      <antcall target="jsr166e-tck-one-java-version">
1249          <param name="build.jsr166e.java.version" value="7"/>
1250          <param name="build.jsr166e.javac" value="${javac7}"/>
1251        </antcall>
1252    
1253        <antcall target="clean"/>
1254        <antcall target="jsr166e-tck-one-java-version">
1255          <param name="build.jsr166e.java.version" value="6"/>
1256          <param name="build.jsr166e.javac" value="${javac6}"/>
1257        </antcall>
1258    </target>    </target>
1259    
1260    
1261      <target name="jsr166e-test"
1262              depends="jsr166e-tck"
1263              description="Runs all tests for jsr166e">
1264      </target>
1265    
1266    <target name="jsr166xdist-docs"    <target name="jsr166edist"
1267            description="Builds javadocs without custom tags to dist folder">            depends="jsr166edist-jar, jsr166edist-docs"
1268              description="Puts all distributable products in single hierarchy"/>
1269    
     <delete dir="${dist.jsr166xjavadocs.dir}"/>  
     <mkdir dir="${dist.jsr166xjavadocs.dir}"/>  
1270    
1271      <javadoc destdir="${dist.jsr166xjavadocs.dir}"    <target name="jsr166eclean"
1272                  link="http://java.sun.com/j2se/1.5.0/docs/api/"            description="Removes all jsr166e build products">
1273                source="${build.sourcelevel}">      <delete dir="${build.jsr166e.dir}"/>
1274      </target>
       <packageset dir="${topsrc.dir}" defaultexcludes="yes">  
       <include name="jsr166x"/>  
       </packageset>  
1275    
     </javadoc>  
1276    
1277      <target name="jsr166edist-jar"
1278              depends="jsr166eclean, jsr166ejar">
1279        <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1280      </target>
1281    
1282      <target name="jsr166edist-docs"
1283              depends="jsr166eclean, jsr166edocs">
1284        <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1285    </target>    </target>
1286    
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1287    
1288      <copy file="${jsr166xproduct.jar}" todir="${dist.dir}"/>  <!-- Find buglets that can be detected by static build tools -->
1289    
1290      <target name="lint">
1291        <antcall target="dists">
1292          <param name="build.javadoc.access" value="public"/>
1293        </antcall>
1294    </target>    </target>
1295    
1296    <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1297      <target name="lint-private">
1298        <antcall target="dist">
1299          <param name="build.javadoc.access" value="private"/>
1300        </antcall>
1301      </target>
1302    
1303    
1304  </project>  </project>

Legend:
Removed from v.1.70  
changed lines
  Added in v.1.199

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