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

Diff of /jsr166/build.xml

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

revision 1.95 by jsr166, Mon Jan 14 19:22:27 2013 UTC revision 1.228 by jsr166, Sat Dec 17 22:28:20 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.6"/>    <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.loops.dir"             location="${build.dir}/loops"/>    <property name="build.loops.dir"             location="${build.dir}/loops"/>
   <property name="build.lib.dir"               location="${build.dir}/lib"/>  
   <property name="build.javadocs.dir"          location="${build.dir}/javadocs"/>  
   <property name="build.reports.dir"           location="${build.dir}/reports"/>  
   
   <property name="build.jdk7.dir"              location="${build.dir}/jdk7"/>  
   <property name="build.jdk7.lib.dir"          location="${build.jdk7.dir}"/>  
   <property name="build.jdk7.classes.dir"      location="${build.jdk7.dir}/classes"/>  
   <property name="build.jdk7.docs.dir"         location="${build.jdk7.dir}/docs"/>  
66    
67    <property name="build.jsr166x.dir"           location="${build.dir}/jsr166x"/>    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
68    <property name="build.jsr166xlib.dir"        location="${build.dir}/jsr166xlib"/>    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>
69    <property name="build.jsr166xjavadocs.dir"   location="${build.dir}/jsr166xjavadocs"/>    <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/>
70      <property name="build.4jdk7.docs.dir"        location="${build.4jdk7.dir}/docs"/>
71    
72      <property name="build.4jdk8.dir"             location="${build.dir}/jsr166-4jdk8"/>
73      <property name="build.4jdk8.classes.dir"     location="${build.4jdk8.dir}/classes"/>
74      <property name="build.4jdk8.tck.classes.dir" location="${build.4jdk8.dir}/tck-classes"/>
75      <property name="build.4jdk8.docs.dir"        location="${build.4jdk8.dir}/docs"/>
76    
77      <property name="build.jsr166x.dir"           location="${build.dir}/jsr166x"/>
78    <property name="build.jsr166y.dir"           location="${build.dir}/jsr166y"/>    <property name="build.jsr166y.dir"           location="${build.dir}/jsr166y"/>
   <property name="build.jsr166ylib.dir"        location="${build.dir}/jsr166ylib"/>  
   <property name="build.jsr166yjavadocs.dir"   location="${build.dir}/jsr166yjavadocs"/>  
   
79    <property name="build.jsr166e.dir"           location="${build.dir}/jsr166e"/>    <property name="build.jsr166e.dir"           location="${build.dir}/jsr166e"/>
   <property name="build.jsr166elib.dir"        location="${build.dir}/jsr166elib"/>  
   <property name="build.jsr166ejavadocs.dir"   location="${build.dir}/jsr166ejavadocs"/>  
   
80    <property name="build.extra166y.dir"         location="${build.dir}/extra166y"/>    <property name="build.extra166y.dir"         location="${build.dir}/extra166y"/>
   <property name="build.extra166ylib.dir"      location="${build.dir}/extra166ylib"/>  
   <property name="build.extra166yjavadocs.dir" location="${build.dir}/extra166yjavadocs"/>  
81    
82    <!-- JDK binary locations -->    <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"/>    <property name="jdks.home"  location="${user.home}/jdk"/>
89    
90    <macrodef name="defjdklocations">    <macrodef name="defjdklocations">
91      <attribute name="v"/>      <attribute name="v"/>
92      <sequential>      <sequential>
93      <property name="jdk@{v}.home"  location="${jdks.home}/jdk@{v}"/>      <property name="jdk@{v}.home"     location="${jdks.home}/jdk@{v}"/>
94      <property name="javac@{v}"     location="${jdk@{v}.home}/bin/javac"/>      <property name="java@{v}"         location="${jdk@{v}.home}/bin/java"/>
95      <property name="javadoc@{v}"   location="${jdk@{v}.home}/bin/javadoc"/>      <property name="javac@{v}"        location="${jdk@{v}.home}/bin/javac"/>
96      <property name="bootdir@{v}"   location="${jdk@{v}.home}/jre/lib"/>      <property name="javadoc@{v}"      location="${jdk@{v}.home}/bin/javadoc"/>
97      <property name="bootclasspath@{v}"        <property name="jdk@{v}.src.home" location="${jdks.home}/src/jdk@{v}"/>
98       value="${bootdir@{v}}/resources.jar:${bootdir@{v}}/rt.jar:${bootdir@{v}}/jsse.jar:${bootdir@{v}}/jce.jar:${bootdir@{v}}/:${bootdir@{v}}/charsets.jar"/>      <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>      </sequential>
130    </macrodef>    </macrodef>
131    
132    <defjdklocations v="6"/>    <defjdklocations v="6"/>
133    <defjdklocations v="7"/>    <defjdklocations v="7"/>
134    <defjdklocations v="8"/>    <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"/>
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="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>
144      <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="jdk7src.dir"          location="${topsrc.dir}/jdk7"/>    <property name="4jdk7src.dir"         location="${topsrc.dir}/jdk7"/>
150      <property name="4jdk8src.dir"         location="${topsrc.dir}/jdk8"/>
151    <property name="jsr166xsrc.dir"       location="${topsrc.dir}/jsr166x"/>    <property name="jsr166xsrc.dir"       location="${topsrc.dir}/jsr166x"/>
152    <property name="jsr166ysrc.dir"       location="${topsrc.dir}/jsr166y"/>    <property name="jsr166ysrc.dir"       location="${topsrc.dir}/jsr166y"/>
153    <property name="jsr166esrc.dir"       location="${topsrc.dir}/jsr166e"/>    <property name="jsr166esrc.dir"       location="${topsrc.dir}/jsr166e"/>
154    <property name="extra166ysrc.dir"     location="${topsrc.dir}/extra166y"/>    <property name="extra166ysrc.dir"     location="${topsrc.dir}/extra166y"/>
   <property name="jdksrc.dir"           location="/home/dl/1.6.0/j2se/martin/j2se/src/share/classes"/>  
155    
156    <!-- Distribution locations -->    <!-- Javadoc locations -->
157    <property name="dist.javadocs.dir"           location="${dist.dir}/docs"/>    <property name="docs.dir"          location="${build.dir}/docs"/>
158    <property name="dist.jdk7.docs.dir"          location="${dist.dir}/jsr166-jdk7docs"/>    <property name="4jdk7docs.dir"     location="${build.4jdk7.dir}/docs"/>
159    <property name="dist.jsr166xjavadocs.dir"    location="${dist.dir}/jsr166xdocs"/>    <property name="4jdk8docs.dir"     location="${build.4jdk8.dir}/docs"/>
160    <property name="dist.jsr166yjavadocs.dir"    location="${dist.dir}/jsr166ydocs"/>    <property name="jsr166xdocs.dir"   location="${build.jsr166x.dir}/docs"/>
161    <property name="dist.jsr166ejavadocs.dir"    location="${dist.dir}/jsr166edocs"/>    <property name="jsr166ydocs.dir"   location="${build.jsr166y.dir}/docs"/>
162    <property name="dist.extra166yjavadocs.dir"  location="${dist.dir}/extra166ydocs"/>    <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="jdk7product.jar"      location="${build.jdk7.lib.dir}/jsr166-jdk7.jar"/>    <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>
176    <property name="jsr166xproduct.jar"   location="${build.jsr166xlib.dir}/jsr166x.jar"/>    <property name="4jdk8product.jar" location="${build.4jdk8.dir}/jsr166-4jdk8.jar"/>
177    <property name="jsr166yproduct.jar"   location="${build.jsr166ylib.dir}/jsr166y.jar"/>    <property name="jsr166x.jar"      location="${build.jsr166x.dir}/jsr166x.jar"/>
178    <property name="jsr166eproduct.jar"   location="${build.jsr166elib.dir}/jsr166e.jar"/>    <property name="jsr166y.jar"      location="${build.jsr166y.dir}/jsr166y.jar"/>
179    <property name="extra166yproduct.jar" location="${build.extra166ylib.dir}/extra166y.jar"/>    <property name="jsr166e.jar"      location="${build.jsr166e.dir}/jsr166e.jar"/>
180    <property name="junit.jar"            location="${lib.dir}/junit.jar"/>    <property name="extra166y.jar"    location="${build.extra166y.dir}/extra166y.jar"/>
181      <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
182    <!-- Bootclasspath argument -->  
183    <property name="bootclasspath.args"   value="-Xbootclasspath/p:${product.jar}"/>    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
184      <property name="java5.docroot.url"      value="http://docs.oracle.com/javase/1.5.0/docs"/>
185      <property name="java6.docroot.url"      value="http://docs.oracle.com/javase/6/docs"/>
186      <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      <!-- The expected canonical location does not yet exist as of 2016-04 -->
189      <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->
190      <property name="java9.docroot.url"      value="http://download.java.net/java/jdk9/docs"/>
191      <!-- Default jdk doc location (latest stable release seems best) -->
192      <property name="java.docroot.url"       value="${java8.docroot.url}"/>
193    
194    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
195    <property name="jdkapi5docs.url"      value="http://docs.oracle.com/javase/1.5.0/docs/api/"/>    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>
196    <property name="jdkapi6docs.url"      value="http://docs.oracle.com/javase/6/docs/api/"/>    <property name="java6.api.url"      value="${java6.docroot.url}/api/"/>
197    <property name="jdkapi7docs.url"      value="http://docs.oracle.com/javase/7/docs/api/"/>    <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>
198      <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>
199    <property name="jdkapi8docs.url"      value="http://download.java.net/jdk8/docs/api/"/>    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>
200    <!-- The below does not yet exist as of 2012-11 -->    <property name="java.api.url"       value="${java.docroot.url}/api/"/>
201    <!-- <property name="jdkapi8docs.url" value="http://docs.oracle.com/javase/8/docs/api/"/> -->  
202    <property name="jdkapidocs.url"       value="${jdkapi7docs.url}"/>    <!-- Define the "jtreg" task -->
203      <!-- See the docs in "jtreg -onlineHelp" -->
204    <!-- Test classpath -->    <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant"
205    <path id="test.classpath">             classpath="${lib.dir}/jtreg.jar" />
206      <pathelement location="${build.testcases.dir}"/>  
207      <pathelement location="${junit.jar}"/>    <!-- Tck options; see JSR166TestCase.java
208    </path>     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        <sequential>
229    
230        <local name="modules"/>
231        <condition property="modules">
232          <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>
233        </condition>
234    
235        <mkdir dir="@{workdir}/tck-classes"/>
236    
237        <javac srcdir="@{tck.src.dir}"
238               destdir="@{workdir}/tck-classes"
239               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}"/>
257          <javac-elements/>
258    
259        </javac>
260    
261        <java classname="${jsr166.tckTestClass}"
262              failonerror="true"
263              jvm="${java@{target}}"
264              fork="true">
265            <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
266            <jvmarg line="--patch-module java.base=@{classes}" if:set="modules"/>
267            <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        </sequential>
289      </macrodef>
290    
291      <!-- Define jtreg test sets for different jdk versions -->
292      <fileset dir="${jtreg9.src.dir}">
293        <patternset id="jdk9.jtreg.tests">
294          <include name="**/*.java"/>
295        </patternset>
296      </fileset>
297    
298      <fileset dir="${jtreg8.src.dir}">
299        <patternset id="jdk8.jtreg.tests">
300          <include name="**/*.java"/>
301        </patternset>
302      </fileset>
303    
304      <fileset dir="${jtreg7.src.dir}">
305        <patternset id="jdk7.jtreg.tests">
306          <include name="**/*.java"/>
307        </patternset>
308      </fileset>
309    
310      <!-- ant -Djtreg.flags=-timeoutFactor:4 -->
311      <property name="jtreg.flags" value=""/>
312    
313      <macrodef name="run-jtreg-tests">
314        <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->
315        <attribute name="source" default="7"/>
316        <attribute name="target"/>
317        <attribute name="workdir"/>
318        <attribute name="classes"/>
319        <attribute name="jtregflags" default=""/>
320    
321        <sequential>
322    
323        <!-- ant -Djtreg.verbose=time,fail,error jtreg -->
324        <property name="jtreg.verbose" value="nopass,fail,error"/>
325    
326        <local name="modules"/>
327        <condition property="modules">
328          <available file="${jdk@{target}.home}/jmods" type="dir"/>
329        </condition>
330    
331        <delete dir="@{workdir}/JTwork"   quiet="true"/>
332        <jtreg dir="${jtreg@{target}.src.dir}"
333               jdk="${jdk@{target}.home}"
334               workDir="@{workdir}/JTwork">
335          <patternset refid="jdk@{target}.jtreg.tests"/>
336          <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
337          <arg value="-javacoptions:--patch-module java.base=@{classes}" if:set="modules"/>
338          <arg value="-vmoptions:--patch-module java.base=@{classes}" if:set="modules"/>
339          <arg value="-agentvm"/>
340          <arg value="-noreport"/>
341          <arg value="-verbose:${jtreg.verbose}"/>
342          <arg value="-vmoptions:-esa -ea"/>
343          <arg value="-automatic"/>
344          <arg value="-k:!ignore"/>
345          <arg line="@{jtregflags}"/>
346          <arg line="${jtreg.flags}"/>
347        </jtreg>
348        </sequential>
349      </macrodef>
350    
351    <!-- ALoops classpath -->    <!-- ALoops classpath -->
352    <path id="loops.classpath">    <path id="loops.classpath">
353      <pathelement location="${build.loops.dir}"/>      <pathelement location="${build.loops.dir}"/>
354    </path>    </path>
355    
356      <!-- Support @jls tag, used in jdk8+ javadoc -->
357      <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
358      <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
359    
360    <!-- Main targets -->    <!-- Main targets -->
361    
362      <property name="build.main.java.version" value="9"/>
363      <property name="build.main.javac" value="${javac9}"/>
364    
365    <target name="dists"    <target name="dists"
366            depends="dist, jsr166xdist, jsr166ydist,jsr166edist,  extra166ydist"            depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
367            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
368    
369    <target name="compile"    <target name="compile"
370            depends="init, configure-compiler"            depends="configure-compiler"
371            description="Compiles main sources to build folder">            description="Compiles src/main sources to build dir">
372    
373        <local name="modules"/>
374        <condition property="modules">
375          <and>
376            <available file="${jdk9.home}/jmods" type="dir"/>
377            <equals arg1="9" arg2="${build.main.java.version}"/>
378          </and>
379        </condition>
380    
381        <local name="destdir"/>
382        <property name="destdir" value="${build.classes.dir}/java.base" if:set="modules"/>
383        <property name="destdir" value="${build.classes.dir}" unless:set="modules"/>
384    
385      <mkdir dir="${build.classes.dir}"/>      <mkdir dir="${destdir}"/>
386    
387      <javac srcdir="${src.dir}"      <javac srcdir="${src.dir}"
388            destdir="${build.classes.dir}"             destdir="${destdir}"
389              debug="${build.debug}"             debug="${build.debug}"
390         debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
391        deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
392             source="${build.sourcelevel}"             classpath=""
393               fork="true">             includeAntRuntime="false"
394               includeJavaRuntime="false"
395               encoding="ASCII"
396               executable="${build.main.javac}"
397               fork="true">
398    
399        <include name="**/*.java"/>        <include name="**/*.java"/>
400          <compilerarg value="-Xmodule:java.base" if:set="modules"/>
401          <compilerarg value="-Xprefer:source"/>
402        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
403          <compilerarg value="-Xlint:all"/>
404  <!--        <compilerarg value="-Werror"/>
405        <exclude name="java/lang/**"/>        <compilerarg value="-Xdoclint:all/protected"/>
406          <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
407        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
       <compilerarg line="-Xlint -Xmaxwarns 1000"/>  
 -->  
408    
409      </javac>      </javac>
   
410    </target>    </target>
411    
412    
   
413    <target name="jar"    <target name="jar"
414            depends="compile"            depends="compile"
415            description="Builds library jar from compiled sources">            description="Builds library jar for src/main from compiled sources">
416        <local name="subdir"/>
417      <mkdir dir="${build.lib.dir}"/>      <available property="subdir" file="${build.classes.dir}/java.base" type="dir" value="/java.base"/>
   
418      <jar destfile="${product.jar}">      <jar destfile="${product.jar}">
419        <fileset dir="${build.classes.dir}"/>        <fileset dir="${build.classes.dir}${subdir}"/>
420          <manifest>
421            <attribute name="Built-By" value="${user.name}"/>
422            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
423          </manifest>
424      </jar>      </jar>
   
425    </target>    </target>
426    
427    
   
   <target name="test"  
           depends="init, configure-tests, report-tests"  
           description="Runs all tests (requires JUnit 3.8.1 in ${ant.home}/lib)" />  
   
   
   
428    <target name="docs"    <target name="docs"
429            description="Builds javadocs with custom tags to build folder">            description="Builds javadocs for src/main to dist dir">
430    
431      <delete dir="${build.javadocs.dir}"/>      <delete dir="${docs.dir}"/>
432      <mkdir dir="${build.javadocs.dir}"/>      <mkdir dir="${docs.dir}"/>
433    
434      <!-- the packagenames="none" hack below prevents scanning the -->      <!-- the packagenames="none" hack below prevents scanning the -->
435      <!-- sourcepath for packages -->      <!-- sourcepath for packages -->
436    
437      <javadoc destdir="${build.javadocs.dir}"  <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
438    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
439    <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
440    <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
441    <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
442        <javadoc destdir="${docs.dir}"
443               packagenames="none"               packagenames="none"
444               link="${jdkapidocs.url}"               link="${java9.api.url}"
445               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
446               sourcepath="${src.dir}:${jdksrc.dir}"               access="${build.javadoc.access}"
447               additionalparam="-XDignore.symbol.file=true" >               sourcepath="${src.dir}"
448                 classpath=""
449                 executable="${javadoc9}">
450        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
451          <include name="**/*.java"/>          <include name="**/*.java"/>
452        </fileset>        </fileset>
453          <arg line="-Xdocrootparent ${java9.docroot.url}"/>
454          <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
455          <arg value="-XDignore.symbol.file=true"/>
456          <arg value="-Xmodule:java.base"/>
457          <arg value="-tag"/>
458          <arg value="${javadoc.jls.option}"/>
459    <!-- @apiNote currently unused -->
460    <!--       <arg value="-tag"/> -->
461    <!--       <arg value="apiNote:a:API Note:"/> -->
462          <arg value="-tag"/>
463          <arg value="implSpec:a:Implementation Requirements:"/>
464          <arg value="-tag"/>
465          <arg value="implNote:a:Implementation Note:"/>
466    <!-- tags added in jdk9: currently unused -->
467    <!--       <arg value="-tag"/> -->
468    <!--       <arg value="revised:X"/> -->
469    <!--       <arg value="-tag"/> -->
470    <!--       <arg value="spec:X"/> -->
471      </javadoc>      </javadoc>
   
472    </target>    </target>
473    
474    
   
475    <target name="dist"    <target name="dist"
476            depends="init, dist-clean, dist-jar, dist-docs"            depends="dist-clean, dist-jar, dist-docs"
477            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
478    
479    
# Line 231  Line 491 
491        <exclude name="src/emulation/**"/>        <exclude name="src/emulation/**"/>
492        <exclude name="**/SyntaxTest.java"/>        <exclude name="**/SyntaxTest.java"/>
493        <exclude name="**/SuperfluousAbstract.java"/>        <exclude name="**/SuperfluousAbstract.java"/>
494          <manifest>
495            <attribute name="Built-By" value="${user.name}"/>
496            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
497          </manifest>
498      </jar>      </jar>
   
499    </target>    </target>
500    
501    
   
502    <target name="clean"    <target name="clean"
503            description="Removes all build products">            description="Removes all build products">
504    
505      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
     <delete dir="${build.classes.dir}"/>  
     <delete dir="${build.lib.dir}"/>  
506    
507    </target>    </target>
508    
509    
   
510    <target name="dist-clean"    <target name="dist-clean"
511            description="Removes all build and distribution products">            description="Removes all build and distribution products">
512    
513        <delete dir="${build.dir}"/>
514      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
515    
516    </target>    </target>
517    
518    
519      <target name="dist-jar"
520              depends="clean, jar">
521        <copy file="${product.jar}" todir="${dist.dir}"/>
522      </target>
523    
524    <target name="dist-docs"    <target name="dist-docs"
525            description="Builds javadocs without custom tags to dist folder">            depends="clean, docs">
526        <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
527      </target>
528    
529      <delete dir="${dist.javadocs.dir}"/>    <target name="tck"
530      <mkdir dir="${dist.javadocs.dir}"/>            depends="jar"
531              description="Runs tck tests for src/main directly">
532    
533      <!-- the packagenames="none" hack below prevents scanning the -->      <run-tck-tests
534      <!-- sourcepath for packages -->        target="${build.main.java.version}"
535          workdir="${build.dir}"
536          classes="${product.jar}"/>
537      </target>
538    
539      <javadoc destdir="${dist.javadocs.dir}"    <target name="tck-parallelism-1"
540               packagenames="none"            description="Runs tck with common pool parallelism 1">
541               link="${jdkapidocs.url}"      <antcall target="tck">
542               overview="${src.dir}/intro.html"        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
543               sourcepath="${src.dir}:${jdksrc.dir}"      </antcall>
544               additionalparam="-XDignore.symbol.file=true" >    </target>
       <fileset dir="${src.dir}" defaultexcludes="yes">  
         <include name="**/*.java"/>  
       </fileset>  
     </javadoc>  
545    
546      <target name="tck-parallelism-0"
547              description="Runs tck with common pool parallelism 0">
548        <antcall target="tck">
549          <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
550        </antcall>
551    </target>    </target>
552    
553      <target name="tck-security-manager"
554              description="Runs tck with a security manager">
555        <antcall target="tck">
556          <param name="jsr166.useSecurityManager" value="true"/>
557        </antcall>
558      </target>
559    
560      <target name="jtreg"
561              depends="jar"
562              description="Runs jtreg tests for src/main using the jtreg ant task">
563        <run-jtreg-tests
564           target="${build.main.java.version}"
565           workdir="${build.dir}"
566           classes="${product.jar}"/>
567      </target>
568    
569    <!-- Internal targets -->    <target name="test"
570              depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
571              description="Runs tck and jtreg tests for src/main">
572      </target>
573    
574    <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->
575    
576    <target name="init">  <!--     <antcall target="jtreg"> -->
577    <!--       <param name="build.main.java.version" value="8"/> -->
578    <!--       <param name="build.main.javac" value="${javac8}"/> -->
579    <!--     </antcall> -->
580    
581      <!-- Version is kept in a separate file -->  <!--   </target> -->
     <loadfile property="version" srcFile="version.properties"/>  
     <echo>Building JSR-166 version ${version}</echo>  
     <echo>java.home is ${java.home}</echo>  
582    
583    </target>  <!--   <target name="test89" -->
584    <!--           description="Runs tck and jtreg tests for src/main for multiple java versions"> -->
585    
586    <!--     <antcall target="clean"/> -->
587    <!--     <antcall target="test"> -->
588    <!--       <param name="build.main.java.version" value="8"/> -->
589    <!--       <param name="build.main.javac" value="${javac8}"/> -->
590    <!--     </antcall> -->
591    
592    <target name="dist-jar"  <!--     <antcall target="clean"/> -->
593            depends="clean, jar">  <!--     <antcall target="test"> -->
594    <!--       <param name="build.main.java.version" value="9"/> -->
595    <!--       <param name="build.main.javac" value="${javac9}"/> -->
596    <!--     </antcall> -->
597    
598      <copy file="${product.jar}" todir="${dist.dir}"/>  <!--   </target> -->
599    
   </target>  
600    
601    
602    <target name="compile-tests"    <target name="configure-compiler">
603            depends="jar">      <fail message="ant version too old">
604          <condition>
605            <not> <antversion atleast="1.9.1"/> </not>
606          </condition>
607        </fail>
608    
609      <mkdir dir="${build.testcases.dir}"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
610    
611      <javac srcdir="${tck.src.dir}"      <condition property="warnunchecked.arg" value="${unchecked.option}">
612            destdir="${build.testcases.dir}"        <istrue value="${build.warnunchecked}"/>
613              debug="${build.debug}"      </condition>
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
614    
615        <compilerarg value="${bootclasspath.args}"/>      <property name="warnunchecked.arg" value=""/>
       <compilerarg line="${build.args}"/>  
       <compilerarg value="-XDignore.symbol.file=true"/>  
616    
       <classpath refid="test.classpath"/>  
617    
618      </javac>      <!-- Common options in javac invocations -->
619        <property name="build.args" value="${warnunchecked.arg}"/>
620    
621      <javac srcdir="${test.src.dir}"    </target>
           destdir="${build.testcases.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
622    
       <include name="jsr166/test/**"/>  
623    
       <compilerarg value="${bootclasspath.args}"/>  
       <compilerarg line="${build.args}"/>  
       <compilerarg value="-XDignore.symbol.file=true"/>  
624    
625        <classpath refid="test.classpath"/>    <!-- Various demos and test programs -->
626    
     </javac>  
627    
628  <!--    <!-- description="Benchmark from Doug Lea's AQS paper" -->
629      <javac srcdir="${jtreg.src.dir}"    <target name="loops" depends="configure-compiler">
630            destdir="${build.testcases.dir}"  
631        <mkdir dir="${build.loops.dir}"/>
632    
633        <javac srcdir="${loops.src.dir}"
634              destdir="${build.loops.dir}"
635              debug="${build.debug}"              debug="${build.debug}"
636         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
637        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
638             source="${build.sourcelevel}"             source="${build.sourcelevel}"
639               target="${build.sourcelevel}"
640             encoding="ASCII"
641               fork="true">               fork="true">
642    
       <compilerarg value="${bootclasspath.args}"/>  
643        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
644          <classpath refid="loops.classpath"/>
645        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
646    
       <classpath refid="test.classpath"/>  
   
647      </javac>      </javac>
648  -->  
649        <java classname="ALoops" fork="true">
650          <classpath refid="loops.classpath"/>
651        </java>
652    
653    </target>    </target>
654    
655    
656    <target name="run-tests"    <target name="compile-test-loops" depends="jar"
657            depends="compile-tests">            description="compile all the perf tests in src/test/loops">
658    
659      <!-- May be overridden by user.properties -->      <mkdir dir="${build.dir}/test/loops"/>
     <property name="testcase" value="*"/>  
660    
661      <mkdir dir="${build.reports.dir}"/>      <javac srcdir="${basedir}/src/test/loops"
662               destdir="${build.dir}/test/loops"
663               debug="${build.debug}"
664               debuglevel="${build.debuglevel}"
665               deprecation="${build.deprecation}"
666               includeAntRuntime="false"
667               includeJavaRuntime="false"
668               encoding="ASCII"
669               executable="${javac9}"
670               fork="true">
671    
672      <junit printsummary="true"        <include name="*.java"/>
673               showoutput="true"        <compilerarg value="-XDignore.symbol.file=true"/>
674            errorProperty="junit.failed"        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
675          failureProperty="junit.failed"        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
676                      dir="${build.reports.dir}"        <compilerarg line="${build.args}"/>
                    fork="true">  
677    
678        <jvmarg value="${bootclasspath.args}"/>      </javac>
       <jvmarg value="-server"/>  
       <jvmarg value="-showversion"/>  
679    
680        <classpath refid="test.classpath"/>    </target>
681    
       <formatter type="xml"/>  
682    
683        <batchtest todir="${build.reports.dir}" unless="no.test.tck">    <!-- jsr166 4jdk8 -->
         <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>  
 -->  
684    
685      </junit>    <target name="4jdk8compile"
686              depends="configure-compiler"
687              description="Compiles src/jdk8 sources, targeting jdk8">
688    
689        <mkdir dir="${build.4jdk8.classes.dir}"/>
690    
691        <javac srcdir="${4jdk8src.dir}"
692               destdir="${build.4jdk8.classes.dir}"
693               debug="${build.debug}"
694               debuglevel="${build.debuglevel}"
695               deprecation="${build.deprecation}"
696               source="8"
697               target="8"
698               classpath=""
699               bootclasspath="${bootclasspath8}"
700               includeAntRuntime="false"
701               includeJavaRuntime="false"
702               encoding="ASCII"
703               executable="${javac8}"
704               fork="true">
705    
706          <include name="**/*.java"/>
707          <compilerarg value="-Xprefer:source"/>
708          <compilerarg value="-XDignore.symbol.file=true"/>
709          <compilerarg value="-Xlint:all"/>
710          <compilerarg value="-Werror"/>
711          <compilerarg line="${build.args}"/>
712    
713        </javac>
714    </target>    </target>
715    
716      <target name="4jdk8doclint"
717              depends="configure-compiler"
718              description="Finds doclint warnings">
719    
720    <target name="report-tests"      <mkdir dir="${build.4jdk8.classes.dir}"/>
           depends="run-tests">  
721    
722      <!-- Sets junit.report.format to frames if redirection is present,      <javac srcdir="${4jdk8src.dir}"
723           otherwise sets it to noframes. -->             destdir="${build.4jdk8.classes.dir}"
724      <available property="junit.report.format"             debug="${build.debug}"
725                    value="frames"             debuglevel="${build.debuglevel}"
726                classname="org.apache.xalan.lib.Redirect"             deprecation="${build.deprecation}"
727      />             source="8"
728      <property name="junit.report.format" value="noframes"/>             target="8"
729               classpath=""
730      <junitreport todir="${build.reports.dir}">             bootclasspath="${bootclasspath8}"
731        <fileset dir="${build.reports.dir}">             includeAntRuntime="false"
732          <include name="TEST-*.xml"/>             includeJavaRuntime="false"
733        </fileset>             encoding="ASCII"
734        <report format="${junit.report.format}" todir="${build.reports.dir}"             executable="${javac8}"
735        />             fork="true">
     </junitreport>  
736    
737      <fail message="Test Cases Failed" if="junit.failed"/>        <include name="**/*.java"/>
738          <compilerarg value="-Xprefer:source"/>
739          <compilerarg value="-XDignore.symbol.file=true"/>
740          <compilerarg value="-Xlint:all"/>
741          <compilerarg value="-Xdoclint:all/protected"/>
742          <compilerarg line="${build.args}"/>
743    
744        </javac>
745    </target>    </target>
746    
747    
748    <target name="configure-compiler">    <target name="4jdk8jar"
749              depends="4jdk8compile"
750      <property name="unchecked.option" value="-Xlint:unchecked"/>            description="Builds library jar from compiled sources">
751    
752      <condition property="warnunchecked.arg" value="${unchecked.option}">      <jar destfile="${4jdk8product.jar}">
753        <istrue value="${build.warnunchecked}"/>        <fileset dir="${build.4jdk8.classes.dir}"/>
754      </condition>        <manifest>
755            <attribute name="Built-By" value="${user.name}"/>
756            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
757          </manifest>
758        </jar>
759    
760      <property name="warnunchecked.arg" value=""/>    </target>
761    
762    
763      <!-- Common options in javac invocations -->    <target name="4jdk8-tck"
764      <property name="build.args" value="${warnunchecked.arg}"/>            depends="4jdk8jar"
765              description="Runs tck tests for jsr166-4jdk8 directly">
766    
767        <run-tck-tests
768          target="8"
769          workdir="${build.4jdk8.dir}"
770          classes="${4jdk8product.jar}">
771          <javac-elements>
772            <!-- JDK9+ test classes -->
773            <exclude name="*9Test.java"/>
774            <exclude name="*10Test.java"/>
775          </javac-elements>
776        </run-tck-tests>
777    </target>    </target>
778    
779    
780    <target name="configure-tests"    <target name="4jdk8-jtreg"
781         depends="configure-compiler">            depends="4jdk8jar"
782              description="Runs jtreg tests for jsr166-4jdk8 using the jtreg ant task">
783        <run-jtreg-tests
784           target="8"
785           workdir="${build.4jdk8.dir}"
786           classes="${4jdk8product.jar}"/>
787      </target>
788    
     <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->  
     <available property="junit.available"  
                classname="junit.framework.Protectable"/>  
789    
790      <!-- Xalan -->    <target name="4jdk8-test"
791      <available property="xalan.available"            depends="4jdk8-tck, 4jdk8-jtreg"
792                 classname="org.apache.xalan.Version"/>            description="Runs tck and jtreg tests for jsr166-4jdk8">
793      </target>
794    
795    
796      <!-- Ant 1.6beta and later don't need or want this check -->    <target name="4jdk8docs"
797      <!--            description="Builds javadocs for src/jdk8 to dist dir">
     <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests"  
           unless="junit.available"/>  
798    
799      <fail message="Need Xalan 2.5.1 jar in ${ant.home}${file.separator}lib to run tests"      <delete dir="${4jdk8docs.dir}"/>
800            unless="xalan.available"/>      <mkdir dir="${4jdk8docs.dir}"/>
     -->  
801    
802        <javadoc destdir="${4jdk8docs.dir}"
803                 packagenames="none"
804                 link="${java8.api.url}"
805                 overview="${4jdk8src.dir}/intro.html"
806                 access="${build.javadoc.access}"
807                 sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
808                 classpath=""
809                 executable="${javadoc8}"
810                 failonerror = "true">
811          <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
812            <include name="**/*.java"/>
813          </fileset>
814          <arg line="-Xdocrootparent ${java8.docroot.url}"/>
815          <arg value="-XDignore.symbol.file=true"/>
816          <arg value="-tag"/>
817          <arg value="${javadoc.jls.option}"/>
818    <!-- @apiNote currently unused -->
819    <!--       <arg value="-tag"/> -->
820    <!--       <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
821          <arg value="-tag"/>
822          <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
823          <arg value="-tag"/>
824          <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
825        </javadoc>
826    </target>    </target>
827    
828    
829    <!-- Various demos and test programs -->    <target name="4jdk8dist"
830              depends="4jdk8dist-jar, 4jdk8dist-docs"
831              description="Puts all distributable products in single hierarchy"/>
832    
833    
834    <target name="loops" depends="init, configure-compiler"    <target name="4jdk8clean"
835            description="Benchmark from Doug Lea's AQS paper">            description="Removes all 4jdk8 build products">
836    
837      <mkdir dir="${build.loops.dir}"/>      <delete dir="${build.4jdk8.dir}"/>
838    
839      <javac srcdir="${loops.src.dir}"    </target>
           destdir="${build.loops.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
840    
       <compilerarg line="${build.args}"/>  
       <classpath refid="loops.classpath"/>  
       <compilerarg value="-XDignore.symbol.file=true"/>  
841    
842      </javac>    <target name="4jdk8dist-jar"
843              depends="4jdk8clean, 4jdk8jar">
844        <copy file="${4jdk8product.jar}" todir="${dist.dir}"/>
845      </target>
846    
     <java classname="ALoops" fork="true">  
       <classpath refid="loops.classpath"/>  
     </java>  
847    
848      <target name="4jdk8dist-docs"
849              depends="4jdk8clean, 4jdk8docs">
850        <mirror-dir src="${4jdk8docs.dir}" dst="${dist.4jdk8docs.dir}"/>
851    </target>    </target>
852    
853    
   <!-- jdk7 -->  
854    
855      <!-- jsr166 4jdk7 -->
856    
857    <target name="jdk7compile"    <target name="4jdk7compile"
858            depends="configure-compiler"            depends="configure-compiler"
859            description="Compiles src/jdk7 sources">            description="Compiles src/jdk7 sources, targeting jdk7">
860    
861      <mkdir dir="${build.jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
862    
863      <javac srcdir="${jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
864             destdir="${build.jdk7.classes.dir}"             destdir="${build.4jdk7.classes.dir}"
865             debug="${build.debug}"             debug="${build.debug}"
866             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
867             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
868             source="1.6"             source="6"
869               target="6"
870             classpath=""             classpath=""
871             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
872             includeAntRuntime="false"             includeAntRuntime="false"
873             includeJavaRuntime="false"             includeJavaRuntime="false"
874             executable="${javac6}"             encoding="ASCII"
875               executable="${javac7}"
876             fork="true">             fork="true">
877    
878        <include name="**/*.java"/>        <include name="**/*.java"/>
879        <compilerarg line="${build.args}"/>        <compilerarg value="-Xprefer:source"/>
880        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
881        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
882          <compilerarg value="-Werror"/>
883          <compilerarg line="${build.args}"/>
884    
885      </javac>      </javac>
   
886    </target>    </target>
887    
888      <target name="4jdk7doclint"
889              depends="configure-compiler"
890              description="Finds doclint warnings">
891    
892        <mkdir dir="${build.4jdk7.classes.dir}"/>
893    
894    <target name="jdk7jar"      <javac srcdir="${4jdk7src.dir}"
895            depends="jdk7compile"             destdir="${build.4jdk7.classes.dir}"
896            description="Builds library jar from compiled sources">             debug="${build.debug}"
897               debuglevel="${build.debuglevel}"
898      <mkdir dir="${build.jdk7.lib.dir}"/>             deprecation="${build.deprecation}"
899               source="6"
900               target="6"
901               classpath=""
902               bootclasspath="${bootclasspath6}"
903               includeAntRuntime="false"
904               includeJavaRuntime="false"
905               encoding="ASCII"
906               executable="${javac8}"
907               fork="true">
908    
909      <jar destfile="${jdk7product.jar}" index="true">        <include name="**/*.java"/>
910        <fileset dir="${build.jdk7.classes.dir}"/>        <compilerarg value="-Xprefer:source"/>
911      </jar>        <compilerarg value="-XDignore.symbol.file=true"/>
912          <compilerarg value="-Xlint:all"/>
913          <compilerarg value="-Xdoclint:all/protected"/>
914          <compilerarg line="${build.args}"/>
915    
916        </javac>
917    </target>    </target>
918    
919    
920      <target name="4jdk7jar"
921              depends="4jdk7compile"
922              description="Builds library jar from compiled sources">
923    
924    <target name="jdk7docs"      <jar destfile="${4jdk7product.jar}">
925            description="Builds javadocs with custom tags to build folder">        <fileset dir="${build.4jdk7.classes.dir}"/>
926          <manifest>
927            <attribute name="Built-By" value="${user.name}"/>
928            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
929          </manifest>
930        </jar>
931    
932      <delete dir="${build.jdk7.docs.dir}"/>    </target>
     <mkdir dir="${build.jdk7.docs.dir}"/>  
933    
     <javadoc destdir="${build.jdk7.docs.dir}"  
              packagenames="none"  
              link="${jdkapi7docs.url}"  
              overview="${jdk7src.dir}/intro.html"  
              sourcepath="${jdk7src.dir}"  
              bootclasspath="${bootclasspath6}"  
              classpath=""  
              source="1.6"  
              executable="${javadoc7}"  
              additionalparam="-XDignore.symbol.file=true" >  
       <fileset dir="${jdk7src.dir}" defaultexcludes="yes">  
         <include name="**/*.java"/>  
       </fileset>  
     </javadoc>  
934    
935      <target name="4jdk7-tck"
936              depends="4jdk7jar"
937              description="Runs tck tests for jsr166-4jdk7 directly">
938    
939        <run-tck-tests
940          target="7"
941          workdir="${build.4jdk7.dir}"
942          classes="${4jdk7product.jar}">
943          <javac-elements>
944            <!-- JDK8+ test classes -->
945            <exclude name="*8Test.java"/>
946            <exclude name="*9Test.java"/>
947            <exclude name="*10Test.java"/>
948            <exclude name="DoubleAccumulatorTest.java"/>
949            <exclude name="DoubleAdderTest.java"/>
950            <exclude name="LongAccumulatorTest.java"/>
951            <exclude name="LongAdderTest.java"/>
952            <exclude name="CompletableFutureTest.java"/>
953            <exclude name="SplittableRandomTest.java"/>
954            <exclude name="StampedLockTest.java"/>
955            <exclude name="SubmissionPublisherTest.java"/>
956          </javac-elements>
957        </run-tck-tests>
958    </target>    </target>
959    
960    
961    <target name="jdk7dist"    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
962            depends="jdk7dist-clean, jdk7dist-jar, jdk7dist-docs"    <target name="4jdk7-tck-junit"
963            description="Puts all distributable products in single hierarchy"/>            depends="4jdk7compile">
964    
965        <junit printsummary="true"
966               showoutput="true"
967               errorProperty="junit.failed"
968               failureProperty="junit.failed"
969               includeantruntime="true"
970               jvm="${java7}"
971               fork="true">
972    
973          <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
974          <jvmarg value="-server"/>
975    
976          <classpath>
977            <pathelement location="${junit.jar}"/>
978            <pathelement location="${build.4jdk7.tck.classes.dir}"/>
979          </classpath>
980    
981    <target name="jdk7clean"        <formatter type="brief"/>
           description="Removes all build products">  
982    
983      <delete dir="${build.jdk7.dir}"/>        <test name="${jsr166.tckTestClass}" haltonfailure="no">
984          </test>
985    
986        </junit>
987    </target>    </target>
988    
989      <target name="4jdk7-jtreg"
990              depends="4jdk7jar"
991              description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">
992        <run-jtreg-tests
993           target="7"
994           workdir="${build.4jdk7.dir}"
995           classes="${4jdk7product.jar}"/>
996      </target>
997    
998    
999    <target name="jdk7dist-clean"    <target name="4jdk7-test"
1000            description="Removes all build and distribution products">            depends="4jdk7-tck, 4jdk7-jtreg"
1001              description="Runs tck and jtreg tests for jsr166-4jdk7">
1002    </target>    </target>
1003    
   <target name="jdk7dist-docs"  
           description="Builds javadocs without custom tags to dist folder">  
1004    
1005      <delete dir="${dist.jdk7.docs.dir}"/>    <target name="4jdk7docs"
1006      <mkdir dir="${dist.jdk7.docs.dir}"/>            description="Builds javadocs for src/jdk7 to dist dir">
1007    
1008      <javadoc destdir="${dist.jdk7.docs.dir}"      <delete dir="${4jdk7docs.dir}"/>
1009        <mkdir dir="${4jdk7docs.dir}"/>
1010    
1011        <javadoc destdir="${4jdk7docs.dir}"
1012               packagenames="none"               packagenames="none"
1013               link="${jdkapi7docs.url}"               link="${java7.api.url}"
1014               overview="${jdk7src.dir}/intro.html"               overview="${4jdk7src.dir}/intro.html"
1015               sourcepath="${jdk7src.dir}"               access="${build.javadoc.access}"
1016                 sourcepath="${4jdk7src.dir}:${jdk7.src.dir}"
1017               classpath=""               classpath=""
1018               executable="${javadoc7}"               executable="${javadoc7}"
1019               bootclasspath="${bootclasspath6}"               failonerror = "true">
1020               source="1.6">        <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
       <arg value="-XDignore.symbol.file=true"/>  
       <fileset dir="${jdk7src.dir}" defaultexcludes="yes">  
1021          <include name="**/*.java"/>          <include name="**/*.java"/>
1022        </fileset>        </fileset>
1023          <arg line="-Xdocrootparent ${java7.docroot.url}"/>
1024          <arg value="-XDignore.symbol.file=true"/>
1025      </javadoc>      </javadoc>
1026      </target>
1027    
1028    
1029      <target name="4jdk7dist"
1030              depends="4jdk7dist-jar, 4jdk7dist-docs"
1031              description="Puts all distributable products in single hierarchy"/>
1032    
1033    
1034      <target name="4jdk7clean"
1035              description="Removes all 4jdk7 build products">
1036    
1037        <delete dir="${build.4jdk7.dir}"/>
1038    
1039    </target>    </target>
1040    
   <target name="jdk7dist-jar"  
           depends="jdk7clean, jdk7jar">  
1041    
1042      <copy file="${jdk7product.jar}" todir="${dist.dir}"/>    <target name="4jdk7dist-jar"
1043              depends="4jdk7clean, 4jdk7jar">
1044        <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1045      </target>
1046    
1047    
1048      <target name="4jdk7dist-docs"
1049              depends="4jdk7clean, 4jdk7docs">
1050        <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1051    </target>    </target>
1052    
   <!-- jsr166x -->  
1053    
1054      <!-- jsr166x -->
1055    
1056    <target name="jsr166xcompile"    <target name="jsr166xcompile"
1057            depends="init, configure-compiler"            depends="configure-compiler"
1058            description="Compiles jsr166x sources">            description="Compiles jsr166x sources to build dir">
1059    
1060      <mkdir dir="${build.jsr166x.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1061    
1062      <javac srcdir="${jsr166xsrc.dir}"      <javac srcdir="${topsrc.dir}"
1063            destdir="${build.jsr166x.dir}"             destdir="${build.jsr166x.classes.dir}"
1064              debug="${build.debug}"             debug="${build.debug}"
1065         debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1066        deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1067             source="${build.sourcelevel}"             classpath=""
1068               fork="true">             bootclasspath="${bootclasspath6}"
1069               source="5"
1070               target="5"
1071               includeAntRuntime="false"
1072               includeJavaRuntime="false"
1073               encoding="ASCII"
1074               executable="${javac7}"
1075               fork="true">
1076    
1077        <include name="**/*.java"/>        <include name="jsr166x/**/*.java"/>
       <compilerarg line="${build.args}"/>  
1078        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1079          <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1080          <compilerarg value="-Werror"/>
1081          <compilerarg line="${build.args}"/>
1082    
1083      </javac>      </javac>
   
1084    </target>    </target>
1085    
1086    
   
1087    <target name="jsr166xjar"    <target name="jsr166xjar"
1088            depends="jsr166xcompile"            depends="jsr166xcompile"
1089            description="Builds library jar from compiled sources">            description="Builds library jar from compiled sources">
1090    
1091      <mkdir dir="${build.jsr166xlib.dir}"/>      <jar destfile="${jsr166x.jar}">
1092          <fileset dir="${build.jsr166x.classes.dir}"/>
1093      <jar destfile="${jsr166xproduct.jar}">        <manifest>
1094        <fileset dir="${build.jsr166x.dir}"/>          <attribute name="Built-By" value="${user.name}"/>
1095            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1096          </manifest>
1097      </jar>      </jar>
1098    
1099    </target>    </target>
1100    
1101    
   
1102    <target name="jsr166xdocs"    <target name="jsr166xdocs"
1103            description="Builds javadocs with custom tags to build folder">            description="Builds javadocs to dist dir">
1104    
1105      <delete dir="${build.jsr166xjavadocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1106      <mkdir dir="${build.jsr166xjavadocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1107    
1108      <javadoc destdir="${build.jsr166xjavadocs.dir}"      <javadoc destdir="${jsr166xdocs.dir}"
1109               packagenames="jsr166x"               packagenames="jsr166x.*"
1110               link="${jdkapidocs.url}"               link="${java.api.url}"
1111               source="${build.sourcelevel}"               access="${build.javadoc.access}"
1112               sourcepath="${topsrc.dir}:${jdksrc.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1113               additionalparam="-XDignore.symbol.file=true" />               bootclasspath="${bootclasspath6}"
1114                 source="5"
1115                 executable="${javadoc7}"
1116                 failonerror = "true">
1117          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1118          <arg value="-XDignore.symbol.file=true"/>
1119    
1120        </javadoc>
1121    </target>    </target>
1122    
1123    
1124    <target name="jsr166xdist"    <target name="jsr166xdist"
1125            depends="jsr166xdist-clean, jsr166xdist-jar, jsr166xdist-docs"            depends="jsr166xdist-jar, jsr166xdist-docs"
1126            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
1127    
1128    
   
1129    <target name="jsr166xclean"    <target name="jsr166xclean"
1130            description="Removes all build products">            description="Removes all jsr166x build products">
1131    
1132      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
     <delete dir="${build.jsr166xlib.dir}"/>  
   
   </target>  
   
   
   
   <target name="jsr166xdist-clean"  
           description="Removes all build and distribution products">  
1133    
1134    </target>    </target>
1135    
1136    
   
   <target name="jsr166xdist-docs"  
           description="Builds javadocs without custom tags to dist folder">  
   
     <delete dir="${dist.jsr166xjavadocs.dir}"/>  
     <mkdir dir="${dist.jsr166xjavadocs.dir}"/>  
   
     <javadoc destdir="${dist.jsr166xjavadocs.dir}"  
              packagenames="jsr166x"  
              link="${jdkapidocs.url}"  
              source="${build.sourcelevel}"  
              sourcepath="${topsrc.dir}:${jdksrc.dir}"  
              additionalparam="-XDignore.symbol.file=true" />  
   
   </target>  
   
1137    <target name="jsr166xdist-jar"    <target name="jsr166xdist-jar"
1138            depends="jsr166xclean, jsr166xjar">            depends="jsr166xclean, jsr166xjar">
1139        <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1140      </target>
1141    
1142      <copy file="${jsr166xproduct.jar}" todir="${dist.dir}"/>    <target name="jsr166xdist-docs"
1143              depends="jsr166xclean, jsr166xdocs">
1144        <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1145    </target>    </target>
1146    
1147    <!-- jsr166y -->    <!-- jsr166y -->
1148    
1149    
1150    <target name="jsr166ycompile"    <target name="jsr166ycompile"
1151            depends="init, configure-compiler"            depends="configure-compiler"
1152            description="Compiles jsr166y sources">            description="Compiles jsr166y sources">
1153    
1154      <mkdir dir="${build.jsr166y.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1155    
1156      <javac srcdir="${jsr166ysrc.dir}"      <javac srcdir="${topsrc.dir}"
1157            destdir="${build.jsr166y.dir}"             destdir="${build.jsr166y.classes.dir}"
1158              debug="${build.debug}"             debug="${build.debug}"
1159         debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1160        deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1161             source="${build.sourcelevel}"             source="6"
1162               fork="true">             target="6"
1163               classpath=""
1164               bootclasspath="${bootclasspath6}"
1165               includeAntRuntime="false"
1166               includeJavaRuntime="false"
1167               encoding="ASCII"
1168               executable="${javac7}"
1169               fork="true">
1170    
1171        <include name="**/*.java"/>        <include name="jsr166y/**/*.java"/>
       <compilerarg line="${build.args}"/>  
1172        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1173        <compilerarg value="${bootclasspath.args}"/>        <compilerarg value="-Xlint:all"/>
1174          <compilerarg value="-Werror"/>
1175  <!--       <compilerarg line="-Xlint -Xmaxwarns 1000"/> -->        <compilerarg line="${build.args}"/>
1176    
1177      </javac>      </javac>
   
1178    </target>    </target>
1179    
1180    
   
1181    <target name="jsr166yjar"    <target name="jsr166yjar"
1182            depends="jsr166ycompile"            depends="jsr166ycompile"
1183            description="Builds library jar from compiled sources">            description="Builds library jar from compiled sources">
1184    
1185      <mkdir dir="${build.jsr166ylib.dir}"/>      <jar destfile="${jsr166y.jar}" index="true">
1186          <fileset dir="${build.jsr166y.classes.dir}"/>
1187      <jar destfile="${jsr166yproduct.jar}" index="true">        <manifest>
1188        <fileset dir="${build.jsr166y.dir}"/>          <attribute name="Built-By" value="${user.name}"/>
1189            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1190          </manifest>
1191      </jar>      </jar>
1192    
1193    </target>    </target>
1194    
1195    
   
1196    <target name="jsr166ydocs"    <target name="jsr166ydocs"
1197            description="Builds javadocs with custom tags to build folder">            description="Builds javadocs to dist dir">
1198    
1199      <delete dir="${build.jsr166yjavadocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1200      <mkdir dir="${build.jsr166yjavadocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1201    
1202      <javadoc destdir="${build.jsr166yjavadocs.dir}"      <javadoc destdir="${jsr166ydocs.dir}"
1203               packagenames="jsr166y"               packagenames="jsr166y.*"
1204               link="${jdkapidocs.url}"               link="${java.api.url}"
1205               source="${build.sourcelevel}"               access="${build.javadoc.access}"
1206               sourcepath="${topsrc.dir}:${jdksrc.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1207               additionalparam="-XDignore.symbol.file=true" />               bootclasspath="${bootclasspath6}"
1208                 source="6"
1209                 executable="${javadoc7}"
1210                 failonerror = "true">
1211          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1212          <arg value="-XDignore.symbol.file=true"/>
1213    
1214        </javadoc>
1215    </target>    </target>
1216    
1217    
1218    <target name="jsr166ydist"    <target name="jsr166ydist"
1219            depends="jsr166ydist-clean, jsr166ydist-jar, jsr166ydist-docs"            depends="jsr166ydist-jar, jsr166ydist-docs"
1220            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
1221    
1222    
   
1223    <target name="jsr166yclean"    <target name="jsr166yclean"
1224            description="Removes all build products">            description="Removes all jsr166y build products">
1225    
1226      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
     <delete dir="${build.jsr166ylib.dir}"/>  
   
   </target>  
   
   
   
   <target name="jsr166ydist-clean"  
           description="Removes all build and distribution products">  
1227    
1228    </target>    </target>
1229    
   <target name="jsr166ydist-docs"  
           description="Builds javadocs without custom tags to dist folder">  
   
     <delete dir="${dist.jsr166yjavadocs.dir}"/>  
     <mkdir dir="${dist.jsr166yjavadocs.dir}"/>  
   
     <javadoc destdir="${dist.jsr166yjavadocs.dir}"  
              packagenames="jsr166y"  
              link="${jdkapidocs.url}"  
              source="${build.sourcelevel}"  
              sourcepath="${topsrc.dir}:${jdksrc.dir}"  
              additionalparam="-XDignore.symbol.file=true" />  
   
   </target>  
1230    
1231    <target name="jsr166ydist-jar"    <target name="jsr166ydist-jar"
1232            depends="jsr166yclean, jsr166yjar">            depends="jsr166yclean, jsr166yjar">
1233        <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1234      </target>
1235    
1236      <copy file="${jsr166yproduct.jar}" todir="${dist.dir}"/>    <target name="jsr166ydist-docs"
1237              depends="jsr166yclean, jsr166ydocs">
1238        <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1239    </target>    </target>
1240    
1241    
# Line 835  Line 1243 
1243    
1244    
1245    <target name="extra166ycompile"    <target name="extra166ycompile"
1246            depends="init, configure-compiler, jsr166ycompile"            depends="configure-compiler, jsr166yjar"
1247            description="Compiles extra166y sources">            description="Compiles extra166y sources">
1248    
1249      <mkdir dir="${build.extra166y.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1250    
1251      <javac srcdir="${extra166ysrc.dir}"      <javac srcdir="${topsrc.dir}"
1252            destdir="${build.extra166y.dir}"             destdir="${build.extra166y.classes.dir}"
1253              debug="${build.debug}"             debug="${build.debug}"
1254              classpath="${jsr166yproduct.jar}"             debuglevel="${build.debuglevel}"
1255         debuglevel="${build.debuglevel}"             deprecation="${build.deprecation}"
1256        deprecation="${build.deprecation}"             bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
1257             source="${build.sourcelevel}"             classpath=""
1258               fork="true">             source="6"
1259               target="6"
1260               includeAntRuntime="false"
1261               includeJavaRuntime="false"
1262               encoding="ASCII"
1263               executable="${javac7}"
1264               fork="true">
1265    
1266        <include name="**/*.java"/>        <include name="extra166y/**/*.java"/>
       <compilerarg line="${build.args}"/>  
1267        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1268        <compilerarg value="${bootclasspath.args}"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1269          <compilerarg value="-Werror"/>
1270  <!--       <compilerarg line="-Xlint -Xmaxwarns 1000"/> -->        <compilerarg line="${build.args}"/>
1271    
1272      </javac>      </javac>
   
1273    </target>    </target>
1274    
1275    
   
1276    <target name="extra166yjar"    <target name="extra166yjar"
1277            depends="extra166ycompile"            depends="extra166ycompile"
1278            description="Builds library jar from compiled sources">            description="Builds library jar from compiled sources">
1279    
1280      <mkdir dir="${build.extra166ylib.dir}"/>      <jar destfile="${extra166y.jar}" index="true">
1281          <fileset dir="${build.extra166y.classes.dir}"/>
1282      <jar destfile="${extra166yproduct.jar}" index="true">        <manifest>
1283        <fileset dir="${build.extra166y.dir}"/>          <attribute name="Built-By" value="${user.name}"/>
1284            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1285          </manifest>
1286      </jar>      </jar>
1287    
1288    </target>    </target>
1289    
1290    
   
1291    <target name="extra166ydocs"    <target name="extra166ydocs"
1292            description="Builds javadocs with custom tags to build folder">            description="Builds javadocs to build dir">
1293    
1294      <delete dir="${build.extra166yjavadocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1295      <mkdir dir="${build.extra166yjavadocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1296    
1297      <javadoc destdir="${build.extra166yjavadocs.dir}"      <javadoc destdir="${extra166ydocs.dir}"
1298               packagenames="extra166y"               packagenames="extra166y.*"
1299               link="${jdkapidocs.url}"               link="${java.api.url}"
1300               source="${build.sourcelevel}"               access="${build.javadoc.access}"
1301               sourcepath="${topsrc.dir}:${jdksrc.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1302               additionalparam="-XDignore.symbol.file=true" />               bootclasspath="${bootclasspath6}"
1303                 source="6"
1304                 executable="${javadoc7}">
1305          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1306          <arg value="-XDignore.symbol.file=true"/>
1307    
1308        </javadoc>
1309    </target>    </target>
1310    
1311    
1312    <target name="extra166ydist"    <target name="extra166ydist"
1313            depends="extra166ydist-clean, extra166ydist-jar, extra166ydist-docs"            depends="extra166ydist-jar, extra166ydist-docs"
1314            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
1315    
1316    
   
1317    <target name="extra166yclean"    <target name="extra166yclean"
1318            description="Removes all build products">            description="Removes all extra166y build products">
1319    
1320      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
     <delete dir="${build.extra166ylib.dir}"/>  
1321    
1322    </target>    </target>
1323    
1324    
   
   <target name="extra166ydist-clean"  
           description="Removes all build and distribution products">  
   
   </target>  
   
   <target name="extra166ydist-docs"  
           description="Builds javadocs without custom tags to dist folder">  
   
     <delete dir="${dist.extra166yjavadocs.dir}"/>  
     <mkdir dir="${dist.extra166yjavadocs.dir}"/>  
   
     <javadoc destdir="${dist.extra166yjavadocs.dir}"  
              packagenames="extra166y"  
              link="${jdkapidocs.url}"  
              source="${build.sourcelevel}"  
              sourcepath="${topsrc.dir}:${jdksrc.dir}"  
              additionalparam="-XDignore.symbol.file=true" />  
   
   </target>  
   
1325    <target name="extra166ydist-jar"    <target name="extra166ydist-jar"
1326            depends="extra166yclean, extra166yjar">            depends="extra166yclean, extra166yjar">
1327        <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1328      </target>
1329    
1330      <copy file="${extra166yproduct.jar}" todir="${dist.dir}"/>    <target name="extra166ydist-docs"
1331              depends="extra166yclean, extra166ydocs">
1332        <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1333    </target>    </target>
1334    
1335    <!-- jsr166e -->    <!-- jsr166e -->
1336    
1337      <property name="build.jsr166e.java.version" value="6"/>
1338      <property name="build.jsr166e.javac" value="${javac6}"/>
1339    
1340    <target name="jsr166ecompile"    <target name="jsr166ecompile"
1341            depends="configure-compiler"            depends="configure-compiler"
1342            description="Compiles jsr166e sources">            description="Compiles jsr166e sources">
1343    
1344      <mkdir dir="${build.jsr166e.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1345    
1346      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
1347             destdir="${build.jsr166e.dir}"             destdir="${build.jsr166e.classes.dir}"
1348             debug="${build.debug}"             debug="${build.debug}"
1349             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1350             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1351             source="1.7"             source="${build.jsr166e.java.version}"
1352               target="${build.jsr166e.java.version}"
1353             classpath=""             classpath=""
1354             includeAntRuntime="false"             includeAntRuntime="false"
1355             includeJavaRuntime="false"             includeJavaRuntime="false"
1356             executable="${javac7}"             executable="${build.jsr166e.javac}"
1357             fork="true">             fork="true">
1358    
1359        <include name="jsr166e/**/*.java"/>        <include name="jsr166e/**/*.java"/>
       <compilerarg line="${build.args}"/>  
1360        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1361        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1362          <compilerarg value="-Werror"/>
1363          <compilerarg line="${build.args}"/>
1364    
1365      </javac>      </javac>
   
1366    </target>    </target>
1367    
1368      <!-- jsr166e: find doclint errors -->
1369      <target name="jsr166edoclint">
1370    
1371        <mkdir dir="${build.jsr166e.classes.dir}"/>
1372    
1373        <javac srcdir="${topsrc.dir}"
1374               destdir="${build.jsr166e.classes.dir}"
1375               debug="${build.debug}"
1376               debuglevel="${build.debuglevel}"
1377               deprecation="${build.deprecation}"
1378               source="${build.jsr166e.java.version}"
1379               target="${build.jsr166e.java.version}"
1380               classpath=""
1381               bootclasspath="${bootclasspath6}"
1382               includeAntRuntime="false"
1383               includeJavaRuntime="false"
1384               executable="${javac8}"
1385               fork="true">
1386    
1387          <include name="jsr166e/**/*.java"/>
1388          <compilerarg value="-XDignore.symbol.file=true"/>
1389          <compilerarg value="-Xlint:all"/>
1390          <compilerarg value="-Werror"/>
1391          <compilerarg value="-Xdoclint:all/protected"/>
1392    
1393        </javac>
1394      </target>
1395    
1396    
1397    <target name="jsr166ejar"    <target name="jsr166ejar"
1398            depends="jsr166ecompile"            depends="jsr166ecompile"
1399            description="Builds library jar from compiled sources">            description="Builds library jar from compiled sources">
1400    
1401      <mkdir dir="${build.jsr166elib.dir}"/>      <jar destfile="${jsr166e.jar}" index="true">
1402          <fileset dir="${build.jsr166e.classes.dir}"/>
1403      <jar destfile="${jsr166eproduct.jar}" index="true">        <manifest>
1404        <fileset dir="${build.jsr166e.dir}"/>          <attribute name="Built-By" value="${user.name}"/>
1405            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1406          </manifest>
1407      </jar>      </jar>
1408    
1409    </target>    </target>
1410    
1411    
   
1412    <target name="jsr166edocs"    <target name="jsr166edocs"
1413            description="Builds javadocs with custom tags to build folder">            description="Builds javadocs to build dir">
1414    
1415      <delete dir="${build.jsr166ejavadocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1416      <mkdir dir="${build.jsr166ejavadocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1417    
1418      <javadoc destdir="${build.jsr166ejavadocs.dir}"      <javadoc destdir="${jsr166edocs.dir}"
1419               packagenames="jsr166e,jsr166e.extra"               packagenames="jsr166e.*"
1420               link="${jdkapidocs.url}"               link="${java.api.url}"
1421               source="1.7"               access="${build.javadoc.access}"
1422               sourcepath="${topsrc.dir}:${jdksrc.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1423               additionalparam="-XDignore.symbol.file=true" />               source="${build.jsr166e.java.version}"
1424                 executable="${javadoc7}"
1425                 failonerror = "true">
1426          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1427          <arg value="-XDignore.symbol.file=true"/>
1428    
1429        </javadoc>
1430    </target>    </target>
1431    
1432    
1433    <target name="jsr166edist"    <target name="jsr166e-tck-one-java-version"
1434            depends="jsr166edist-clean, jsr166edist-jar, jsr166edist-docs"            depends="jsr166ejar">
           description="Puts all distributable products in single hierarchy"/>  
1435    
1436        <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
1437    
1438        <run-tck-tests
1439    <target name="jsr166eclean"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1440            description="Removes all build products">        target="${build.jsr166e.java.version}"
1441          workdir="${build.jsr166e.dir}"
1442      <delete dir="${build.jsr166e.dir}"/>        classes="${jsr166e.jar}"/>
     <delete dir="${build.jsr166elib.dir}"/>  
   
1443    </target>    </target>
1444    
1445      <target name="jsr166e-tck"
1446              description="Runs tck tests for jsr166e for multiple java versions">
1447    
1448    <!--     <antcall target="clean"/> -->
1449    <!--     <antcall target="jsr166e-tck-one-java-version"> -->
1450    <!--       <param name="build.jsr166e.java.version" value="8"/> -->
1451    <!--       <param name="build.jsr166e.javac" value="${javac8}"/> -->
1452    <!--     </antcall> -->
1453    
1454    <target name="jsr166edist-clean"      <antcall target="clean"/>
1455            description="Removes all build and distribution products">      <antcall target="jsr166e-tck-one-java-version">
1456          <param name="build.jsr166e.java.version" value="7"/>
1457          <param name="build.jsr166e.javac" value="${javac7}"/>
1458        </antcall>
1459    
1460        <antcall target="clean"/>
1461        <antcall target="jsr166e-tck-one-java-version">
1462          <param name="build.jsr166e.java.version" value="6"/>
1463          <param name="build.jsr166e.javac" value="${javac6}"/>
1464        </antcall>
1465    </target>    </target>
1466    
   <target name="jsr166edist-docs"  
           description="Builds javadocs without custom tags to dist folder">  
1467    
1468      <delete dir="${dist.jsr166ejavadocs.dir}"/>    <target name="jsr166e-test"
1469      <mkdir dir="${dist.jsr166ejavadocs.dir}"/>            depends="jsr166e-tck"
1470              description="Runs all tests for jsr166e">
1471      </target>
1472    
1473      <javadoc destdir="${dist.jsr166ejavadocs.dir}"    <target name="jsr166edist"
1474               packagenames="jsr166e,jsr166e.extra"            depends="jsr166edist-jar, jsr166edist-docs"
1475               link="${jdkapidocs.url}"            description="Puts all distributable products in single hierarchy"/>
              source="1.7"  
              sourcepath="${topsrc.dir}:${jdksrc.dir}"  
              additionalparam="-XDignore.symbol.file=true" />  
1476    
1477    
1478      <target name="jsr166eclean"
1479              description="Removes all jsr166e build products">
1480        <delete dir="${build.jsr166e.dir}"/>
1481    </target>    </target>
1482    
1483    
1484    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1485            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1486        <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1487      </target>
1488    
1489      <copy file="${jsr166eproduct.jar}" todir="${dist.dir}"/>    <target name="jsr166edist-docs"
1490              depends="jsr166eclean, jsr166edocs">
1491        <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1492      </target>
1493    
1494    
1495    <!-- Find buglets that can be detected by static build tools -->
1496    
1497      <target name="lint">
1498        <antcall target="dists">
1499          <param name="build.javadoc.access" value="public"/>
1500        </antcall>
1501    </target>    </target>
1502    
1503    <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1504      <target name="lint-private">
1505        <antcall target="dist">
1506          <param name="build.javadoc.access" value="private"/>
1507        </antcall>
1508      </target>
1509    
1510    
1511  </project>  </project>

Legend:
Removed from v.1.95  
changed lines
  Added in v.1.228

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