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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.97  
changed lines
  Added in v.1.224

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8