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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.93  
changed lines
  Added in v.1.215

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