ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.200
Committed: Sat Mar 26 06:22:49 2016 UTC (8 years, 1 month ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.199: +180 -3 lines
Log Message:
fork jdk8 maintenance branch for source and jtreg tests

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