ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.203
Committed: Sat Mar 26 16:49:22 2016 UTC (8 years, 1 month ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.202: +4 -4 lines
Log Message:
hide obscure loops and 4jdk7-tck-junit targets

File Contents

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