/[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.221 by jsr166, Sat Oct 8 21:39:24 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      <mkdir dir="${build.classes.dir}"/>      <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="${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    <!-- @apiNote currently unused -->
457    <!--       <arg value="-tag"/> -->
458    <!--       <arg value="apiNote:a:API Note:"/> -->
459          <arg value="-tag"/>
460          <arg value="implSpec:a:Implementation Requirements:"/>
461          <arg value="-tag"/>
462          <arg value="implNote:a:Implementation Note:"/>
463    <!-- tags added in jdk9: currently unused -->
464    <!--       <arg value="-tag"/> -->
465    <!--       <arg value="revised:X"/> -->
466    <!--       <arg value="-tag"/> -->
467    <!--       <arg value="spec:X"/> -->
468      </javadoc>      </javadoc>
   
469    </target>    </target>
470    
471    
   
472    <target name="dist"    <target name="dist"
473            depends="init, dist-clean, dist-jar, dist-docs"            depends="dist-clean, dist-jar, dist-docs"
474            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
475    
476    
# Line 231  Line 488 
488        <exclude name="src/emulation/**"/>        <exclude name="src/emulation/**"/>
489        <exclude name="**/SyntaxTest.java"/>        <exclude name="**/SyntaxTest.java"/>
490        <exclude name="**/SuperfluousAbstract.java"/>        <exclude name="**/SuperfluousAbstract.java"/>
491          <manifest>
492            <attribute name="Built-By" value="${user.name}"/>
493            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
494          </manifest>
495      </jar>      </jar>
   
496    </target>    </target>
497    
498    
   
499    <target name="clean"    <target name="clean"
500            description="Removes all build products">            description="Removes all build products">
501    
502      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
     <delete dir="${build.classes.dir}"/>  
     <delete dir="${build.lib.dir}"/>  
503    
504    </target>    </target>
505    
506    
   
507    <target name="dist-clean"    <target name="dist-clean"
508            description="Removes all build and distribution products">            description="Removes all build and distribution products">
509    
510        <delete dir="${build.dir}"/>
511      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
512    
513    </target>    </target>
514    
515    
516      <target name="dist-jar"
517              depends="clean, jar">
518        <copy file="${product.jar}" todir="${dist.dir}"/>
519      </target>
520    
521    <target name="dist-docs"    <target name="dist-docs"
522            description="Builds javadocs without custom tags to dist folder">            depends="clean, docs">
523        <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
524      </target>
525    
526      <delete dir="${dist.javadocs.dir}"/>    <target name="tck"
527      <mkdir dir="${dist.javadocs.dir}"/>            depends="jar"
528              description="Runs tck tests for src/main directly">
529    
530      <!-- the packagenames="none" hack below prevents scanning the -->      <run-tck-tests
531      <!-- sourcepath for packages -->        target="${build.main.java.version}"
532          workdir="${build.dir}"
533          classes="${product.jar}"/>
534      </target>
535    
536      <javadoc destdir="${dist.javadocs.dir}"    <target name="tck-parallelism-1"
537               packagenames="none"            description="Runs tck with common pool parallelism 1">
538               link="${jdkapidocs.url}"      <antcall target="tck">
539               overview="${src.dir}/intro.html"        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
540               sourcepath="${src.dir}:${jdksrc.dir}"      </antcall>
541               additionalparam="-XDignore.symbol.file=true" >    </target>
       <fileset dir="${src.dir}" defaultexcludes="yes">  
         <include name="**/*.java"/>  
       </fileset>  
     </javadoc>  
542    
543      <target name="tck-parallelism-0"
544              description="Runs tck with common pool parallelism 0">
545        <antcall target="tck">
546          <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
547        </antcall>
548    </target>    </target>
549    
550      <target name="tck-security-manager"
551              description="Runs tck with a security manager">
552        <antcall target="tck">
553          <param name="jsr166.useSecurityManager" value="true"/>
554        </antcall>
555      </target>
556    
557      <target name="jtreg"
558              depends="jar"
559              description="Runs jtreg tests for src/main using the jtreg ant task">
560        <run-jtreg-tests
561           target="${build.main.java.version}"
562           workdir="${build.dir}"
563           classes="${product.jar}"/>
564      </target>
565    
566    <!-- Internal targets -->    <target name="test"
567              depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
568              description="Runs tck and jtreg tests for src/main">
569      </target>
570    
571    <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->
572    
573    <target name="init">  <!--     <antcall target="jtreg"> -->
574    <!--       <param name="build.main.java.version" value="8"/> -->
575    <!--       <param name="build.main.javac" value="${javac8}"/> -->
576    <!--     </antcall> -->
577    
578      <!-- 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>  
579    
580    </target>  <!--   <target name="test89" -->
581    <!--           description="Runs tck and jtreg tests for src/main for multiple java versions"> -->
582    
583    <!--     <antcall target="clean"/> -->
584    <!--     <antcall target="test"> -->
585    <!--       <param name="build.main.java.version" value="8"/> -->
586    <!--       <param name="build.main.javac" value="${javac8}"/> -->
587    <!--     </antcall> -->
588    
589    <target name="dist-jar"  <!--     <antcall target="clean"/> -->
590            depends="clean, jar">  <!--     <antcall target="test"> -->
591    <!--       <param name="build.main.java.version" value="9"/> -->
592    <!--       <param name="build.main.javac" value="${javac9}"/> -->
593    <!--     </antcall> -->
594    
595      <copy file="${product.jar}" todir="${dist.dir}"/>  <!--   </target> -->
596    
   </target>  
597    
598    
599    <target name="compile-tests"    <target name="configure-compiler">
600            depends="jar">      <fail message="ant version too old">
601          <condition>
602            <not> <antversion atleast="1.9.1"/> </not>
603          </condition>
604        </fail>
605    
606      <mkdir dir="${build.testcases.dir}"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
607    
608      <javac srcdir="${tck.src.dir}"      <condition property="warnunchecked.arg" value="${unchecked.option}">
609            destdir="${build.testcases.dir}"        <istrue value="${build.warnunchecked}"/>
610              debug="${build.debug}"      </condition>
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
611    
612        <compilerarg value="${bootclasspath.args}"/>      <property name="warnunchecked.arg" value=""/>
       <compilerarg line="${build.args}"/>  
       <compilerarg value="-XDignore.symbol.file=true"/>  
613    
       <classpath refid="test.classpath"/>  
614    
615      </javac>      <!-- Common options in javac invocations -->
616        <property name="build.args" value="${warnunchecked.arg}"/>
617    
618      <javac srcdir="${test.src.dir}"    </target>
           destdir="${build.testcases.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
619    
       <include name="jsr166/test/**"/>  
620    
       <compilerarg value="${bootclasspath.args}"/>  
       <compilerarg line="${build.args}"/>  
       <compilerarg value="-XDignore.symbol.file=true"/>  
621    
622        <classpath refid="test.classpath"/>    <!-- Various demos and test programs -->
623    
624    
625      </javac>    <!-- description="Benchmark from Doug Lea's AQS paper" -->
626      <target name="loops" depends="configure-compiler">
627    
628  <!--      <mkdir dir="${build.loops.dir}"/>
629      <javac srcdir="${jtreg.src.dir}"  
630            destdir="${build.testcases.dir}"      <javac srcdir="${loops.src.dir}"
631              destdir="${build.loops.dir}"
632              debug="${build.debug}"              debug="${build.debug}"
633         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
634        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
635             source="${build.sourcelevel}"             source="${build.sourcelevel}"
636               target="${build.sourcelevel}"
637             encoding="ASCII"
638               fork="true">               fork="true">
639    
       <compilerarg value="${bootclasspath.args}"/>  
640        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
641          <classpath refid="loops.classpath"/>
642        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
643    
       <classpath refid="test.classpath"/>  
   
644      </javac>      </javac>
645  -->  
646        <java classname="ALoops" fork="true">
647          <classpath refid="loops.classpath"/>
648        </java>
649    
650    </target>    </target>
651    
652    
653    <target name="run-tests"    <target name="compile-test-loops" depends="jar"
654            depends="compile-tests">            description="compile all the perf tests in src/test/loops">
655    
656      <!-- May be overridden by user.properties -->      <mkdir dir="${build.dir}/test/loops"/>
     <property name="testcase" value="*"/>  
657    
658      <mkdir dir="${build.reports.dir}"/>      <javac srcdir="${basedir}/src/test/loops"
659               destdir="${build.dir}/test/loops"
660               debug="${build.debug}"
661               debuglevel="${build.debuglevel}"
662               deprecation="${build.deprecation}"
663               includeAntRuntime="false"
664               includeJavaRuntime="false"
665               encoding="ASCII"
666               executable="${javac9}"
667               fork="true">
668    
669      <junit printsummary="true"        <include name="*.java"/>
670               showoutput="true"        <compilerarg value="-XDignore.symbol.file=true"/>
671            errorProperty="junit.failed"        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
672          failureProperty="junit.failed"        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
673                      dir="${build.reports.dir}"        <compilerarg line="${build.args}"/>
                    fork="true">  
674    
675        <jvmarg value="${bootclasspath.args}"/>      </javac>
676        <jvmarg value="-server"/>  
677        <jvmarg value="-showversion"/>    </target>
678    
       <classpath refid="test.classpath"/>  
679    
680        <formatter type="xml"/>    <!-- jsr166 4jdk8 -->
681    
682        <batchtest todir="${build.reports.dir}" unless="no.test.tck">    <target name="4jdk8compile"
683          <fileset dir="${tck.src.dir}">            depends="configure-compiler"
684            <include name="**/${testcase}Test.java"/>            description="Compiles src/jdk8 sources, targeting jdk8">
         </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>  
 -->  
685    
686      </junit>      <mkdir dir="${build.4jdk8.classes.dir}"/>
687    
688        <javac srcdir="${4jdk8src.dir}"
689               destdir="${build.4jdk8.classes.dir}"
690               debug="${build.debug}"
691               debuglevel="${build.debuglevel}"
692               deprecation="${build.deprecation}"
693               source="8"
694               target="8"
695               classpath=""
696               bootclasspath="${bootclasspath8}"
697               includeAntRuntime="false"
698               includeJavaRuntime="false"
699               encoding="ASCII"
700               executable="${javac8}"
701               fork="true">
702    
703          <include name="**/*.java"/>
704          <compilerarg value="-Xprefer:source"/>
705          <compilerarg value="-XDignore.symbol.file=true"/>
706          <compilerarg value="-Xlint:all"/>
707          <compilerarg value="-Werror"/>
708          <compilerarg line="${build.args}"/>
709    
710        </javac>
711    </target>    </target>
712    
713      <target name="4jdk8doclint"
714              depends="configure-compiler"
715              description="Finds doclint warnings">
716    
717    <target name="report-tests"      <mkdir dir="${build.4jdk8.classes.dir}"/>
           depends="run-tests">  
718    
719      <!-- Sets junit.report.format to frames if redirection is present,      <javac srcdir="${4jdk8src.dir}"
720           otherwise sets it to noframes. -->             destdir="${build.4jdk8.classes.dir}"
721      <available property="junit.report.format"             debug="${build.debug}"
722                    value="frames"             debuglevel="${build.debuglevel}"
723                classname="org.apache.xalan.lib.Redirect"             deprecation="${build.deprecation}"
724      />             source="8"
725      <property name="junit.report.format" value="noframes"/>             target="8"
726               classpath=""
727      <junitreport todir="${build.reports.dir}">             bootclasspath="${bootclasspath8}"
728        <fileset dir="${build.reports.dir}">             includeAntRuntime="false"
729          <include name="TEST-*.xml"/>             includeJavaRuntime="false"
730        </fileset>             encoding="ASCII"
731        <report format="${junit.report.format}" todir="${build.reports.dir}"             executable="${javac8}"
732        />             fork="true">
     </junitreport>  
733    
734      <fail message="Test Cases Failed" if="junit.failed"/>        <include name="**/*.java"/>
735          <compilerarg value="-Xprefer:source"/>
736          <compilerarg value="-XDignore.symbol.file=true"/>
737          <compilerarg value="-Xlint:all"/>
738          <compilerarg value="-Xdoclint:all/protected"/>
739          <compilerarg line="${build.args}"/>
740    
741        </javac>
742    </target>    </target>
743    
744    
745    <target name="configure-compiler">    <target name="4jdk8jar"
746              depends="4jdk8compile"
747      <property name="unchecked.option" value="-Xlint:unchecked"/>            description="Builds library jar from compiled sources">
748    
749      <condition property="warnunchecked.arg" value="${unchecked.option}">      <jar destfile="${4jdk8product.jar}">
750        <istrue value="${build.warnunchecked}"/>        <fileset dir="${build.4jdk8.classes.dir}"/>
751      </condition>        <manifest>
752            <attribute name="Built-By" value="${user.name}"/>
753            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
754          </manifest>
755        </jar>
756    
757      <property name="warnunchecked.arg" value=""/>    </target>
758    
759    
760      <!-- Common options in javac invocations -->    <target name="4jdk8-tck"
761      <property name="build.args" value="${warnunchecked.arg}"/>            depends="4jdk8jar"
762              description="Runs tck tests for jsr166-4jdk8 directly">
763    
764        <run-tck-tests
765          target="8"
766          workdir="${build.4jdk8.dir}"
767          classes="${4jdk8product.jar}">
768          <javac-elements>
769            <!-- JDK9+ test classes -->
770            <exclude name="*9Test.java"/>
771            <exclude name="*10Test.java"/>
772          </javac-elements>
773        </run-tck-tests>
774    </target>    </target>
775    
776    
777    <target name="configure-tests"    <target name="4jdk8-jtreg"
778         depends="configure-compiler">            depends="4jdk8jar"
779              description="Runs jtreg tests for jsr166-4jdk8 using the jtreg ant task">
780        <run-jtreg-tests
781           target="8"
782           workdir="${build.4jdk8.dir}"
783           classes="${4jdk8product.jar}"/>
784      </target>
785    
     <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->  
     <available property="junit.available"  
                classname="junit.framework.Protectable"/>  
786    
787      <!-- Xalan -->    <target name="4jdk8-test"
788      <available property="xalan.available"            depends="4jdk8-tck, 4jdk8-jtreg"
789                 classname="org.apache.xalan.Version"/>            description="Runs tck and jtreg tests for jsr166-4jdk8">
790      </target>
791    
792    
793      <!-- Ant 1.6beta and later don't need or want this check -->    <target name="4jdk8docs"
794      <!--            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"/>  
795    
796      <fail message="Need Xalan 2.5.1 jar in ${ant.home}${file.separator}lib to run tests"      <delete dir="${4jdk8docs.dir}"/>
797            unless="xalan.available"/>      <mkdir dir="${4jdk8docs.dir}"/>
     -->  
798    
799        <javadoc destdir="${4jdk8docs.dir}"
800                 packagenames="none"
801                 link="${java8.api.url}"
802                 overview="${4jdk8src.dir}/intro.html"
803                 access="${build.javadoc.access}"
804                 sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
805                 classpath=""
806                 executable="${javadoc8}"
807                 failonerror = "true">
808          <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
809            <include name="**/*.java"/>
810          </fileset>
811          <arg line="-Xdocrootparent ${java8.docroot.url}"/>
812          <arg value="-XDignore.symbol.file=true"/>
813          <arg value="-tag"/>
814          <arg value="${javadoc.jls.option}"/>
815    <!-- @apiNote currently unused -->
816    <!--       <arg value="-tag"/> -->
817    <!--       <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
818          <arg value="-tag"/>
819          <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
820          <arg value="-tag"/>
821          <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
822        </javadoc>
823    </target>    </target>
824    
825    
826    <!-- Various demos and test programs -->    <target name="4jdk8dist"
827              depends="4jdk8dist-jar, 4jdk8dist-docs"
828              description="Puts all distributable products in single hierarchy"/>
829    
830    
831    <target name="loops" depends="init, configure-compiler"    <target name="4jdk8clean"
832            description="Benchmark from Doug Lea's AQS paper">            description="Removes all 4jdk8 build products">
833    
834      <mkdir dir="${build.loops.dir}"/>      <delete dir="${build.4jdk8.dir}"/>
835    
836      <javac srcdir="${loops.src.dir}"    </target>
           destdir="${build.loops.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
837    
       <compilerarg line="${build.args}"/>  
       <classpath refid="loops.classpath"/>  
       <compilerarg value="-XDignore.symbol.file=true"/>  
838    
839      </javac>    <target name="4jdk8dist-jar"
840              depends="4jdk8clean, 4jdk8jar">
841        <copy file="${4jdk8product.jar}" todir="${dist.dir}"/>
842      </target>
843    
     <java classname="ALoops" fork="true">  
       <classpath refid="loops.classpath"/>  
     </java>  
844    
845      <target name="4jdk8dist-docs"
846              depends="4jdk8clean, 4jdk8docs">
847        <mirror-dir src="${4jdk8docs.dir}" dst="${dist.4jdk8docs.dir}"/>
848    </target>    </target>
849    
850    
   <!-- jdk7 -->  
851    
852      <!-- jsr166 4jdk7 -->
853    
854    <target name="jdk7compile"    <target name="4jdk7compile"
855            depends="configure-compiler"            depends="configure-compiler"
856            description="Compiles src/jdk7 sources">            description="Compiles src/jdk7 sources, targeting jdk7">
857    
858      <mkdir dir="${build.jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
859    
860      <javac srcdir="${jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
861             destdir="${build.jdk7.classes.dir}"             destdir="${build.4jdk7.classes.dir}"
862             debug="${build.debug}"             debug="${build.debug}"
863             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
864             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
865             source="1.6"             source="6"
866               target="6"
867             classpath=""             classpath=""
868             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
869             includeAntRuntime="false"             includeAntRuntime="false"
870             includeJavaRuntime="false"             includeJavaRuntime="false"
871             executable="${javac6}"             encoding="ASCII"
872               executable="${javac7}"
873             fork="true">             fork="true">
874    
875        <include name="**/*.java"/>        <include name="**/*.java"/>
876        <compilerarg line="${build.args}"/>        <compilerarg value="-Xprefer:source"/>
877        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
878        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
879          <compilerarg value="-Werror"/>
880          <compilerarg line="${build.args}"/>
881    
882      </javac>      </javac>
   
883    </target>    </target>
884    
885      <target name="4jdk7doclint"
886              depends="configure-compiler"
887              description="Finds doclint warnings">
888    
889        <mkdir dir="${build.4jdk7.classes.dir}"/>
890    
891    <target name="jdk7jar"      <javac srcdir="${4jdk7src.dir}"
892            depends="jdk7compile"             destdir="${build.4jdk7.classes.dir}"
893            description="Builds library jar from compiled sources">             debug="${build.debug}"
894               debuglevel="${build.debuglevel}"
895      <mkdir dir="${build.jdk7.lib.dir}"/>             deprecation="${build.deprecation}"
896               source="6"
897               target="6"
898               classpath=""
899               bootclasspath="${bootclasspath6}"
900               includeAntRuntime="false"
901               includeJavaRuntime="false"
902               encoding="ASCII"
903               executable="${javac8}"
904               fork="true">
905    
906      <jar destfile="${jdk7product.jar}" index="true">        <include name="**/*.java"/>
907        <fileset dir="${build.jdk7.classes.dir}"/>        <compilerarg value="-Xprefer:source"/>
908      </jar>        <compilerarg value="-XDignore.symbol.file=true"/>
909          <compilerarg value="-Xlint:all"/>
910          <compilerarg value="-Xdoclint:all/protected"/>
911          <compilerarg line="${build.args}"/>
912    
913        </javac>
914    </target>    </target>
915    
916    
917      <target name="4jdk7jar"
918              depends="4jdk7compile"
919              description="Builds library jar from compiled sources">
920    
921    <target name="jdk7docs"      <jar destfile="${4jdk7product.jar}">
922            description="Builds javadocs with custom tags to build folder">        <fileset dir="${build.4jdk7.classes.dir}"/>
923          <manifest>
924            <attribute name="Built-By" value="${user.name}"/>
925            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
926          </manifest>
927        </jar>
928    
929      <delete dir="${build.jdk7.docs.dir}"/>    </target>
     <mkdir dir="${build.jdk7.docs.dir}"/>  
930    
     <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>  
931    
932      <target name="4jdk7-tck"
933              depends="4jdk7jar"
934              description="Runs tck tests for jsr166-4jdk7 directly">
935    
936        <run-tck-tests
937          target="7"
938          workdir="${build.4jdk7.dir}"
939          classes="${4jdk7product.jar}">
940          <javac-elements>
941            <!-- JDK8+ test classes -->
942            <exclude name="*8Test.java"/>
943            <exclude name="*9Test.java"/>
944            <exclude name="*10Test.java"/>
945            <exclude name="DoubleAccumulatorTest.java"/>
946            <exclude name="DoubleAdderTest.java"/>
947            <exclude name="LongAccumulatorTest.java"/>
948            <exclude name="LongAdderTest.java"/>
949            <exclude name="CompletableFutureTest.java"/>
950            <exclude name="SplittableRandomTest.java"/>
951            <exclude name="StampedLockTest.java"/>
952            <exclude name="SubmissionPublisherTest.java"/>
953          </javac-elements>
954        </run-tck-tests>
955    </target>    </target>
956    
957    
958    <target name="jdk7dist"    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
959            depends="jdk7dist-clean, jdk7dist-jar, jdk7dist-docs"    <target name="4jdk7-tck-junit"
960            description="Puts all distributable products in single hierarchy"/>            depends="4jdk7compile">
961    
962        <junit printsummary="true"
963               showoutput="true"
964               errorProperty="junit.failed"
965               failureProperty="junit.failed"
966               includeantruntime="true"
967               jvm="${java7}"
968               fork="true">
969    
970          <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
971          <jvmarg value="-server"/>
972    
973    <target name="jdk7clean"        <classpath>
974            description="Removes all build products">          <pathelement location="${junit.jar}"/>
975            <pathelement location="${build.4jdk7.tck.classes.dir}"/>
976          </classpath>
977    
978      <delete dir="${build.jdk7.dir}"/>        <formatter type="brief"/>
979    
980          <test name="${jsr166.tckTestClass}" haltonfailure="no">
981          </test>
982    
983        </junit>
984    </target>    </target>
985    
986      <target name="4jdk7-jtreg"
987              depends="4jdk7jar"
988              description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">
989        <run-jtreg-tests
990           target="7"
991           workdir="${build.4jdk7.dir}"
992           classes="${4jdk7product.jar}"/>
993      </target>
994    
995    
996    <target name="jdk7dist-clean"    <target name="4jdk7-test"
997            description="Removes all build and distribution products">            depends="4jdk7-tck, 4jdk7-jtreg"
998              description="Runs tck and jtreg tests for jsr166-4jdk7">
999    </target>    </target>
1000    
   <target name="jdk7dist-docs"  
           description="Builds javadocs without custom tags to dist folder">  
1001    
1002      <delete dir="${dist.jdk7.docs.dir}"/>    <target name="4jdk7docs"
1003      <mkdir dir="${dist.jdk7.docs.dir}"/>            description="Builds javadocs for src/jdk7 to dist dir">
1004    
1005        <delete dir="${4jdk7docs.dir}"/>
1006        <mkdir dir="${4jdk7docs.dir}"/>
1007    
1008      <javadoc destdir="${dist.jdk7.docs.dir}"      <javadoc destdir="${4jdk7docs.dir}"
1009               packagenames="none"               packagenames="none"
1010               link="${jdkapi7docs.url}"               link="${java7.api.url}"
1011               overview="${jdk7src.dir}/intro.html"               overview="${4jdk7src.dir}/intro.html"
1012               sourcepath="${jdk7src.dir}"               access="${build.javadoc.access}"
1013                 sourcepath="${4jdk7src.dir}:${jdk7.src.dir}"
1014               classpath=""               classpath=""
1015               executable="${javadoc7}"               executable="${javadoc7}"
1016               bootclasspath="${bootclasspath6}"               failonerror = "true">
1017               source="1.6">        <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
       <arg value="-XDignore.symbol.file=true"/>  
       <fileset dir="${jdk7src.dir}" defaultexcludes="yes">  
1018          <include name="**/*.java"/>          <include name="**/*.java"/>
1019        </fileset>        </fileset>
1020          <arg line="-Xdocrootparent ${java7.docroot.url}"/>
1021          <arg value="-XDignore.symbol.file=true"/>
1022      </javadoc>      </javadoc>
1023      </target>
1024    
1025    
1026      <target name="4jdk7dist"
1027              depends="4jdk7dist-jar, 4jdk7dist-docs"
1028              description="Puts all distributable products in single hierarchy"/>
1029    
1030    
1031      <target name="4jdk7clean"
1032              description="Removes all 4jdk7 build products">
1033    
1034        <delete dir="${build.4jdk7.dir}"/>
1035    
1036    </target>    </target>
1037    
   <target name="jdk7dist-jar"  
           depends="jdk7clean, jdk7jar">  
1038    
1039      <copy file="${jdk7product.jar}" todir="${dist.dir}"/>    <target name="4jdk7dist-jar"
1040              depends="4jdk7clean, 4jdk7jar">
1041        <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1042      </target>
1043    
1044    
1045      <target name="4jdk7dist-docs"
1046              depends="4jdk7clean, 4jdk7docs">
1047        <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1048    </target>    </target>
1049    
   <!-- jsr166x -->  
1050    
1051      <!-- jsr166x -->
1052    
1053    <target name="jsr166xcompile"    <target name="jsr166xcompile"
1054            depends="init, configure-compiler"            depends="configure-compiler"
1055            description="Compiles jsr166x sources">            description="Compiles jsr166x sources to build dir">
1056    
1057      <mkdir dir="${build.jsr166x.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1058    
1059      <javac srcdir="${jsr166xsrc.dir}"      <javac srcdir="${topsrc.dir}"
1060            destdir="${build.jsr166x.dir}"             destdir="${build.jsr166x.classes.dir}"
1061              debug="${build.debug}"             debug="${build.debug}"
1062         debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1063        deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1064             source="${build.sourcelevel}"             classpath=""
1065               fork="true">             bootclasspath="${bootclasspath6}"
1066               source="5"
1067               target="5"
1068               includeAntRuntime="false"
1069               includeJavaRuntime="false"
1070               encoding="ASCII"
1071               executable="${javac7}"
1072               fork="true">
1073    
1074        <include name="**/*.java"/>        <include name="jsr166x/**/*.java"/>
       <compilerarg line="${build.args}"/>  
1075        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1076          <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1077          <compilerarg value="-Werror"/>
1078          <compilerarg line="${build.args}"/>
1079    
1080      </javac>      </javac>
   
1081    </target>    </target>
1082    
1083    
   
1084    <target name="jsr166xjar"    <target name="jsr166xjar"
1085            depends="jsr166xcompile"            depends="jsr166xcompile"
1086            description="Builds library jar from compiled sources">            description="Builds library jar from compiled sources">
1087    
1088      <mkdir dir="${build.jsr166xlib.dir}"/>      <jar destfile="${jsr166x.jar}">
1089          <fileset dir="${build.jsr166x.classes.dir}"/>
1090      <jar destfile="${jsr166xproduct.jar}">        <manifest>
1091        <fileset dir="${build.jsr166x.dir}"/>          <attribute name="Built-By" value="${user.name}"/>
1092            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1093          </manifest>
1094      </jar>      </jar>
1095    
1096    </target>    </target>
1097    
1098    
   
1099    <target name="jsr166xdocs"    <target name="jsr166xdocs"
1100            description="Builds javadocs with custom tags to build folder">            description="Builds javadocs to dist dir">
1101    
1102      <delete dir="${build.jsr166xjavadocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1103      <mkdir dir="${build.jsr166xjavadocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1104    
1105      <javadoc destdir="${build.jsr166xjavadocs.dir}"      <javadoc destdir="${jsr166xdocs.dir}"
1106               packagenames="jsr166x"               packagenames="jsr166x.*"
1107               link="${jdkapidocs.url}"               link="${java.api.url}"
1108               source="${build.sourcelevel}"               access="${build.javadoc.access}"
1109               sourcepath="${topsrc.dir}:${jdksrc.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1110               additionalparam="-XDignore.symbol.file=true" />               bootclasspath="${bootclasspath6}"
1111                 source="5"
1112                 executable="${javadoc7}"
1113                 failonerror = "true">
1114          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1115          <arg value="-XDignore.symbol.file=true"/>
1116    
1117        </javadoc>
1118    </target>    </target>
1119    
1120    
1121    <target name="jsr166xdist"    <target name="jsr166xdist"
1122            depends="jsr166xdist-clean, jsr166xdist-jar, jsr166xdist-docs"            depends="jsr166xdist-jar, jsr166xdist-docs"
1123            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
1124    
1125    
   
1126    <target name="jsr166xclean"    <target name="jsr166xclean"
1127            description="Removes all build products">            description="Removes all jsr166x build products">
1128    
1129      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
     <delete dir="${build.jsr166xlib.dir}"/>  
1130    
1131    </target>    </target>
1132    
1133    
   
   <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>  
   
1134    <target name="jsr166xdist-jar"    <target name="jsr166xdist-jar"
1135            depends="jsr166xclean, jsr166xjar">            depends="jsr166xclean, jsr166xjar">
1136        <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1137      </target>
1138    
1139      <copy file="${jsr166xproduct.jar}" todir="${dist.dir}"/>    <target name="jsr166xdist-docs"
1140              depends="jsr166xclean, jsr166xdocs">
1141        <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1142    </target>    </target>
1143    
1144    <!-- jsr166y -->    <!-- jsr166y -->
1145    
1146    
1147    <target name="jsr166ycompile"    <target name="jsr166ycompile"
1148            depends="init, configure-compiler"            depends="configure-compiler"
1149            description="Compiles jsr166y sources">            description="Compiles jsr166y sources">
1150    
1151      <mkdir dir="${build.jsr166y.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1152    
1153      <javac srcdir="${jsr166ysrc.dir}"      <javac srcdir="${topsrc.dir}"
1154            destdir="${build.jsr166y.dir}"             destdir="${build.jsr166y.classes.dir}"
1155              debug="${build.debug}"             debug="${build.debug}"
1156         debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1157        deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1158             source="${build.sourcelevel}"             source="6"
1159               fork="true">             target="6"
1160               classpath=""
1161               bootclasspath="${bootclasspath6}"
1162               includeAntRuntime="false"
1163               includeJavaRuntime="false"
1164               encoding="ASCII"
1165               executable="${javac7}"
1166               fork="true">
1167    
1168        <include name="**/*.java"/>        <include name="jsr166y/**/*.java"/>
       <compilerarg line="${build.args}"/>  
1169        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1170        <compilerarg value="${bootclasspath.args}"/>        <compilerarg value="-Xlint:all"/>
1171          <compilerarg value="-Werror"/>
1172  <!--       <compilerarg line="-Xlint -Xmaxwarns 1000"/> -->        <compilerarg line="${build.args}"/>
1173    
1174      </javac>      </javac>
   
1175    </target>    </target>
1176    
1177    
   
1178    <target name="jsr166yjar"    <target name="jsr166yjar"
1179            depends="jsr166ycompile"            depends="jsr166ycompile"
1180            description="Builds library jar from compiled sources">            description="Builds library jar from compiled sources">
1181    
1182      <mkdir dir="${build.jsr166ylib.dir}"/>      <jar destfile="${jsr166y.jar}" index="true">
1183          <fileset dir="${build.jsr166y.classes.dir}"/>
1184      <jar destfile="${jsr166yproduct.jar}" index="true">        <manifest>
1185        <fileset dir="${build.jsr166y.dir}"/>          <attribute name="Built-By" value="${user.name}"/>
1186            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1187          </manifest>
1188      </jar>      </jar>
1189    
1190    </target>    </target>
1191    
1192    
   
1193    <target name="jsr166ydocs"    <target name="jsr166ydocs"
1194            description="Builds javadocs with custom tags to build folder">            description="Builds javadocs to dist dir">
1195    
1196      <delete dir="${build.jsr166yjavadocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1197      <mkdir dir="${build.jsr166yjavadocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1198    
1199      <javadoc destdir="${build.jsr166yjavadocs.dir}"      <javadoc destdir="${jsr166ydocs.dir}"
1200               packagenames="jsr166y"               packagenames="jsr166y.*"
1201               link="${jdkapidocs.url}"               link="${java.api.url}"
1202               source="${build.sourcelevel}"               access="${build.javadoc.access}"
1203               sourcepath="${topsrc.dir}:${jdksrc.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1204               additionalparam="-XDignore.symbol.file=true" />               bootclasspath="${bootclasspath6}"
1205                 source="6"
1206                 executable="${javadoc7}"
1207                 failonerror = "true">
1208          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1209          <arg value="-XDignore.symbol.file=true"/>
1210    
1211        </javadoc>
1212    </target>    </target>
1213    
1214    
1215    <target name="jsr166ydist"    <target name="jsr166ydist"
1216            depends="jsr166ydist-clean, jsr166ydist-jar, jsr166ydist-docs"            depends="jsr166ydist-jar, jsr166ydist-docs"
1217            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
1218    
1219    
   
1220    <target name="jsr166yclean"    <target name="jsr166yclean"
1221            description="Removes all build products">            description="Removes all jsr166y build products">
1222    
1223      <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">  
1224    
1225    </target>    </target>
1226    
   <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>  
1227    
1228    <target name="jsr166ydist-jar"    <target name="jsr166ydist-jar"
1229            depends="jsr166yclean, jsr166yjar">            depends="jsr166yclean, jsr166yjar">
1230        <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1231      </target>
1232    
1233      <copy file="${jsr166yproduct.jar}" todir="${dist.dir}"/>    <target name="jsr166ydist-docs"
1234              depends="jsr166yclean, jsr166ydocs">
1235        <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1236    </target>    </target>
1237    
1238    
# Line 835  Line 1240 
1240    
1241    
1242    <target name="extra166ycompile"    <target name="extra166ycompile"
1243            depends="init, configure-compiler, jsr166ycompile"            depends="configure-compiler, jsr166yjar"
1244            description="Compiles extra166y sources">            description="Compiles extra166y sources">
1245    
1246      <mkdir dir="${build.extra166y.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1247    
1248      <javac srcdir="${extra166ysrc.dir}"      <javac srcdir="${topsrc.dir}"
1249            destdir="${build.extra166y.dir}"             destdir="${build.extra166y.classes.dir}"
1250              debug="${build.debug}"             debug="${build.debug}"
1251              classpath="${jsr166yproduct.jar}"             debuglevel="${build.debuglevel}"
1252         debuglevel="${build.debuglevel}"             deprecation="${build.deprecation}"
1253        deprecation="${build.deprecation}"             bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
1254             source="${build.sourcelevel}"             classpath=""
1255               fork="true">             source="6"
1256               target="6"
1257               includeAntRuntime="false"
1258               includeJavaRuntime="false"
1259               encoding="ASCII"
1260               executable="${javac7}"
1261               fork="true">
1262    
1263        <include name="**/*.java"/>        <include name="extra166y/**/*.java"/>
       <compilerarg line="${build.args}"/>  
1264        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1265        <compilerarg value="${bootclasspath.args}"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1266          <compilerarg value="-Werror"/>
1267  <!--       <compilerarg line="-Xlint -Xmaxwarns 1000"/> -->        <compilerarg line="${build.args}"/>
1268    
1269      </javac>      </javac>
   
1270    </target>    </target>
1271    
1272    
   
1273    <target name="extra166yjar"    <target name="extra166yjar"
1274            depends="extra166ycompile"            depends="extra166ycompile"
1275            description="Builds library jar from compiled sources">            description="Builds library jar from compiled sources">
1276    
1277      <mkdir dir="${build.extra166ylib.dir}"/>      <jar destfile="${extra166y.jar}" index="true">
1278          <fileset dir="${build.extra166y.classes.dir}"/>
1279      <jar destfile="${extra166yproduct.jar}" index="true">        <manifest>
1280        <fileset dir="${build.extra166y.dir}"/>          <attribute name="Built-By" value="${user.name}"/>
1281            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1282          </manifest>
1283      </jar>      </jar>
1284    
1285    </target>    </target>
1286    
1287    
   
1288    <target name="extra166ydocs"    <target name="extra166ydocs"
1289            description="Builds javadocs with custom tags to build folder">            description="Builds javadocs to build dir">
1290    
1291      <delete dir="${build.extra166yjavadocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1292      <mkdir dir="${build.extra166yjavadocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1293    
1294      <javadoc destdir="${build.extra166yjavadocs.dir}"      <javadoc destdir="${extra166ydocs.dir}"
1295               packagenames="extra166y"               packagenames="extra166y.*"
1296               link="${jdkapidocs.url}"               link="${java.api.url}"
1297               source="${build.sourcelevel}"               access="${build.javadoc.access}"
1298               sourcepath="${topsrc.dir}:${jdksrc.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1299               additionalparam="-XDignore.symbol.file=true" />               bootclasspath="${bootclasspath6}"
1300                 source="6"
1301                 executable="${javadoc7}">
1302          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1303          <arg value="-XDignore.symbol.file=true"/>
1304    
1305        </javadoc>
1306    </target>    </target>
1307    
1308    
1309    <target name="extra166ydist"    <target name="extra166ydist"
1310            depends="extra166ydist-clean, extra166ydist-jar, extra166ydist-docs"            depends="extra166ydist-jar, extra166ydist-docs"
1311            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
1312    
1313    
   
1314    <target name="extra166yclean"    <target name="extra166yclean"
1315            description="Removes all build products">            description="Removes all extra166y build products">
1316    
1317      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
     <delete dir="${build.extra166ylib.dir}"/>  
1318    
1319    </target>    </target>
1320    
1321    
   
   <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>  
   
1322    <target name="extra166ydist-jar"    <target name="extra166ydist-jar"
1323            depends="extra166yclean, extra166yjar">            depends="extra166yclean, extra166yjar">
1324        <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1325      </target>
1326    
1327      <copy file="${extra166yproduct.jar}" todir="${dist.dir}"/>    <target name="extra166ydist-docs"
1328              depends="extra166yclean, extra166ydocs">
1329        <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1330    </target>    </target>
1331    
1332    <!-- jsr166e -->    <!-- jsr166e -->
1333    
1334      <property name="build.jsr166e.java.version" value="6"/>
1335      <property name="build.jsr166e.javac" value="${javac6}"/>
1336    
1337    <target name="jsr166ecompile"    <target name="jsr166ecompile"
1338            depends="configure-compiler"            depends="configure-compiler"
1339            description="Compiles jsr166e sources">            description="Compiles jsr166e sources">
1340    
1341      <mkdir dir="${build.jsr166e.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1342    
1343      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
1344             destdir="${build.jsr166e.dir}"             destdir="${build.jsr166e.classes.dir}"
1345             debug="${build.debug}"             debug="${build.debug}"
1346             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1347             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1348             source="1.7"             source="${build.jsr166e.java.version}"
1349               target="${build.jsr166e.java.version}"
1350             classpath=""             classpath=""
1351             includeAntRuntime="false"             includeAntRuntime="false"
1352             includeJavaRuntime="false"             includeJavaRuntime="false"
1353             executable="${javac7}"             executable="${build.jsr166e.javac}"
1354             fork="true">             fork="true">
1355    
1356        <include name="jsr166e/**/*.java"/>        <include name="jsr166e/**/*.java"/>
       <compilerarg line="${build.args}"/>  
1357        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1358        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1359          <compilerarg value="-Werror"/>
1360          <compilerarg line="${build.args}"/>
1361    
1362      </javac>      </javac>
   
1363    </target>    </target>
1364    
1365      <!-- jsr166e: find doclint errors -->
1366      <target name="jsr166edoclint">
1367    
1368        <mkdir dir="${build.jsr166e.classes.dir}"/>
1369    
1370        <javac srcdir="${topsrc.dir}"
1371               destdir="${build.jsr166e.classes.dir}"
1372               debug="${build.debug}"
1373               debuglevel="${build.debuglevel}"
1374               deprecation="${build.deprecation}"
1375               source="${build.jsr166e.java.version}"
1376               target="${build.jsr166e.java.version}"
1377               classpath=""
1378               bootclasspath="${bootclasspath6}"
1379               includeAntRuntime="false"
1380               includeJavaRuntime="false"
1381               executable="${javac8}"
1382               fork="true">
1383    
1384          <include name="jsr166e/**/*.java"/>
1385          <compilerarg value="-XDignore.symbol.file=true"/>
1386          <compilerarg value="-Xlint:all"/>
1387          <compilerarg value="-Werror"/>
1388          <compilerarg value="-Xdoclint:all/protected"/>
1389    
1390        </javac>
1391      </target>
1392    
1393    
1394    <target name="jsr166ejar"    <target name="jsr166ejar"
1395            depends="jsr166ecompile"            depends="jsr166ecompile"
1396            description="Builds library jar from compiled sources">            description="Builds library jar from compiled sources">
1397    
1398      <mkdir dir="${build.jsr166elib.dir}"/>      <jar destfile="${jsr166e.jar}" index="true">
1399          <fileset dir="${build.jsr166e.classes.dir}"/>
1400      <jar destfile="${jsr166eproduct.jar}" index="true">        <manifest>
1401        <fileset dir="${build.jsr166e.dir}"/>          <attribute name="Built-By" value="${user.name}"/>
1402            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1403          </manifest>
1404      </jar>      </jar>
1405    
1406    </target>    </target>
1407    
1408    
   
1409    <target name="jsr166edocs"    <target name="jsr166edocs"
1410            description="Builds javadocs with custom tags to build folder">            description="Builds javadocs to build dir">
1411    
1412      <delete dir="${build.jsr166ejavadocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1413      <mkdir dir="${build.jsr166ejavadocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1414    
1415      <javadoc destdir="${build.jsr166ejavadocs.dir}"      <javadoc destdir="${jsr166edocs.dir}"
1416               packagenames="jsr166e,jsr166e.extra"               packagenames="jsr166e.*"
1417               link="${jdkapidocs.url}"               link="${java.api.url}"
1418               source="1.7"               access="${build.javadoc.access}"
1419               sourcepath="${topsrc.dir}:${jdksrc.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1420               additionalparam="-XDignore.symbol.file=true" />               source="${build.jsr166e.java.version}"
1421                 executable="${javadoc7}"
1422                 failonerror = "true">
1423          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1424          <arg value="-XDignore.symbol.file=true"/>
1425    
1426        </javadoc>
1427    </target>    </target>
1428    
1429    
1430    <target name="jsr166edist"    <target name="jsr166e-tck-one-java-version"
1431            depends="jsr166edist-clean, jsr166edist-jar, jsr166edist-docs"            depends="jsr166ejar">
           description="Puts all distributable products in single hierarchy"/>  
1432    
1433        <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
1434    
1435        <run-tck-tests
1436    <target name="jsr166eclean"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1437            description="Removes all build products">        target="${build.jsr166e.java.version}"
1438          workdir="${build.jsr166e.dir}"
1439      <delete dir="${build.jsr166e.dir}"/>        classes="${jsr166e.jar}"/>
     <delete dir="${build.jsr166elib.dir}"/>  
   
1440    </target>    </target>
1441    
1442      <target name="jsr166e-tck"
1443              description="Runs tck tests for jsr166e for multiple java versions">
1444    
1445    <!--     <antcall target="clean"/> -->
1446    <!--     <antcall target="jsr166e-tck-one-java-version"> -->
1447    <!--       <param name="build.jsr166e.java.version" value="8"/> -->
1448    <!--       <param name="build.jsr166e.javac" value="${javac8}"/> -->
1449    <!--     </antcall> -->
1450    
1451    <target name="jsr166edist-clean"      <antcall target="clean"/>
1452            description="Removes all build and distribution products">      <antcall target="jsr166e-tck-one-java-version">
1453          <param name="build.jsr166e.java.version" value="7"/>
1454          <param name="build.jsr166e.javac" value="${javac7}"/>
1455        </antcall>
1456    
1457        <antcall target="clean"/>
1458        <antcall target="jsr166e-tck-one-java-version">
1459          <param name="build.jsr166e.java.version" value="6"/>
1460          <param name="build.jsr166e.javac" value="${javac6}"/>
1461        </antcall>
1462    </target>    </target>
1463    
   <target name="jsr166edist-docs"  
           description="Builds javadocs without custom tags to dist folder">  
1464    
1465      <delete dir="${dist.jsr166ejavadocs.dir}"/>    <target name="jsr166e-test"
1466      <mkdir dir="${dist.jsr166ejavadocs.dir}"/>            depends="jsr166e-tck"
1467              description="Runs all tests for jsr166e">
1468      </target>
1469    
1470      <javadoc destdir="${dist.jsr166ejavadocs.dir}"    <target name="jsr166edist"
1471               packagenames="jsr166e,jsr166e.extra"            depends="jsr166edist-jar, jsr166edist-docs"
1472               link="${jdkapidocs.url}"            description="Puts all distributable products in single hierarchy"/>
              source="1.7"  
              sourcepath="${topsrc.dir}:${jdksrc.dir}"  
              additionalparam="-XDignore.symbol.file=true" />  
1473    
1474    
1475      <target name="jsr166eclean"
1476              description="Removes all jsr166e build products">
1477        <delete dir="${build.jsr166e.dir}"/>
1478    </target>    </target>
1479    
1480    
1481    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1482            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1483        <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1484      </target>
1485    
1486      <copy file="${jsr166eproduct.jar}" todir="${dist.dir}"/>    <target name="jsr166edist-docs"
1487              depends="jsr166eclean, jsr166edocs">
1488        <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1489      </target>
1490    
1491    
1492    <!-- Find buglets that can be detected by static build tools -->
1493    
1494      <target name="lint">
1495        <antcall target="dists">
1496          <param name="build.javadoc.access" value="public"/>
1497        </antcall>
1498    </target>    </target>
1499    
1500    <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1501      <target name="lint-private">
1502        <antcall target="dist">
1503          <param name="build.javadoc.access" value="private"/>
1504        </antcall>
1505      </target>
1506    
1507    
1508  </project>  </project>

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

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