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

Diff of /jsr166/build.xml

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

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

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

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