ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.298
Committed: Wed May 22 17:36:58 2019 UTC (4 years, 11 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.297: +1 -0 lines
Log Message:
8223593: Refactor code for reallocating storage

File Contents

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