ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.201
Committed: Sat Mar 26 12:35:25 2016 UTC (8 years, 1 month ago) by dl
Content type: text/xml
Branch: MAIN
Changes since 1.200: +7 -2 lines
Log Message:
remove Contended stub

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