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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.94  
changed lines
  Added in v.1.219

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