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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.74  
changed lines
  Added in v.1.183

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