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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.72  
changed lines
  Added in v.1.226

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