ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.280
Committed: Sun Oct 7 03:43:04 2018 UTC (5 years, 6 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.279: +6 -5 lines
Log Message:
use javadoc12 to generate docs; but link to jdk11 javadoc

File Contents

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