ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.301
Committed: Sat Aug 10 16:48:04 2019 UTC (4 years, 8 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.300: +38 -69 lines
Log Message:
drop support for jdk9 and jdk10; drop backward compatibility hacks

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.260 $HOME/jdk/jdk11
24 jsr166 1.275 $HOME/jdk/jdk12
25 jsr166 1.293 $HOME/jdk/jdk13
26 jsr166 1.299 $HOME/jdk/jdk14
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.260 $HOME/jdk/src/jdk11
30 jsr166 1.275 $HOME/jdk/src/jdk12
31 jsr166 1.293 $HOME/jdk/src/jdk13
32 jsr166 1.299 $HOME/jdk/src/jdk14
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.299 for $N in 8 .. 14 ...
39 jsr166 1.182
40 jsr166 1.232 As of 2016-03, the sources in src/main are for jdk9+ only.
41 jsr166 1.301 As of 2019-08, the sources in src/main are for jdk11+ only.
42 tim 1.29 ------------------------------------------------------------------------------
43 tim 1.18 </description>
44 tim 1.11
45 jsr166 1.210 <!-- Run 'ant -projecthelp' (default target) -->
46 jsr166 1.148 <target name="usage">
47 jsr166 1.129 <java classname="org.apache.tools.ant.Main">
48     <arg value="-projecthelp" />
49     </java>
50 tim 1.29 </target>
51 tim 1.3
52 jsr166 1.177 <!-- HOWTO printf debug: <echo message="prop=${prop}"/> -->
53 tim 1.11
54 tim 1.27 <!-- User-specific settings -->
55 tim 1.23 <property file="user.properties"/>
56 tim 1.27
57 tim 1.1
58     <!-- Compilation options -->
59     <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="8"/>
136 jsr166 1.260 <defjdklocations v="11"/>
137 jsr166 1.275 <defjdklocations v="12"/>
138 jsr166 1.294 <defjdklocations v="13"/>
139 jsr166 1.299 <defjdklocations v="14"/>
140 jsr166 1.92
141 tim 1.1 <!-- Source locations -->
142 tim 1.22 <property name="src.dir" location="${basedir}/src/main"/>
143     <property name="test.src.dir" location="${basedir}/src/test"/>
144 jsr166 1.65 <property name="loops.src.dir" location="${basedir}/src/loops"/>
145 tim 1.60 <property name="tck.src.dir" location="${test.src.dir}/tck"/>
146 jsr166 1.200 <property name="jtreg8.src.dir" location="${test.src.dir}/jtreg-jdk8"/>
147 jsr166 1.260 <property name="jtreg11.src.dir" location="${test.src.dir}/jtreg"/>
148 jsr166 1.275 <property name="jtreg12.src.dir" location="${test.src.dir}/jtreg"/>
149 jsr166 1.294 <property name="jtreg13.src.dir" location="${test.src.dir}/jtreg"/>
150 jsr166 1.299 <property name="jtreg14.src.dir" location="${test.src.dir}/jtreg"/>
151 jsr166 1.301 <property name="jtreg.src.dir" location="${jtreg11.src.dir}"/>
152 tim 1.1 <property name="lib.dir" location="${basedir}/lib"/>
153 tim 1.9 <property name="dist.dir" location="${basedir}/dist"/>
154 dl 1.70 <property name="topsrc.dir" location="${basedir}/src"/>
155 jsr166 1.99 <property name="4jdk7src.dir" location="${topsrc.dir}/jdk7"/>
156 jsr166 1.200 <property name="4jdk8src.dir" location="${topsrc.dir}/jdk8"/>
157 jsr166 1.92 <property name="jsr166xsrc.dir" location="${topsrc.dir}/jsr166x"/>
158     <property name="jsr166ysrc.dir" location="${topsrc.dir}/jsr166y"/>
159     <property name="jsr166esrc.dir" location="${topsrc.dir}/jsr166e"/>
160     <property name="extra166ysrc.dir" location="${topsrc.dir}/extra166y"/>
161 jsr166 1.91
162 jsr166 1.125 <!-- Javadoc locations -->
163 jsr166 1.127 <property name="docs.dir" location="${build.dir}/docs"/>
164     <property name="4jdk7docs.dir" location="${build.4jdk7.dir}/docs"/>
165 jsr166 1.200 <property name="4jdk8docs.dir" location="${build.4jdk8.dir}/docs"/>
166 jsr166 1.127 <property name="jsr166xdocs.dir" location="${build.jsr166x.dir}/docs"/>
167     <property name="jsr166ydocs.dir" location="${build.jsr166y.dir}/docs"/>
168     <property name="jsr166edocs.dir" location="${build.jsr166e.dir}/docs"/>
169     <property name="extra166ydocs.dir" location="${build.extra166y.dir}/docs"/>
170    
171     <property name="dist.docs.dir" location="${dist.dir}/docs"/>
172     <property name="dist.4jdk7docs.dir" location="${dist.dir}/jsr166-4jdk7docs"/>
173 jsr166 1.200 <property name="dist.4jdk8docs.dir" location="${dist.dir}/jsr166-4jdk8docs"/>
174 jsr166 1.127 <property name="dist.jsr166xdocs.dir" location="${dist.dir}/jsr166xdocs"/>
175     <property name="dist.jsr166ydocs.dir" location="${dist.dir}/jsr166ydocs"/>
176     <property name="dist.jsr166edocs.dir" location="${dist.dir}/jsr166edocs"/>
177     <property name="dist.extra166ydocs.dir" location="${dist.dir}/extra166ydocs"/>
178 tim 1.1
179     <!-- Jar locations -->
180 jsr166 1.109 <property name="product.jar" location="${build.dir}/jsr166.jar"/>
181     <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>
182 jsr166 1.200 <property name="4jdk8product.jar" location="${build.4jdk8.dir}/jsr166-4jdk8.jar"/>
183 jsr166 1.109 <property name="jsr166x.jar" location="${build.jsr166x.dir}/jsr166x.jar"/>
184     <property name="jsr166y.jar" location="${build.jsr166y.dir}/jsr166y.jar"/>
185     <property name="jsr166e.jar" location="${build.jsr166e.dir}/jsr166e.jar"/>
186     <property name="extra166y.jar" location="${build.extra166y.dir}/extra166y.jar"/>
187 jsr166 1.106 <property name="junit.jar" location="${lib.dir}/junit.jar"/>
188 jsr166 1.65
189 jsr166 1.152 <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
190 jsr166 1.257 <!-- Switched to https: in 2017-10 - JDK-8190312 -->
191     <property name="java5.docroot.url" value="https://docs.oracle.com/javase/1.5.0/docs"/>
192     <property name="java6.docroot.url" value="https://docs.oracle.com/javase/6/docs"/>
193     <property name="java7.docroot.url" value="https://docs.oracle.com/javase/7/docs"/>
194     <property name="java8.docroot.url" value="https://docs.oracle.com/javase/8/docs"/>
195 jsr166 1.276 <property name="java11.docroot.url" value="https://docs.oracle.com/en/java/javase/11/docs"/>
196 jsr166 1.295 <property name="java12.docroot.url" value="https://docs.oracle.com/en/java/javase/12/docs"/>
197 jsr166 1.268 <!-- The location of jdk early access docs (RIP) -->
198 jsr166 1.276 <!-- <property name="java11.docroot.url" value="http://download.java.net/java/jdk11/docs"/> -->
199 jsr166 1.295 <!-- <property name="java12.docroot.url" value="https://download.java.net/java/jdk12/docs"/> -->
200 jsr166 1.294 <property name="java13.docroot.url" value="https://download.java.net/java/early_access/jdk13/docs"/>
201 jsr166 1.299 <property name="java14.docroot.url" value="https://download.java.net/java/early_access/jdk14/docs"/>
202 jsr166 1.290 <!-- Default jdk doc location (latest stable LTS release seems best) -->
203     <property name="java.docroot.url" value="${java11.docroot.url}"/>
204 jsr166 1.151
205 jsr166 1.152 <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
206     <property name="java8.api.url" value="${java8.docroot.url}/api/"/>
207 jsr166 1.260 <property name="java11.api.url" value="${java11.docroot.url}/api/"/>
208 jsr166 1.275 <property name="java12.api.url" value="${java12.docroot.url}/api/"/>
209 jsr166 1.294 <property name="java13.api.url" value="${java13.docroot.url}/api/"/>
210 jsr166 1.299 <property name="java14.api.url" value="${java14.docroot.url}/api/"/>
211 jsr166 1.152 <property name="java.api.url" value="${java.docroot.url}/api/"/>
212 jsr166 1.91
213 jsr166 1.115 <!-- Define the "jtreg" task -->
214     <!-- See the docs in "jtreg -onlineHelp" -->
215     <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant"
216     classpath="${lib.dir}/jtreg.jar" />
217    
218 jsr166 1.183 <!-- Tck options; see JSR166TestCase.java
219     To profile a single tck test class:
220     ant -Djsr166.profileTests=true -Djsr166.profileThreshold=10 -Djsr166.tckTestClass=CompletableFutureTest tck
221     To stress test a single tck test class:
222     ant -Djsr166.tckTestClass=CountedCompleterTest -Djsr166.runsPerTest=100 tck
223     To stress test a single tck test method:
224     ant -Djsr166.tckTestClass=RecursiveTaskTest -Djsr166.runsPerTest=1000 -Djsr166.methodFilter=testAbnormalInvokeAll3 tck
225     -->
226     <property name="jsr166.tckTestClass" value="JSR166TestCase"/>
227 jsr166 1.118 <macrodef name="run-tck-tests">
228 jsr166 1.122 <attribute name="tck.src.dir" default="${tck.src.dir}"/>
229 jsr166 1.118 <attribute name="target"/>
230 jsr166 1.138 <attribute name="compile-target" default="@{target}"/>
231 jsr166 1.118 <attribute name="workdir"/>
232 jsr166 1.122 <attribute name="classes"/>
233 dl 1.201 <!--
234     <attribute name="jvmflags" default="-XX:+UseParallelGC -XX:-UseBiasedLocking -ea -esa -Djsr166.testImplementationDetails=true"/>
235     -->
236     <attribute name="jvmflags" default="-ea -esa -Djsr166.testImplementationDetails=true"/>
237 jsr166 1.132 <element name="javac-elements" optional="true"/>
238 jsr166 1.182
239 jsr166 1.118 <sequential>
240    
241 jsr166 1.182 <local name="modules"/>
242     <condition property="modules">
243 jsr166 1.274 <available file="${jdk@{compile-target}.home}/lib/modules" type="file"/>
244 jsr166 1.182 </condition>
245    
246 jsr166 1.238 <local name="use-doclint"/>
247     <condition property="use-doclint">
248     <not> <equals arg1="@{target}" arg2="7"/> </not>
249     </condition>
250    
251 jsr166 1.118 <mkdir dir="@{workdir}/tck-classes"/>
252    
253 jsr166 1.122 <javac srcdir="@{tck.src.dir}"
254 jsr166 1.118 destdir="@{workdir}/tck-classes"
255     debug="${build.debug}"
256     debuglevel="${build.debuglevel}"
257     deprecation="${build.deprecation}"
258 jsr166 1.138 source="@{compile-target}"
259     target="@{compile-target}"
260 jsr166 1.118 classpath="${junit.jar}"
261     includeAntRuntime="false"
262     includeJavaRuntime="false"
263 jsr166 1.219 encoding="ASCII"
264 jsr166 1.138 executable="${javac@{compile-target}}"
265 jsr166 1.118 fork="true">
266    
267 jsr166 1.121 <include name="*.java"/>
268 jsr166 1.118 <compilerarg value="-XDignore.symbol.file=true"/>
269 jsr166 1.187 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
270 jsr166 1.238 <compilerarg value="-Xdoclint:reference/private" if:set="use-doclint"/>
271 jsr166 1.182 <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
272 jsr166 1.233 <compilerarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
273 jsr166 1.118 <compilerarg line="${build.args}"/>
274 jsr166 1.132 <javac-elements/>
275 jsr166 1.118
276     </javac>
277    
278 jsr166 1.140 <java classname="${jsr166.tckTestClass}"
279 jsr166 1.118 failonerror="true"
280     jvm="${java@{target}}"
281     fork="true">
282 jsr166 1.182 <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
283 jsr166 1.233 <jvmarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
284     <jvmarg value="--add-opens=java.base/java.lang=ALL-UNNAMED" if:set="modules"/>
285     <jvmarg value="--add-opens=java.base/java.util=ALL-UNNAMED" if:set="modules"/>
286     <jvmarg value="--add-opens=java.base/java.util.concurrent=ALL-UNNAMED" if:set="modules"/>
287     <jvmarg value="--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED" if:set="modules"/>
288     <jvmarg value="--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED" if:set="modules"/>
289 jsr166 1.118 <jvmarg line="@{jvmflags}"/>
290 jsr166 1.214 <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
291     <jvmarg line="${vmoptions}" if:set="vmoptions"/>
292 jsr166 1.160
293 jsr166 1.214 <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
294 jsr166 1.183 <syspropertyset id="system-properties-used-by-tck">
295 jsr166 1.160 <propertyref prefix="java.util.concurrent.ForkJoinPool"/>
296 jsr166 1.184 <propertyref prefix="jsr166."/>
297 jsr166 1.197 <propertyref name="test.timeout.factor"/>
298 jsr166 1.160 </syspropertyset>
299    
300 jsr166 1.118 <classpath>
301     <pathelement location="${junit.jar}"/>
302     <pathelement location="@{workdir}/tck-classes"/>
303     </classpath>
304     </java>
305    
306     </sequential>
307     </macrodef>
308    
309 jsr166 1.165 <!-- Define jtreg test sets for different jdk versions -->
310 jsr166 1.266 <!-- ant -Djtreg.test.pattern="**/ConcurrentHashMap/" -->
311     <!-- ant -Djtreg.test.pattern="**/ToArray.java" -->
312     <property name="jtreg.test.pattern" value="**/*.java"/>
313     <macrodef name="defjtregtests">
314     <attribute name="v"/>
315     <sequential>
316     <fileset dir="${jtreg@{v}.src.dir}">
317     <patternset id="jdk@{v}.jtreg.tests">
318     <include name="${jtreg.test.pattern}"/>
319     </patternset>
320     </fileset>
321     </sequential>
322     </macrodef>
323 jsr166 1.260
324 jsr166 1.299 <defjtregtests v="14"/>
325 jsr166 1.294 <defjtregtests v="13"/>
326 jsr166 1.275 <defjtregtests v="12"/>
327 jsr166 1.266 <defjtregtests v="11"/>
328     <defjtregtests v="8"/>
329 jsr166 1.165
330 jsr166 1.195 <!-- ant -Djtreg.flags=-timeoutFactor:4 -->
331     <property name="jtreg.flags" value=""/>
332    
333 jsr166 1.135 <macrodef name="run-jtreg-tests">
334 jsr166 1.292 <!-- ant -Djtreg11.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->
335 jsr166 1.135 <attribute name="target"/>
336     <attribute name="workdir"/>
337     <attribute name="classes"/>
338 jsr166 1.255 <attribute name="verbose" default="${jtreg.verbose}"/>
339 jsr166 1.135 <attribute name="jtregflags" default=""/>
340 jsr166 1.255 <element name="jtreg-elements" optional="true"/>
341 jsr166 1.182
342 jsr166 1.135 <sequential>
343 jsr166 1.182
344 jsr166 1.188 <!-- ant -Djtreg.verbose=time,fail,error jtreg -->
345     <property name="jtreg.verbose" value="nopass,fail,error"/>
346    
347 jsr166 1.182 <local name="modules"/>
348     <condition property="modules">
349 jsr166 1.274 <available file="${jdk@{target}.home}/lib/modules" type="file"/>
350 jsr166 1.182 </condition>
351    
352 jsr166 1.135 <delete dir="@{workdir}/JTwork" quiet="true"/>
353 jsr166 1.173 <jtreg dir="${jtreg@{target}.src.dir}"
354 jsr166 1.135 jdk="${jdk@{target}.home}"
355 jsr166 1.223 workDir="@{workdir}/JTwork">
356 jsr166 1.165 <patternset refid="jdk@{target}.jtreg.tests"/>
357 jsr166 1.182 <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
358 jsr166 1.250 <arg value="-javacoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
359     <arg value="-vmoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
360 jsr166 1.135 <arg value="-agentvm"/>
361 jsr166 1.223 <arg value="-noreport"/>
362 jsr166 1.255 <arg value="-verbose:@{verbose}"/>
363 jsr166 1.135 <arg value="-vmoptions:-esa -ea"/>
364     <arg value="-automatic"/>
365     <arg value="-k:!ignore"/>
366     <arg line="@{jtregflags}"/>
367 jsr166 1.195 <arg line="${jtreg.flags}"/>
368 jsr166 1.255 <jtreg-elements/>
369 jsr166 1.135 </jtreg>
370     </sequential>
371     </macrodef>
372    
373 jsr166 1.65 <!-- ALoops classpath -->
374     <path id="loops.classpath">
375     <pathelement location="${build.loops.dir}"/>
376     </path>
377    
378 jsr166 1.100 <!-- Support @jls tag, used in jdk8+ javadoc -->
379 jsr166 1.300 <!-- TODO: switch to @jls taglet, as supported by jdk14+ javadoc -->
380 jsr166 1.120 <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
381 jsr166 1.100 <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
382 tim 1.28
383 tim 1.59 <!-- Main targets -->
384 tim 1.28
385 jsr166 1.284 <!-- Default values: may seem strange ... -->
386     <!-- At runtime, target latest LTS, i.e. jdk11 -->
387     <!-- But at build time, target jdk9, for maximal binary portability -->
388 jsr166 1.301 <!-- ButButBut as of 2019-08, target jdk11 at build time -->
389 jsr166 1.290 <!-- Use javadoc12 (but -link to jdk11 api docs!), to get:
390     o override-methods=summary
391     o {@systemProperty ...}
392     o 8211194: issues linking to external documentation (was: missing package-list for JDK10 / JDK11 documentation)
393     o 8202628: javadoc generates bad links in TestModules.java
394     -->
395     <property name="java.runtime.target" value="11"/>
396 jsr166 1.284 <property name="build.main.java" value="${java11}"/>
397 jsr166 1.301 <property name="build.main.javac" value="${javac11}"/>
398 jsr166 1.284 <property name="build.main.javadoc" value="${javadoc12}"/>
399 jsr166 1.290 <property name="build.main.javadoc.source" value="${java.runtime.target}"/>
400 jsr166 1.151
401 dl 1.80 <target name="dists"
402 jsr166 1.240 depends="dist, 4jdk8dist"
403     description="Builds all public jars and docs"/>
404 jsr166 1.281 <!-- no longer supported: 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist -->
405 tim 1.11
406 tim 1.28 <target name="compile"
407 jsr166 1.100 depends="configure-compiler"
408 jsr166 1.102 description="Compiles src/main sources to build dir">
409 tim 1.27
410 jsr166 1.182 <local name="destdir"/>
411 jsr166 1.247 <property name="destdir" value="${build.classes.dir}/java.base"/>
412 jsr166 1.182
413     <mkdir dir="${destdir}"/>
414 tim 1.27
415 tim 1.60 <javac srcdir="${src.dir}"
416 jsr166 1.182 destdir="${destdir}"
417 jsr166 1.100 debug="${build.debug}"
418     debuglevel="${build.debuglevel}"
419     deprecation="${build.deprecation}"
420     classpath=""
421     includeAntRuntime="false"
422     includeJavaRuntime="false"
423 jsr166 1.219 encoding="ASCII"
424 jsr166 1.151 executable="${build.main.javac}"
425 jsr166 1.100 fork="true">
426 tim 1.1
427 jsr166 1.68 <include name="**/*.java"/>
428 jsr166 1.247 <compilerarg value="--patch-module=java.base=${src.dir}"/>
429 jsr166 1.133 <compilerarg value="-Xprefer:source"/>
430 dl 1.83 <compilerarg value="-XDignore.symbol.file=true"/>
431 jsr166 1.284 <compilerarg value="-Xlint:all,-removal"/>
432 jsr166 1.243 <compilerarg line="--doclint-format html5"/>
433     <compilerarg value="-Xdoclint:all/protected,reference/private"/>
434 jsr166 1.298 <compilerarg value="-Xdoclint/package:java.util.*"/>
435 jsr166 1.164 <compilerarg value="-Werror"/>
436 jsr166 1.146 <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
437 dl 1.73 <compilerarg line="${build.args}"/>
438 tim 1.1
439     </javac>
440     </target>
441    
442    
443 tim 1.28 <target name="jar"
444 tim 1.59 depends="compile"
445 jsr166 1.205 description="Builds library jar for src/main from compiled sources">
446 jsr166 1.212 <local name="subdir"/>
447     <available property="subdir" file="${build.classes.dir}/java.base" type="dir" value="/java.base"/>
448 tim 1.59 <jar destfile="${product.jar}">
449 jsr166 1.212 <fileset dir="${build.classes.dir}${subdir}"/>
450 jsr166 1.178 <manifest>
451 jsr166 1.179 <attribute name="Built-By" value="${user.name}"/>
452     <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
453 jsr166 1.178 </manifest>
454 tim 1.59 </jar>
455     </target>
456    
457 tim 1.1
458 tim 1.59 <target name="docs"
459 jsr166 1.102 description="Builds javadocs for src/main to dist dir">
460 tim 1.59
461 jsr166 1.127 <delete dir="${docs.dir}"/>
462     <mkdir dir="${docs.dir}"/>
463 tim 1.59
464 jsr166 1.88 <!-- the packagenames="none" hack below prevents scanning the -->
465     <!-- sourcepath for packages -->
466    
467 jsr166 1.226 <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
468     <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
469     <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
470     <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
471     <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
472 jsr166 1.127 <javadoc destdir="${docs.dir}"
473 jsr166 1.88 packagenames="none"
474 jsr166 1.290 link="${java.api.url}"
475 jsr166 1.88 overview="${src.dir}/intro.html"
476 jsr166 1.130 access="${build.javadoc.access}"
477 jsr166 1.216 sourcepath="${src.dir}"
478 jsr166 1.100 classpath=""
479 jsr166 1.290 source="${build.main.javadoc.source}"
480 jsr166 1.247 executable="${build.main.javadoc}">
481 jsr166 1.291 <!-- TODO: JDK-8214571 failonerror = "true" -->
482 jsr166 1.119 <fileset dir="${src.dir}" defaultexcludes="yes">
483     <include name="**/*.java"/>
484     </fileset>
485 jsr166 1.290 <arg line="-Xdocrootparent ${java.docroot.url}"/>
486 jsr166 1.146 <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
487 jsr166 1.100 <arg value="-XDignore.symbol.file=true"/>
488 jsr166 1.243 <arg value="-html5"/>
489 jsr166 1.234 <arg value="--patch-module=java.base=${src.dir}"/>
490 jsr166 1.289 <!-- old school frames via docs/index.html?overview-summary.html -->
491 jsr166 1.297 <!-- TODO: - -frames no longer a supported option in jdk13+ -->
492 jsr166 1.282 <arg value="--frames"/>
493 jsr166 1.265 <arg value="--override-methods=summary"/>
494     <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
495     <arg value="-tag"/> <arg value="implSpec:a:Implementation Requirements:"/>
496     <arg value="-tag"/> <arg value="implNote:a:Implementation Note:"/>
497 jsr166 1.273 <arg value="-tag"/> <arg value="apiNote:a:API Note:"/>
498 jsr166 1.220 <!-- tags added in jdk9: currently unused -->
499 jsr166 1.265 <!-- <arg value="-tag"/> <arg value="revised:X"/> -->
500     <!-- <arg value="-tag"/> <arg value="spec:X"/> -->
501 tim 1.59 </javadoc>
502     </target>
503    
504    
505 tim 1.28 <target name="dist"
506 jsr166 1.125 depends="dist-clean, dist-jar, dist-docs"
507 tim 1.16 description="Puts all distributable products in single hierarchy"/>
508 tim 1.1
509 tim 1.58
510 tim 1.11 <target name="clean"
511     description="Removes all build products">
512     <delete dir="${build.dir}"/>
513 tim 1.1 </target>
514    
515    
516 tim 1.11 <target name="dist-clean"
517     description="Removes all build and distribution products">
518 jsr166 1.148 <delete dir="${build.dir}"/>
519 tim 1.11 <delete dir="${dist.dir}"/>
520 tim 1.9 </target>
521 tim 1.10
522    
523 tim 1.28 <target name="dist-jar"
524     depends="clean, jar">
525 tim 1.11 <copy file="${product.jar}" todir="${dist.dir}"/>
526 jsr166 1.125 </target>
527 tim 1.27
528 jsr166 1.125 <target name="dist-docs"
529     depends="clean, docs">
530 jsr166 1.127 <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
531 tim 1.11 </target>
532    
533 jsr166 1.174 <target name="tck"
534 jsr166 1.131 depends="jar"
535 jsr166 1.205 description="Runs tck tests for src/main directly">
536 jsr166 1.131
537     <run-tck-tests
538 jsr166 1.290 target="${java.runtime.target}"
539 jsr166 1.131 workdir="${build.dir}"
540 jsr166 1.236 classes="${product.jar}">
541     <javac-elements>
542     <compilerarg value="-Werror"/>
543     </javac-elements>
544     </run-tck-tests>
545 jsr166 1.131 </target>
546 tim 1.1
547 jsr166 1.174 <target name="tck-parallelism-1"
548 jsr166 1.208 description="Runs tck with common pool parallelism 1">
549 jsr166 1.174 <antcall target="tck">
550 jsr166 1.160 <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
551     </antcall>
552     </target>
553    
554 jsr166 1.174 <target name="tck-parallelism-0"
555 jsr166 1.208 description="Runs tck with common pool parallelism 0">
556 jsr166 1.174 <antcall target="tck">
557 jsr166 1.160 <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
558     </antcall>
559     </target>
560    
561 jsr166 1.213 <target name="tck-security-manager"
562     description="Runs tck with a security manager">
563     <antcall target="tck">
564     <param name="jsr166.useSecurityManager" value="true"/>
565     </antcall>
566     </target>
567    
568 jsr166 1.174 <target name="jtreg"
569 jsr166 1.135 depends="jar"
570 jsr166 1.205 description="Runs jtreg tests for src/main using the jtreg ant task">
571 jsr166 1.135 <run-jtreg-tests
572 jsr166 1.290 target="${java.runtime.target}"
573 jsr166 1.135 workdir="${build.dir}"
574     classes="${product.jar}"/>
575     </target>
576    
577 jsr166 1.142 <target name="test"
578 jsr166 1.208 depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
579 jsr166 1.241 description="Runs tck and jtreg tests for src/main"/>
580 jsr166 1.135
581 jsr166 1.284 <target name="test-version-permutations"
582 jsr166 1.301 depends="test11, test12, test13, test14, test11-12, test11-13, test11-14, clean, test, docs">
583 jsr166 1.284 </target>
584 jsr166 1.151
585 jsr166 1.301 <!-- jdk9 is unsupported as of 2019-08 -->
586     <!-- <target name="test9"> -->
587     <!-- <antcall target="clean"/> -->
588     <!-- <antcall> -->
589     <!-- <param name="java.runtime.target" value="9"/> -->
590     <!-- <param name="build.main.javac" value="${javac9}"/> -->
591     <!-- <param name="build.main.javadoc" value="${javadoc12}"/> -->
592     <!-- <param name="build.main.javadoc.source" value="9"/> -->
593     <!-- <target name="test"/> -->
594     <!-- <target name="docs"/> -->
595     <!-- </antcall> -->
596     <!-- </target> -->
597 jsr166 1.151
598 jsr166 1.301 <!-- jdk10 is unsupported as of 2019-08 -->
599     <!-- <target name="test10"> -->
600     <!-- <antcall target="clean"/> -->
601     <!-- <antcall> -->
602     <!-- <param name="java.runtime.target" value="10"/> -->
603     <!-- <param name="build.main.javac" value="${javac10}"/> -->
604     <!-- <param name="build.main.javadoc" value="${javadoc12}"/> -->
605     <!-- <param name="build.main.javadoc.source" value="10"/> -->
606     <!-- <target name="test"/> -->
607     <!-- <target name="docs"/> -->
608     <!-- </antcall> -->
609     <!-- </target> -->
610 jsr166 1.151
611 jsr166 1.284 <target name="test11">
612 jsr166 1.260 <antcall target="clean"/>
613 jsr166 1.284 <antcall>
614 jsr166 1.290 <param name="java.runtime.target" value="11"/>
615 jsr166 1.278 <param name="build.main.javac" value="${javac11}"/>
616 jsr166 1.290 <param name="build.main.javadoc" value="${javadoc12}"/>
617     <param name="build.main.javadoc.source" value="11"/>
618 jsr166 1.284 <target name="test"/>
619     <target name="docs"/>
620 jsr166 1.260 </antcall>
621 jsr166 1.284 </target>
622 jsr166 1.260
623 jsr166 1.284 <target name="test12">
624 jsr166 1.275 <antcall target="clean"/>
625 jsr166 1.284 <antcall>
626 jsr166 1.290 <param name="java.runtime.target" value="12"/>
627 jsr166 1.278 <param name="build.main.javac" value="${javac12}"/>
628 jsr166 1.284 <param name="build.main.javadoc" value="${javadoc12}"/>
629 jsr166 1.290 <param name="build.main.javadoc.source" value="12"/>
630 jsr166 1.284 <target name="test"/>
631     <target name="docs"/>
632 jsr166 1.278 </antcall>
633 jsr166 1.284 </target>
634    
635 jsr166 1.294 <target name="test13">
636     <antcall target="clean"/>
637     <antcall>
638     <param name="java.runtime.target" value="13"/>
639     <param name="build.main.javac" value="${javac13}"/>
640     <param name="build.main.javadoc" value="${javadoc13}"/>
641     <param name="build.main.javadoc.source" value="13"/>
642     <target name="test"/>
643     <target name="docs"/>
644     </antcall>
645     </target>
646    
647 jsr166 1.299 <target name="test14">
648     <antcall target="clean"/>
649     <antcall>
650     <param name="java.runtime.target" value="14"/>
651     <param name="build.main.javac" value="${javac14}"/>
652     <param name="build.main.javadoc" value="${javadoc14}"/>
653     <param name="build.main.javadoc.source" value="14"/>
654     <target name="test"/>
655     <target name="docs"/>
656     </antcall>
657     </target>
658    
659 jsr166 1.301 <target name="test11-12">
660 jsr166 1.284 <antcall target="clean"/>
661     <antcall>
662 jsr166 1.290 <param name="java.runtime.target" value="12"/>
663 jsr166 1.301 <param name="build.main.javac" value="${javac11}"/>
664 jsr166 1.278 <param name="build.main.javadoc" value="${javadoc12}"/>
665 jsr166 1.301 <param name="build.main.javadoc.source" value="11"/>
666 jsr166 1.284 <target name="test"/>
667     <target name="docs"/>
668 jsr166 1.275 </antcall>
669 jsr166 1.248 </target>
670 jsr166 1.151
671 jsr166 1.301 <target name="test11-13">
672 jsr166 1.294 <antcall target="clean"/>
673     <antcall>
674     <param name="java.runtime.target" value="13"/>
675 jsr166 1.301 <param name="build.main.javac" value="${javac11}"/>
676 jsr166 1.294 <param name="build.main.javadoc" value="${javadoc13}"/>
677 jsr166 1.301 <param name="build.main.javadoc.source" value="11"/>
678 jsr166 1.294 <target name="test"/>
679     <target name="docs"/>
680     </antcall>
681     </target>
682    
683 jsr166 1.301 <target name="test11-14">
684 jsr166 1.299 <antcall target="clean"/>
685     <antcall>
686     <param name="java.runtime.target" value="14"/>
687 jsr166 1.301 <param name="build.main.javac" value="${javac11}"/>
688 jsr166 1.299 <param name="build.main.javadoc" value="${javadoc14}"/>
689 jsr166 1.301 <param name="build.main.javadoc.source" value="11"/>
690 jsr166 1.299 <target name="test"/>
691     <target name="docs"/>
692     </antcall>
693     </target>
694    
695 tim 1.18
696 tim 1.32 <target name="configure-compiler">
697 jsr166 1.180 <fail message="ant version too old">
698 jsr166 1.237 <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
699 jsr166 1.180 </fail>
700 tim 1.54
701     <property name="unchecked.option" value="-Xlint:unchecked"/>
702    
703     <condition property="warnunchecked.arg" value="${unchecked.option}">
704 tim 1.57 <istrue value="${build.warnunchecked}"/>
705 tim 1.32 </condition>
706    
707 tim 1.37 <property name="warnunchecked.arg" value=""/>
708 tim 1.34
709 tim 1.32
710     <!-- Common options in javac invocations -->
711 tim 1.57 <property name="build.args" value="${warnunchecked.arg}"/>
712 tim 1.33
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.287 Experimental errorprone support
1420     https://errorprone.info
1421     https://errorprone.info/docs/installation
1422     https://github.com/google/error-prone/issues/1143
1423 jsr166 1.236 =================================================================== -->
1424 jsr166 1.288 <path id="errorprone.processorpath.path">
1425     <pathelement location="${lib.dir}/error_prone_core-2.3.2-with-dependencies.jar"/>
1426     <pathelement location="${lib.dir}/dataflow-2.5.7.jar"/>
1427     <pathelement location="${lib.dir}/javacutil-2.5.7.jar"/>
1428     <pathelement location="${lib.dir}/jFormatString-3.0.0.jar"/>
1429     </path>
1430     <property name="errorprone.processorpath" refid="errorprone.processorpath.path" />
1431 jsr166 1.267 <property name="errorprone.jsr166.user.flags" value=""/>
1432 jsr166 1.261 <property name="errorprone.jsr166.flags"
1433 jsr166 1.263 value="-Xep:HashtableContains:OFF
1434 jsr166 1.261 -Xep:JdkObsolete:OFF
1435     -Xep:MissingOverride:OFF
1436     -Xep:MissingFail:OFF
1437 jsr166 1.288 -Xep:ThreadPriorityCheck:OFF
1438 jsr166 1.263 -Xep:MixedArrayDimensions:ERROR
1439     -Xep:RemoveUnusedImports:ERROR
1440     -Xep:EmptyIf:ERROR
1441     -Xep:MultipleTopLevelClasses:ERROR
1442     -Xep:ClassName:ERROR
1443     -Xep:LongLiteralLowerCaseSuffix:ERROR
1444     -Xep:RedundantThrows:ERROR
1445 jsr166 1.261 -Xep:IdentityBinaryExpression:WARN
1446 jsr166 1.287 -Xep:ConstructorInvokesOverridable:WARN
1447 jsr166 1.267 -Xep:MethodCanBeStatic:WARN
1448     ${errorprone.jsr166.user.flags}"/>
1449 jsr166 1.261 <!-- -Xep:WildcardImport:ERROR -->
1450     <property name="errorprone.jsr166.test.flags"
1451 jsr166 1.263 value="-Xep:StringSplitter:OFF
1452     -Xep:BoxedPrimitiveConstructor:OFF
1453     -Xep:ModifyingCollectionWithItself:OFF"/>
1454 jsr166 1.261 <!-- ant -emacs errorprone |& grep -EA1 '(warning|error):|warnings' -->
1455 jsr166 1.236 <target name="errorprone"
1456     depends="clean, configure-compiler"
1457 jsr166 1.241 description="Run errorprone over jsr166 source code (experimental)">
1458 jsr166 1.236
1459     <local name="destdir"/>
1460     <property name="destdir" value="${build.classes.dir}/java.base"/>
1461     <mkdir dir="${destdir}"/>
1462    
1463     <javac srcdir="${src.dir}"
1464     destdir="${destdir}"
1465     debug="${build.debug}"
1466     debuglevel="${build.debuglevel}"
1467     deprecation="${build.deprecation}"
1468     classpath=""
1469     includeAntRuntime="false"
1470     includeJavaRuntime="false"
1471     encoding="ASCII"
1472     executable="${build.main.javac}"
1473     fork="true">
1474    
1475     <include name="**/*.java"/>
1476 jsr166 1.272 <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1477     <compilerarg value="-J--illegal-access=permit"/>
1478 jsr166 1.264 <compilerarg value="-XDcompilePolicy=simple"/>
1479 jsr166 1.288 <compilerarg value="-processorpath"/>
1480     <compilerarg pathref="errorprone.processorpath.path"/>
1481 jsr166 1.236 <compilerarg value="-Xplugin:ErrorProne
1482 jsr166 1.261 ${errorprone.jsr166.flags}"/>
1483 jsr166 1.236 <compilerarg value="--patch-module=java.base=${src.dir}"/>
1484     <compilerarg value="-Xprefer:source"/>
1485     <compilerarg value="-XDignore.symbol.file=true"/>
1486     <compilerarg value="-Xlint:all"/>
1487     <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1488     <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1489     <compilerarg line="${build.args}"/>
1490     </javac>
1491    
1492     <jar destfile="${product.jar}">
1493     <fileset dir="${destdir}"/>
1494     </jar>
1495    
1496     <run-tck-tests
1497 jsr166 1.290 target="${java.runtime.target}"
1498 jsr166 1.236 workdir="${build.dir}"
1499     classes="${product.jar}">
1500     <javac-elements>
1501 jsr166 1.272 <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1502     <compilerarg value="-J--illegal-access=permit"/>
1503 jsr166 1.264 <compilerarg value="-XDcompilePolicy=simple"/>
1504 jsr166 1.286 <compilerarg line="-processorpath ${errorprone.processorpath}"/>
1505 jsr166 1.241 <compilerarg value="-Xplugin:ErrorProne
1506 jsr166 1.261 ${errorprone.jsr166.flags}
1507     ${errorprone.jsr166.test.flags}"/>
1508 jsr166 1.236 <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1509     </javac-elements>
1510     </run-tck-tests>
1511     </target>
1512    
1513 jsr166 1.261 <!-- ant -emacs errorprone-jtreg |& grep -EA1 '(warning|error):' -->
1514 jsr166 1.262 <!-- -XDcompilePolicy=simple or byfile avoids confusing UnusedImports -->
1515 jsr166 1.255 <target name="errorprone-jtreg"
1516     depends="jar"
1517     description="Run errorprone over jtreg tests (experimental)">
1518    
1519     <run-jtreg-tests
1520 jsr166 1.290 target="${java.runtime.target}"
1521 jsr166 1.255 workdir="${build.dir}"
1522     classes="${product.jar}"
1523     verbose="all">
1524     <jtreg-elements>
1525 jsr166 1.264 <arg value="-javacoption:-XDcompilePolicy=simple"/>
1526 jsr166 1.255 <arg value="-javacoption:-processorpath"/>
1527 jsr166 1.286 <arg value="-javacoption:${errorprone.processorpath}"/>
1528 jsr166 1.255 <arg value="-javacoption:-Xplugin:ErrorProne
1529 jsr166 1.261 ${errorprone.jsr166.flags}
1530     ${errorprone.jsr166.test.flags}
1531 jsr166 1.270 -Xep:MultipleTopLevelClasses:WARN
1532 jsr166 1.261 -Xep:NonAtomicVolatileUpdate:OFF"/>
1533 jsr166 1.255 </jtreg-elements>
1534     </run-jtreg-tests>
1535     </target>
1536    
1537 jsr166 1.236
1538 jsr166 1.229 <!-- ==============================================================
1539     Running guava tests against jsr166 code
1540     =================================================================== -->
1541    
1542     <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1543 jsr166 1.230 <!-- organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1544     <!-- <property name="guava.version" value="21.0"/> -->
1545 jsr166 1.229
1546     <!-- HOWTO debug print a path id -->
1547     <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1548     <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1549    
1550     <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1551     <!-- organisation="com.google.guava" module="guava-tests"/> -->
1552     <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1553     <!-- dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1554     <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1555     <!-- organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1556    
1557     <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1558     <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1559     <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1560     <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1561    
1562     <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1563     <!-- type="*" inline="true" conf="*(private),*(public)" -->
1564     <!-- pattern="${guava.dir}/[artifact].[ext]" -->
1565     <!-- organisation="com.google.guava" module="guava-testlib"/> -->
1566    
1567     <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1568     <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1569     <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1570    
1571     <target name="init-ivy">
1572     <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1573     dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1574     <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1575     classpath="${build.dir}/ivy.jar"/>
1576     </target>
1577    
1578     <target name="guava-tests" depends="jar, init-ivy"
1579     description="Guava tests run against jsr166 collections">
1580     <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1581     <mkdir dir="${guava.dir}"/>
1582     <ivy:retrieve pathid="guava.testlib.classpath"
1583     type="jar,bundle" inline="true" conf="default,master"
1584     pattern="${guava.dir}/[artifact].[ext]"
1585     organisation="com.google.guava" module="guava-testlib"/>
1586 jsr166 1.230 <property name="guava.version" value="21.0"/>
1587 jsr166 1.229 <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1588     dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1589     <junit printsummary="true" showoutput="true" haltonfailure="true"
1590 jsr166 1.247 jvm="${build.main.java}" fork="true">
1591 jsr166 1.252 <jvmarg line="-ea -esa --patch-module=java.base=${product.jar}"/>
1592 jsr166 1.229 <formatter type="brief"/>
1593     <classpath>
1594     <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1595     <path refid="guava.testlib.classpath"/>
1596     </classpath>
1597    
1598     <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1599     <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1600     </junit>
1601     </target>
1602 jsr166 1.130
1603 tim 1.1 </project>