ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.302
Committed: Sun Aug 18 18:55:55 2019 UTC (4 years, 8 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.301: +1 -0 lines
Log Message:
document reason for -Xlint:-removal

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.302 <!-- Xlint:-removal for jdk12 Unsafe Object -> Reference renaming -->
432 jsr166 1.284 <compilerarg value="-Xlint:all,-removal"/>
433 jsr166 1.243 <compilerarg line="--doclint-format html5"/>
434     <compilerarg value="-Xdoclint:all/protected,reference/private"/>
435 jsr166 1.298 <compilerarg value="-Xdoclint/package:java.util.*"/>
436 jsr166 1.164 <compilerarg value="-Werror"/>
437 jsr166 1.146 <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
438 dl 1.73 <compilerarg line="${build.args}"/>
439 tim 1.1
440     </javac>
441     </target>
442    
443    
444 tim 1.28 <target name="jar"
445 tim 1.59 depends="compile"
446 jsr166 1.205 description="Builds library jar for src/main from compiled sources">
447 jsr166 1.212 <local name="subdir"/>
448     <available property="subdir" file="${build.classes.dir}/java.base" type="dir" value="/java.base"/>
449 tim 1.59 <jar destfile="${product.jar}">
450 jsr166 1.212 <fileset dir="${build.classes.dir}${subdir}"/>
451 jsr166 1.178 <manifest>
452 jsr166 1.179 <attribute name="Built-By" value="${user.name}"/>
453     <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
454 jsr166 1.178 </manifest>
455 tim 1.59 </jar>
456     </target>
457    
458 tim 1.1
459 tim 1.59 <target name="docs"
460 jsr166 1.102 description="Builds javadocs for src/main to dist dir">
461 tim 1.59
462 jsr166 1.127 <delete dir="${docs.dir}"/>
463     <mkdir dir="${docs.dir}"/>
464 tim 1.59
465 jsr166 1.88 <!-- the packagenames="none" hack below prevents scanning the -->
466     <!-- sourcepath for packages -->
467    
468 jsr166 1.226 <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
469     <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
470     <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
471     <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
472     <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
473 jsr166 1.127 <javadoc destdir="${docs.dir}"
474 jsr166 1.88 packagenames="none"
475 jsr166 1.290 link="${java.api.url}"
476 jsr166 1.88 overview="${src.dir}/intro.html"
477 jsr166 1.130 access="${build.javadoc.access}"
478 jsr166 1.216 sourcepath="${src.dir}"
479 jsr166 1.100 classpath=""
480 jsr166 1.290 source="${build.main.javadoc.source}"
481 jsr166 1.247 executable="${build.main.javadoc}">
482 jsr166 1.291 <!-- TODO: JDK-8214571 failonerror = "true" -->
483 jsr166 1.119 <fileset dir="${src.dir}" defaultexcludes="yes">
484     <include name="**/*.java"/>
485     </fileset>
486 jsr166 1.290 <arg line="-Xdocrootparent ${java.docroot.url}"/>
487 jsr166 1.146 <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
488 jsr166 1.100 <arg value="-XDignore.symbol.file=true"/>
489 jsr166 1.243 <arg value="-html5"/>
490 jsr166 1.234 <arg value="--patch-module=java.base=${src.dir}"/>
491 jsr166 1.289 <!-- old school frames via docs/index.html?overview-summary.html -->
492 jsr166 1.297 <!-- TODO: - -frames no longer a supported option in jdk13+ -->
493 jsr166 1.282 <arg value="--frames"/>
494 jsr166 1.265 <arg value="--override-methods=summary"/>
495     <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
496     <arg value="-tag"/> <arg value="implSpec:a:Implementation Requirements:"/>
497     <arg value="-tag"/> <arg value="implNote:a:Implementation Note:"/>
498 jsr166 1.273 <arg value="-tag"/> <arg value="apiNote:a:API Note:"/>
499 jsr166 1.220 <!-- tags added in jdk9: currently unused -->
500 jsr166 1.265 <!-- <arg value="-tag"/> <arg value="revised:X"/> -->
501     <!-- <arg value="-tag"/> <arg value="spec:X"/> -->
502 tim 1.59 </javadoc>
503     </target>
504    
505    
506 tim 1.28 <target name="dist"
507 jsr166 1.125 depends="dist-clean, dist-jar, dist-docs"
508 tim 1.16 description="Puts all distributable products in single hierarchy"/>
509 tim 1.1
510 tim 1.58
511 tim 1.11 <target name="clean"
512     description="Removes all build products">
513     <delete dir="${build.dir}"/>
514 tim 1.1 </target>
515    
516    
517 tim 1.11 <target name="dist-clean"
518     description="Removes all build and distribution products">
519 jsr166 1.148 <delete dir="${build.dir}"/>
520 tim 1.11 <delete dir="${dist.dir}"/>
521 tim 1.9 </target>
522 tim 1.10
523    
524 tim 1.28 <target name="dist-jar"
525     depends="clean, jar">
526 tim 1.11 <copy file="${product.jar}" todir="${dist.dir}"/>
527 jsr166 1.125 </target>
528 tim 1.27
529 jsr166 1.125 <target name="dist-docs"
530     depends="clean, docs">
531 jsr166 1.127 <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
532 tim 1.11 </target>
533    
534 jsr166 1.174 <target name="tck"
535 jsr166 1.131 depends="jar"
536 jsr166 1.205 description="Runs tck tests for src/main directly">
537 jsr166 1.131
538     <run-tck-tests
539 jsr166 1.290 target="${java.runtime.target}"
540 jsr166 1.131 workdir="${build.dir}"
541 jsr166 1.236 classes="${product.jar}">
542     <javac-elements>
543     <compilerarg value="-Werror"/>
544     </javac-elements>
545     </run-tck-tests>
546 jsr166 1.131 </target>
547 tim 1.1
548 jsr166 1.174 <target name="tck-parallelism-1"
549 jsr166 1.208 description="Runs tck with common pool parallelism 1">
550 jsr166 1.174 <antcall target="tck">
551 jsr166 1.160 <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
552     </antcall>
553     </target>
554    
555 jsr166 1.174 <target name="tck-parallelism-0"
556 jsr166 1.208 description="Runs tck with common pool parallelism 0">
557 jsr166 1.174 <antcall target="tck">
558 jsr166 1.160 <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
559     </antcall>
560     </target>
561    
562 jsr166 1.213 <target name="tck-security-manager"
563     description="Runs tck with a security manager">
564     <antcall target="tck">
565     <param name="jsr166.useSecurityManager" value="true"/>
566     </antcall>
567     </target>
568    
569 jsr166 1.174 <target name="jtreg"
570 jsr166 1.135 depends="jar"
571 jsr166 1.205 description="Runs jtreg tests for src/main using the jtreg ant task">
572 jsr166 1.135 <run-jtreg-tests
573 jsr166 1.290 target="${java.runtime.target}"
574 jsr166 1.135 workdir="${build.dir}"
575     classes="${product.jar}"/>
576     </target>
577    
578 jsr166 1.142 <target name="test"
579 jsr166 1.208 depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
580 jsr166 1.241 description="Runs tck and jtreg tests for src/main"/>
581 jsr166 1.135
582 jsr166 1.284 <target name="test-version-permutations"
583 jsr166 1.301 depends="test11, test12, test13, test14, test11-12, test11-13, test11-14, clean, test, docs">
584 jsr166 1.284 </target>
585 jsr166 1.151
586 jsr166 1.301 <!-- jdk9 is unsupported as of 2019-08 -->
587     <!-- <target name="test9"> -->
588     <!-- <antcall target="clean"/> -->
589     <!-- <antcall> -->
590     <!-- <param name="java.runtime.target" value="9"/> -->
591     <!-- <param name="build.main.javac" value="${javac9}"/> -->
592     <!-- <param name="build.main.javadoc" value="${javadoc12}"/> -->
593     <!-- <param name="build.main.javadoc.source" value="9"/> -->
594     <!-- <target name="test"/> -->
595     <!-- <target name="docs"/> -->
596     <!-- </antcall> -->
597     <!-- </target> -->
598 jsr166 1.151
599 jsr166 1.301 <!-- jdk10 is unsupported as of 2019-08 -->
600     <!-- <target name="test10"> -->
601     <!-- <antcall target="clean"/> -->
602     <!-- <antcall> -->
603     <!-- <param name="java.runtime.target" value="10"/> -->
604     <!-- <param name="build.main.javac" value="${javac10}"/> -->
605     <!-- <param name="build.main.javadoc" value="${javadoc12}"/> -->
606     <!-- <param name="build.main.javadoc.source" value="10"/> -->
607     <!-- <target name="test"/> -->
608     <!-- <target name="docs"/> -->
609     <!-- </antcall> -->
610     <!-- </target> -->
611 jsr166 1.151
612 jsr166 1.284 <target name="test11">
613 jsr166 1.260 <antcall target="clean"/>
614 jsr166 1.284 <antcall>
615 jsr166 1.290 <param name="java.runtime.target" value="11"/>
616 jsr166 1.278 <param name="build.main.javac" value="${javac11}"/>
617 jsr166 1.290 <param name="build.main.javadoc" value="${javadoc12}"/>
618     <param name="build.main.javadoc.source" value="11"/>
619 jsr166 1.284 <target name="test"/>
620     <target name="docs"/>
621 jsr166 1.260 </antcall>
622 jsr166 1.284 </target>
623 jsr166 1.260
624 jsr166 1.284 <target name="test12">
625 jsr166 1.275 <antcall target="clean"/>
626 jsr166 1.284 <antcall>
627 jsr166 1.290 <param name="java.runtime.target" value="12"/>
628 jsr166 1.278 <param name="build.main.javac" value="${javac12}"/>
629 jsr166 1.284 <param name="build.main.javadoc" value="${javadoc12}"/>
630 jsr166 1.290 <param name="build.main.javadoc.source" value="12"/>
631 jsr166 1.284 <target name="test"/>
632     <target name="docs"/>
633 jsr166 1.278 </antcall>
634 jsr166 1.284 </target>
635    
636 jsr166 1.294 <target name="test13">
637     <antcall target="clean"/>
638     <antcall>
639     <param name="java.runtime.target" value="13"/>
640     <param name="build.main.javac" value="${javac13}"/>
641     <param name="build.main.javadoc" value="${javadoc13}"/>
642     <param name="build.main.javadoc.source" value="13"/>
643     <target name="test"/>
644     <target name="docs"/>
645     </antcall>
646     </target>
647    
648 jsr166 1.299 <target name="test14">
649     <antcall target="clean"/>
650     <antcall>
651     <param name="java.runtime.target" value="14"/>
652     <param name="build.main.javac" value="${javac14}"/>
653     <param name="build.main.javadoc" value="${javadoc14}"/>
654     <param name="build.main.javadoc.source" value="14"/>
655     <target name="test"/>
656     <target name="docs"/>
657     </antcall>
658     </target>
659    
660 jsr166 1.301 <target name="test11-12">
661 jsr166 1.284 <antcall target="clean"/>
662     <antcall>
663 jsr166 1.290 <param name="java.runtime.target" value="12"/>
664 jsr166 1.301 <param name="build.main.javac" value="${javac11}"/>
665 jsr166 1.278 <param name="build.main.javadoc" value="${javadoc12}"/>
666 jsr166 1.301 <param name="build.main.javadoc.source" value="11"/>
667 jsr166 1.284 <target name="test"/>
668     <target name="docs"/>
669 jsr166 1.275 </antcall>
670 jsr166 1.248 </target>
671 jsr166 1.151
672 jsr166 1.301 <target name="test11-13">
673 jsr166 1.294 <antcall target="clean"/>
674     <antcall>
675     <param name="java.runtime.target" value="13"/>
676 jsr166 1.301 <param name="build.main.javac" value="${javac11}"/>
677 jsr166 1.294 <param name="build.main.javadoc" value="${javadoc13}"/>
678 jsr166 1.301 <param name="build.main.javadoc.source" value="11"/>
679 jsr166 1.294 <target name="test"/>
680     <target name="docs"/>
681     </antcall>
682     </target>
683    
684 jsr166 1.301 <target name="test11-14">
685 jsr166 1.299 <antcall target="clean"/>
686     <antcall>
687     <param name="java.runtime.target" value="14"/>
688 jsr166 1.301 <param name="build.main.javac" value="${javac11}"/>
689 jsr166 1.299 <param name="build.main.javadoc" value="${javadoc14}"/>
690 jsr166 1.301 <param name="build.main.javadoc.source" value="11"/>
691 jsr166 1.299 <target name="test"/>
692     <target name="docs"/>
693     </antcall>
694     </target>
695    
696 tim 1.18
697 tim 1.32 <target name="configure-compiler">
698 jsr166 1.180 <fail message="ant version too old">
699 jsr166 1.237 <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
700 jsr166 1.180 </fail>
701 tim 1.54
702     <property name="unchecked.option" value="-Xlint:unchecked"/>
703    
704     <condition property="warnunchecked.arg" value="${unchecked.option}">
705 tim 1.57 <istrue value="${build.warnunchecked}"/>
706 tim 1.32 </condition>
707    
708 tim 1.37 <property name="warnunchecked.arg" value=""/>
709 tim 1.34
710 tim 1.32
711     <!-- Common options in javac invocations -->
712 tim 1.57 <property name="build.args" value="${warnunchecked.arg}"/>
713 tim 1.33
714     </target>
715    
716    
717 jsr166 1.166 <target name="compile-test-loops" depends="jar"
718 jsr166 1.241 description="Compiles all the perf tests in src/test/loops">
719 jsr166 1.166
720     <mkdir dir="${build.dir}/test/loops"/>
721    
722     <javac srcdir="${basedir}/src/test/loops"
723     destdir="${build.dir}/test/loops"
724     debug="${build.debug}"
725     debuglevel="${build.debuglevel}"
726     deprecation="${build.deprecation}"
727     includeAntRuntime="false"
728     includeJavaRuntime="false"
729 jsr166 1.219 encoding="ASCII"
730 jsr166 1.247 executable="${build.main.javac}"
731 jsr166 1.166 fork="true">
732    
733     <include name="*.java"/>
734     <compilerarg value="-XDignore.symbol.file=true"/>
735 jsr166 1.167 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
736 jsr166 1.166 <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
737     <compilerarg line="${build.args}"/>
738     </javac>
739     </target>
740    
741    
742 jsr166 1.200 <!-- jsr166 4jdk8 -->
743    
744     <target name="4jdk8compile"
745     depends="configure-compiler"
746     description="Compiles src/jdk8 sources, targeting jdk8">
747    
748     <mkdir dir="${build.4jdk8.classes.dir}"/>
749    
750     <javac srcdir="${4jdk8src.dir}"
751     destdir="${build.4jdk8.classes.dir}"
752     debug="${build.debug}"
753     debuglevel="${build.debuglevel}"
754     deprecation="${build.deprecation}"
755     source="8"
756     target="8"
757     classpath=""
758     bootclasspath="${bootclasspath8}"
759     includeAntRuntime="false"
760     includeJavaRuntime="false"
761 jsr166 1.219 encoding="ASCII"
762 jsr166 1.200 executable="${javac8}"
763     fork="true">
764     <include name="**/*.java"/>
765     <compilerarg value="-Xprefer:source"/>
766     <compilerarg value="-XDignore.symbol.file=true"/>
767     <compilerarg value="-Xlint:all"/>
768     <compilerarg value="-Werror"/>
769     <compilerarg line="${build.args}"/>
770     </javac>
771     </target>
772    
773     <target name="4jdk8doclint"
774     depends="configure-compiler"
775     description="Finds doclint warnings">
776    
777     <mkdir dir="${build.4jdk8.classes.dir}"/>
778    
779     <javac srcdir="${4jdk8src.dir}"
780     destdir="${build.4jdk8.classes.dir}"
781     debug="${build.debug}"
782     debuglevel="${build.debuglevel}"
783     deprecation="${build.deprecation}"
784     source="8"
785     target="8"
786     classpath=""
787     bootclasspath="${bootclasspath8}"
788     includeAntRuntime="false"
789     includeJavaRuntime="false"
790 jsr166 1.219 encoding="ASCII"
791 jsr166 1.200 executable="${javac8}"
792     fork="true">
793     <include name="**/*.java"/>
794     <compilerarg value="-Xprefer:source"/>
795     <compilerarg value="-XDignore.symbol.file=true"/>
796     <compilerarg value="-Xlint:all"/>
797 jsr166 1.235 <compilerarg value="-Xdoclint:all/protected,reference/private"/>
798 jsr166 1.200 <compilerarg line="${build.args}"/>
799     </javac>
800     </target>
801    
802    
803     <target name="4jdk8jar"
804     depends="4jdk8compile"
805     description="Builds library jar from compiled sources">
806    
807     <jar destfile="${4jdk8product.jar}">
808     <fileset dir="${build.4jdk8.classes.dir}"/>
809     <manifest>
810     <attribute name="Built-By" value="${user.name}"/>
811     <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
812     </manifest>
813     </jar>
814     </target>
815    
816    
817     <target name="4jdk8-tck"
818     depends="4jdk8jar"
819     description="Runs tck tests for jsr166-4jdk8 directly">
820    
821     <run-tck-tests
822     target="8"
823     workdir="${build.4jdk8.dir}"
824     classes="${4jdk8product.jar}">
825     <javac-elements>
826     <!-- JDK9+ test classes -->
827     <exclude name="*9Test.java"/>
828     <exclude name="*10Test.java"/>
829 jsr166 1.236 <compilerarg value="-Werror"/>
830 jsr166 1.200 </javac-elements>
831     </run-tck-tests>
832     </target>
833    
834    
835     <target name="4jdk8-jtreg"
836     depends="4jdk8jar"
837     description="Runs jtreg tests for jsr166-4jdk8 using the jtreg ant task">
838     <run-jtreg-tests
839     target="8"
840     workdir="${build.4jdk8.dir}"
841     classes="${4jdk8product.jar}"/>
842     </target>
843    
844    
845     <target name="4jdk8-test"
846     depends="4jdk8-tck, 4jdk8-jtreg"
847 jsr166 1.241 description="Runs tck and jtreg tests for jsr166-4jdk8"/>
848 jsr166 1.200
849    
850     <target name="4jdk8docs"
851     description="Builds javadocs for src/jdk8 to dist dir">
852    
853     <delete dir="${4jdk8docs.dir}"/>
854     <mkdir dir="${4jdk8docs.dir}"/>
855    
856     <javadoc destdir="${4jdk8docs.dir}"
857     packagenames="none"
858     link="${java8.api.url}"
859     overview="${4jdk8src.dir}/intro.html"
860     access="${build.javadoc.access}"
861     sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
862     classpath=""
863 jsr166 1.244 source="8"
864 jsr166 1.206 executable="${javadoc8}"
865     failonerror = "true">
866 jsr166 1.200 <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
867     <include name="**/*.java"/>
868     </fileset>
869     <arg line="-Xdocrootparent ${java8.docroot.url}"/>
870     <arg value="-XDignore.symbol.file=true"/>
871 jsr166 1.265 <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
872     <arg value="-tag"/> <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
873     <arg value="-tag"/> <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
874     <!-- @apiNote tag currently unused -->
875     <!-- <arg value="-tag"/> <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
876 jsr166 1.200 </javadoc>
877     </target>
878    
879    
880     <target name="4jdk8dist"
881     depends="4jdk8dist-jar, 4jdk8dist-docs"
882     description="Puts all distributable products in single hierarchy"/>
883    
884    
885     <target name="4jdk8clean"
886     description="Removes all 4jdk8 build products">
887     <delete dir="${build.4jdk8.dir}"/>
888     </target>
889    
890    
891     <target name="4jdk8dist-jar"
892     depends="4jdk8clean, 4jdk8jar">
893     <copy file="${4jdk8product.jar}" todir="${dist.dir}"/>
894     </target>
895    
896    
897     <target name="4jdk8dist-docs"
898     depends="4jdk8clean, 4jdk8docs">
899     <mirror-dir src="${4jdk8docs.dir}" dst="${dist.4jdk8docs.dir}"/>
900     </target>
901    
902    
903 jsr166 1.241 <!-- jsr166 4jdk7 (no longer maintained) -->
904 jsr166 1.200
905 jsr166 1.241 <target name="4jdk7compile" depends="configure-compiler">
906 jsr166 1.99 <mkdir dir="${build.4jdk7.classes.dir}"/>
907 jsr166 1.92
908 jsr166 1.99 <javac srcdir="${4jdk7src.dir}"
909     destdir="${build.4jdk7.classes.dir}"
910 jsr166 1.92 debug="${build.debug}"
911     debuglevel="${build.debuglevel}"
912     deprecation="${build.deprecation}"
913 jsr166 1.107 source="6"
914 jsr166 1.190 target="6"
915 jsr166 1.92 classpath=""
916 jsr166 1.119 bootclasspath="${bootclasspath6}"
917 jsr166 1.92 includeAntRuntime="false"
918     includeJavaRuntime="false"
919 jsr166 1.219 encoding="ASCII"
920 jsr166 1.97 executable="${javac7}"
921 jsr166 1.92 fork="true">
922    
923     <include name="**/*.java"/>
924 jsr166 1.133 <compilerarg value="-Xprefer:source"/>
925 jsr166 1.92 <compilerarg value="-XDignore.symbol.file=true"/>
926     <compilerarg value="-Xlint:all"/>
927 jsr166 1.164 <compilerarg value="-Werror"/>
928 jsr166 1.118 <compilerarg line="${build.args}"/>
929 jsr166 1.92 </javac>
930 jsr166 1.118 </target>
931 jsr166 1.92
932 jsr166 1.241 <target name="4jdk7doclint" depends="configure-compiler">
933 jsr166 1.149 <mkdir dir="${build.4jdk7.classes.dir}"/>
934    
935     <javac srcdir="${4jdk7src.dir}"
936     destdir="${build.4jdk7.classes.dir}"
937     debug="${build.debug}"
938     debuglevel="${build.debuglevel}"
939     deprecation="${build.deprecation}"
940     source="6"
941 jsr166 1.190 target="6"
942 jsr166 1.149 classpath=""
943 jsr166 1.190 bootclasspath="${bootclasspath6}"
944 jsr166 1.149 includeAntRuntime="false"
945     includeJavaRuntime="false"
946 jsr166 1.219 encoding="ASCII"
947 jsr166 1.149 executable="${javac8}"
948     fork="true">
949    
950     <include name="**/*.java"/>
951     <compilerarg value="-Xprefer:source"/>
952     <compilerarg value="-XDignore.symbol.file=true"/>
953     <compilerarg value="-Xlint:all"/>
954     <compilerarg value="-Xdoclint:all/protected"/>
955     <compilerarg line="${build.args}"/>
956     </javac>
957     </target>
958    
959 jsr166 1.241 <target name="4jdk7jar" depends="4jdk7compile">
960 jsr166 1.116 <jar destfile="${4jdk7product.jar}">
961 jsr166 1.99 <fileset dir="${build.4jdk7.classes.dir}"/>
962 jsr166 1.178 <manifest>
963 jsr166 1.179 <attribute name="Built-By" value="${user.name}"/>
964     <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
965 jsr166 1.178 </manifest>
966 jsr166 1.97 </jar>
967 jsr166 1.92 </target>
968    
969 jsr166 1.241 <target name="4jdk7-tck" depends="4jdk7jar">
970 jsr166 1.97 <run-tck-tests
971 jsr166 1.116 target="7"
972     workdir="${build.4jdk7.dir}"
973 jsr166 1.132 classes="${4jdk7product.jar}">
974     <javac-elements>
975 jsr166 1.134 <!-- JDK8+ test classes -->
976 jsr166 1.137 <exclude name="*8Test.java"/>
977 jsr166 1.151 <exclude name="*9Test.java"/>
978 jsr166 1.176 <exclude name="*10Test.java"/>
979 jsr166 1.138 <exclude name="DoubleAccumulatorTest.java"/>
980     <exclude name="DoubleAdderTest.java"/>
981     <exclude name="LongAccumulatorTest.java"/>
982     <exclude name="LongAdderTest.java"/>
983 jsr166 1.137 <exclude name="CompletableFutureTest.java"/>
984 jsr166 1.145 <exclude name="SplittableRandomTest.java"/>
985 jsr166 1.132 <exclude name="StampedLockTest.java"/>
986 jsr166 1.176 <exclude name="SubmissionPublisherTest.java"/>
987 jsr166 1.236 <compilerarg value="-Werror"/>
988 jsr166 1.132 </javac-elements>
989     </run-tck-tests>
990 jsr166 1.97 </target>
991    
992 jsr166 1.203 <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
993 jsr166 1.241 <target name="4jdk7-tck-junit" depends="4jdk7compile">
994 jsr166 1.97
995     <junit printsummary="true"
996     showoutput="true"
997     errorProperty="junit.failed"
998     failureProperty="junit.failed"
999     includeantruntime="true"
1000     jvm="${java7}"
1001     fork="true">
1002    
1003 jsr166 1.99 <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
1004 jsr166 1.97 <jvmarg value="-server"/>
1005 jsr166 1.92
1006 jsr166 1.97 <classpath>
1007     <pathelement location="${junit.jar}"/>
1008 jsr166 1.99 <pathelement location="${build.4jdk7.tck.classes.dir}"/>
1009 jsr166 1.97 </classpath>
1010 jsr166 1.92
1011 jsr166 1.97 <formatter type="brief"/>
1012 jsr166 1.92
1013 jsr166 1.140 <test name="${jsr166.tckTestClass}" haltonfailure="no">
1014 jsr166 1.97 </test>
1015     </junit>
1016 jsr166 1.92 </target>
1017    
1018 jsr166 1.241 <target name="4jdk7-jtreg" depends="4jdk7jar">
1019 jsr166 1.135 <run-jtreg-tests
1020     target="7"
1021     workdir="${build.4jdk7.dir}"
1022 jsr166 1.165 classes="${4jdk7product.jar}"/>
1023 jsr166 1.115 </target>
1024    
1025 jsr166 1.241 <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
1026 jsr166 1.115
1027 jsr166 1.241 <target name="4jdk7docs">
1028 jsr166 1.127 <delete dir="${4jdk7docs.dir}"/>
1029     <mkdir dir="${4jdk7docs.dir}"/>
1030 jsr166 1.92
1031 jsr166 1.127 <javadoc destdir="${4jdk7docs.dir}"
1032 jsr166 1.92 packagenames="none"
1033 jsr166 1.152 link="${java7.api.url}"
1034 jsr166 1.99 overview="${4jdk7src.dir}/intro.html"
1035 jsr166 1.130 access="${build.javadoc.access}"
1036 jsr166 1.199 sourcepath="${4jdk7src.dir}:${jdk7.src.dir}"
1037 jsr166 1.92 classpath=""
1038 jsr166 1.206 executable="${javadoc7}"
1039     failonerror = "true">
1040 jsr166 1.99 <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
1041 jsr166 1.92 <include name="**/*.java"/>
1042     </fileset>
1043 jsr166 1.152 <arg line="-Xdocrootparent ${java7.docroot.url}"/>
1044 jsr166 1.119 <arg value="-XDignore.symbol.file=true"/>
1045 jsr166 1.92 </javadoc>
1046     </target>
1047    
1048 jsr166 1.241 <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
1049 jsr166 1.92
1050 jsr166 1.241 <target name="4jdk7clean">
1051 jsr166 1.99 <delete dir="${build.4jdk7.dir}"/>
1052 jsr166 1.92 </target>
1053    
1054 jsr166 1.241 <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
1055 jsr166 1.125 <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1056     </target>
1057 jsr166 1.92
1058 jsr166 1.241 <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
1059 jsr166 1.127 <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1060 jsr166 1.92 </target>
1061    
1062 jsr166 1.109
1063 jsr166 1.241 <!-- jsr166x (no longer maintained) -->
1064 dl 1.70
1065 jsr166 1.241 <target name="jsr166xcompile" depends="configure-compiler">
1066 jsr166 1.114 <mkdir dir="${build.jsr166x.classes.dir}"/>
1067 dl 1.70
1068 jsr166 1.105 <javac srcdir="${topsrc.dir}"
1069 jsr166 1.114 destdir="${build.jsr166x.classes.dir}"
1070 jsr166 1.105 debug="${build.debug}"
1071     debuglevel="${build.debuglevel}"
1072     deprecation="${build.deprecation}"
1073     classpath=""
1074 jsr166 1.119 bootclasspath="${bootclasspath6}"
1075 jsr166 1.107 source="5"
1076 jsr166 1.190 target="5"
1077 jsr166 1.105 includeAntRuntime="false"
1078     includeJavaRuntime="false"
1079 jsr166 1.219 encoding="ASCII"
1080 jsr166 1.105 executable="${javac7}"
1081     fork="true">
1082     <include name="jsr166x/**/*.java"/>
1083 dl 1.84 <compilerarg value="-XDignore.symbol.file=true"/>
1084 jsr166 1.105 <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1085 jsr166 1.164 <compilerarg value="-Werror"/>
1086 jsr166 1.118 <compilerarg line="${build.args}"/>
1087 dl 1.70 </javac>
1088     </target>
1089    
1090 jsr166 1.241 <target name="jsr166xjar" depends="jsr166xcompile">
1091 jsr166 1.106 <jar destfile="${jsr166x.jar}">
1092 jsr166 1.114 <fileset dir="${build.jsr166x.classes.dir}"/>
1093 jsr166 1.178 <manifest>
1094 jsr166 1.179 <attribute name="Built-By" value="${user.name}"/>
1095     <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1096 jsr166 1.178 </manifest>
1097 dl 1.70 </jar>
1098     </target>
1099    
1100 jsr166 1.241 <target name="jsr166xdocs">
1101 jsr166 1.127 <delete dir="${jsr166xdocs.dir}"/>
1102     <mkdir dir="${jsr166xdocs.dir}"/>
1103 dl 1.70
1104 jsr166 1.127 <javadoc destdir="${jsr166xdocs.dir}"
1105 jsr166 1.107 packagenames="jsr166x.*"
1106 jsr166 1.152 link="${java.api.url}"
1107 jsr166 1.130 access="${build.javadoc.access}"
1108 jsr166 1.199 sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1109 jsr166 1.119 bootclasspath="${bootclasspath6}"
1110 jsr166 1.107 source="5"
1111 jsr166 1.206 executable="${javadoc7}"
1112     failonerror = "true">
1113 jsr166 1.152 <arg line="-Xdocrootparent ${java.docroot.url}"/>
1114 jsr166 1.118 <arg value="-XDignore.symbol.file=true"/>
1115     </javadoc>
1116 dl 1.70 </target>
1117    
1118 jsr166 1.241 <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1119 dl 1.70
1120 jsr166 1.241 <target name="jsr166xclean">
1121 dl 1.70 <delete dir="${build.jsr166x.dir}"/>
1122     </target>
1123    
1124 jsr166 1.241 <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
1125 jsr166 1.106 <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1126 jsr166 1.125 </target>
1127 dl 1.70
1128 jsr166 1.241 <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
1129 jsr166 1.127 <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1130 dl 1.70 </target>
1131    
1132 dl 1.74
1133 jsr166 1.241 <!-- jsr166y (no longer maintained) -->
1134 dl 1.74
1135 jsr166 1.241 <target name="jsr166ycompile" depends="configure-compiler">
1136 jsr166 1.114 <mkdir dir="${build.jsr166y.classes.dir}"/>
1137 dl 1.74
1138 jsr166 1.103 <javac srcdir="${topsrc.dir}"
1139 jsr166 1.114 destdir="${build.jsr166y.classes.dir}"
1140 jsr166 1.103 debug="${build.debug}"
1141     debuglevel="${build.debuglevel}"
1142     deprecation="${build.deprecation}"
1143 jsr166 1.107 source="6"
1144 jsr166 1.189 target="6"
1145 jsr166 1.103 classpath=""
1146 jsr166 1.119 bootclasspath="${bootclasspath6}"
1147 jsr166 1.103 includeAntRuntime="false"
1148     includeJavaRuntime="false"
1149 jsr166 1.219 encoding="ASCII"
1150 jsr166 1.103 executable="${javac7}"
1151     fork="true">
1152 dl 1.74
1153 jsr166 1.103 <include name="jsr166y/**/*.java"/>
1154 dl 1.83 <compilerarg value="-XDignore.symbol.file=true"/>
1155 jsr166 1.103 <compilerarg value="-Xlint:all"/>
1156 jsr166 1.164 <compilerarg value="-Werror"/>
1157 jsr166 1.118 <compilerarg line="${build.args}"/>
1158 dl 1.74 </javac>
1159     </target>
1160    
1161 jsr166 1.241 <target name="jsr166yjar" depends="jsr166ycompile">
1162 jsr166 1.106 <jar destfile="${jsr166y.jar}" index="true">
1163 jsr166 1.114 <fileset dir="${build.jsr166y.classes.dir}"/>
1164 jsr166 1.178 <manifest>
1165 jsr166 1.179 <attribute name="Built-By" value="${user.name}"/>
1166     <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1167 jsr166 1.178 </manifest>
1168 dl 1.74 </jar>
1169     </target>
1170    
1171 jsr166 1.241 <target name="jsr166ydocs">
1172 jsr166 1.127 <delete dir="${jsr166ydocs.dir}"/>
1173     <mkdir dir="${jsr166ydocs.dir}"/>
1174 dl 1.74
1175 jsr166 1.127 <javadoc destdir="${jsr166ydocs.dir}"
1176 jsr166 1.107 packagenames="jsr166y.*"
1177 jsr166 1.152 link="${java.api.url}"
1178 jsr166 1.130 access="${build.javadoc.access}"
1179 jsr166 1.199 sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1180 jsr166 1.119 bootclasspath="${bootclasspath6}"
1181 jsr166 1.107 source="6"
1182 jsr166 1.206 executable="${javadoc7}"
1183     failonerror = "true">
1184 jsr166 1.152 <arg line="-Xdocrootparent ${java.docroot.url}"/>
1185 jsr166 1.118 <arg value="-XDignore.symbol.file=true"/>
1186     </javadoc>
1187 dl 1.74 </target>
1188    
1189 jsr166 1.241 <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1190 dl 1.74
1191 jsr166 1.241 <target name="jsr166yclean">
1192 dl 1.74 <delete dir="${build.jsr166y.dir}"/>
1193     </target>
1194    
1195 jsr166 1.241 <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
1196 jsr166 1.106 <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1197 jsr166 1.125 </target>
1198 dl 1.74
1199 jsr166 1.241 <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
1200 jsr166 1.127 <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1201 dl 1.74 </target>
1202    
1203 dl 1.90
1204 jsr166 1.241 <!-- extra166y (no longer maintained) -->
1205 dl 1.76
1206 jsr166 1.241 <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1207 jsr166 1.114 <mkdir dir="${build.extra166y.classes.dir}"/>
1208 dl 1.76
1209 jsr166 1.103 <javac srcdir="${topsrc.dir}"
1210 jsr166 1.114 destdir="${build.extra166y.classes.dir}"
1211 jsr166 1.103 debug="${build.debug}"
1212     debuglevel="${build.debuglevel}"
1213     deprecation="${build.deprecation}"
1214 jsr166 1.119 bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
1215 jsr166 1.105 classpath=""
1216 jsr166 1.107 source="6"
1217 jsr166 1.190 target="6"
1218 jsr166 1.103 includeAntRuntime="false"
1219     includeJavaRuntime="false"
1220 jsr166 1.219 encoding="ASCII"
1221 jsr166 1.103 executable="${javac7}"
1222     fork="true">
1223 dl 1.76
1224 jsr166 1.103 <include name="extra166y/**/*.java"/>
1225 dl 1.83 <compilerarg value="-XDignore.symbol.file=true"/>
1226 jsr166 1.103 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1227 jsr166 1.164 <compilerarg value="-Werror"/>
1228 jsr166 1.118 <compilerarg line="${build.args}"/>
1229 dl 1.76 </javac>
1230     </target>
1231    
1232 jsr166 1.241 <target name="extra166yjar" depends="extra166ycompile">
1233 jsr166 1.106 <jar destfile="${extra166y.jar}" index="true">
1234 jsr166 1.114 <fileset dir="${build.extra166y.classes.dir}"/>
1235 jsr166 1.178 <manifest>
1236 jsr166 1.179 <attribute name="Built-By" value="${user.name}"/>
1237     <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1238 jsr166 1.178 </manifest>
1239 dl 1.76 </jar>
1240     </target>
1241    
1242 jsr166 1.241 <target name="extra166ydocs">
1243 jsr166 1.127 <delete dir="${extra166ydocs.dir}"/>
1244     <mkdir dir="${extra166ydocs.dir}"/>
1245 dl 1.76
1246 jsr166 1.127 <javadoc destdir="${extra166ydocs.dir}"
1247 jsr166 1.107 packagenames="extra166y.*"
1248 jsr166 1.152 link="${java.api.url}"
1249 jsr166 1.130 access="${build.javadoc.access}"
1250 jsr166 1.199 sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1251 jsr166 1.119 bootclasspath="${bootclasspath6}"
1252 jsr166 1.107 source="6"
1253 jsr166 1.118 executable="${javadoc7}">
1254 jsr166 1.152 <arg line="-Xdocrootparent ${java.docroot.url}"/>
1255 jsr166 1.118 <arg value="-XDignore.symbol.file=true"/>
1256     </javadoc>
1257 dl 1.76 </target>
1258    
1259 jsr166 1.241 <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1260 dl 1.76
1261 jsr166 1.241 <target name="extra166yclean">
1262 dl 1.76 <delete dir="${build.extra166y.dir}"/>
1263     </target>
1264    
1265 jsr166 1.241 <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
1266 jsr166 1.106 <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1267 jsr166 1.125 </target>
1268 dl 1.76
1269 jsr166 1.241 <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
1270 jsr166 1.127 <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1271 dl 1.76 </target>
1272    
1273 jsr166 1.241
1274     <!-- jsr166e (no longer maintained) -->
1275 dl 1.90
1276 jsr166 1.144 <property name="build.jsr166e.java.version" value="6"/>
1277     <property name="build.jsr166e.javac" value="${javac6}"/>
1278    
1279 jsr166 1.241 <target name="jsr166ecompile" depends="configure-compiler">
1280 jsr166 1.114 <mkdir dir="${build.jsr166e.classes.dir}"/>
1281 dl 1.90
1282 jsr166 1.95 <javac srcdir="${topsrc.dir}"
1283 jsr166 1.114 destdir="${build.jsr166e.classes.dir}"
1284 jsr166 1.94 debug="${build.debug}"
1285     debuglevel="${build.debuglevel}"
1286     deprecation="${build.deprecation}"
1287 jsr166 1.144 source="${build.jsr166e.java.version}"
1288 jsr166 1.190 target="${build.jsr166e.java.version}"
1289 jsr166 1.94 classpath=""
1290     includeAntRuntime="false"
1291     includeJavaRuntime="false"
1292 jsr166 1.144 executable="${build.jsr166e.javac}"
1293 jsr166 1.94 fork="true">
1294 dl 1.90
1295 jsr166 1.95 <include name="jsr166e/**/*.java"/>
1296 dl 1.90 <compilerarg value="-XDignore.symbol.file=true"/>
1297 jsr166 1.94 <compilerarg value="-Xlint:all"/>
1298 jsr166 1.164 <compilerarg value="-Werror"/>
1299 jsr166 1.118 <compilerarg line="${build.args}"/>
1300 dl 1.90 </javac>
1301     </target>
1302    
1303 jsr166 1.150 <target name="jsr166edoclint">
1304     <mkdir dir="${build.jsr166e.classes.dir}"/>
1305    
1306     <javac srcdir="${topsrc.dir}"
1307     destdir="${build.jsr166e.classes.dir}"
1308     debug="${build.debug}"
1309     debuglevel="${build.debuglevel}"
1310     deprecation="${build.deprecation}"
1311     source="${build.jsr166e.java.version}"
1312 jsr166 1.190 target="${build.jsr166e.java.version}"
1313 jsr166 1.150 classpath=""
1314 jsr166 1.190 bootclasspath="${bootclasspath6}"
1315 jsr166 1.150 includeAntRuntime="false"
1316     includeJavaRuntime="false"
1317     executable="${javac8}"
1318     fork="true">
1319    
1320     <include name="jsr166e/**/*.java"/>
1321     <compilerarg value="-XDignore.symbol.file=true"/>
1322     <compilerarg value="-Xlint:all"/>
1323 jsr166 1.164 <compilerarg value="-Werror"/>
1324 jsr166 1.150 <compilerarg value="-Xdoclint:all/protected"/>
1325     </javac>
1326     </target>
1327    
1328 jsr166 1.241 <target name="jsr166ejar" depends="jsr166ecompile">
1329 jsr166 1.106 <jar destfile="${jsr166e.jar}" index="true">
1330 jsr166 1.114 <fileset dir="${build.jsr166e.classes.dir}"/>
1331 jsr166 1.178 <manifest>
1332 jsr166 1.179 <attribute name="Built-By" value="${user.name}"/>
1333     <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1334 jsr166 1.178 </manifest>
1335 dl 1.90 </jar>
1336     </target>
1337    
1338 jsr166 1.241 <target name="jsr166edocs">
1339 jsr166 1.127 <delete dir="${jsr166edocs.dir}"/>
1340     <mkdir dir="${jsr166edocs.dir}"/>
1341 dl 1.90
1342 jsr166 1.127 <javadoc destdir="${jsr166edocs.dir}"
1343 jsr166 1.107 packagenames="jsr166e.*"
1344 jsr166 1.152 link="${java.api.url}"
1345 jsr166 1.130 access="${build.javadoc.access}"
1346 jsr166 1.199 sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1347 jsr166 1.144 source="${build.jsr166e.java.version}"
1348 jsr166 1.206 executable="${javadoc7}"
1349     failonerror = "true">
1350 jsr166 1.152 <arg line="-Xdocrootparent ${java.docroot.url}"/>
1351 jsr166 1.118 <arg value="-XDignore.symbol.file=true"/>
1352 jsr166 1.96 </javadoc>
1353 dl 1.90 </target>
1354    
1355 jsr166 1.241 <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
1356 jsr166 1.144 <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
1357 jsr166 1.122 <run-tck-tests
1358     tck.src.dir="${test.src.dir}/tck-jsr166e"
1359 jsr166 1.144 target="${build.jsr166e.java.version}"
1360 jsr166 1.122 workdir="${build.jsr166e.dir}"
1361     classes="${jsr166e.jar}"/>
1362     </target>
1363    
1364 jsr166 1.241 <target name="jsr166e-tck">
1365 jsr166 1.144
1366     <!-- <antcall target="clean"/> -->
1367 jsr166 1.174 <!-- <antcall target="jsr166e-tck-one-java-version"> -->
1368 jsr166 1.144 <!-- <param name="build.jsr166e.java.version" value="8"/> -->
1369     <!-- <param name="build.jsr166e.javac" value="${javac8}"/> -->
1370     <!-- </antcall> -->
1371    
1372     <antcall target="clean"/>
1373 jsr166 1.174 <antcall target="jsr166e-tck-one-java-version">
1374 jsr166 1.144 <param name="build.jsr166e.java.version" value="7"/>
1375     <param name="build.jsr166e.javac" value="${javac7}"/>
1376     </antcall>
1377    
1378     <antcall target="clean"/>
1379 jsr166 1.174 <antcall target="jsr166e-tck-one-java-version">
1380 jsr166 1.144 <param name="build.jsr166e.java.version" value="6"/>
1381     <param name="build.jsr166e.javac" value="${javac6}"/>
1382     </antcall>
1383     </target>
1384    
1385 jsr166 1.241 <target name="jsr166e-test" depends="jsr166e-tck"/>
1386 jsr166 1.122
1387 jsr166 1.241 <target name="jsr166edist" depends="jsr166edist-jar, jsr166edist-docs"/>
1388 jsr166 1.147
1389 jsr166 1.241 <target name="jsr166eclean">
1390 dl 1.90 <delete dir="${build.jsr166e.dir}"/>
1391     </target>
1392    
1393     <target name="jsr166edist-jar"
1394 jsr166 1.128 depends="jsr166eclean, jsr166ejar">
1395 jsr166 1.106 <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1396 jsr166 1.125 </target>
1397 dl 1.90
1398 jsr166 1.241 <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
1399 jsr166 1.127 <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1400 dl 1.90 </target>
1401    
1402 jsr166 1.130
1403     <!-- Find buglets that can be detected by static build tools -->
1404    
1405 jsr166 1.269 <!-- <target name="lint"> -->
1406     <!-- <antcall target="dists"> -->
1407     <!-- <param name="build.javadoc.access" value="protected"/> -->
1408     <!-- </antcall> -->
1409     <!-- </target> -->
1410 jsr166 1.161
1411     <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1412 jsr166 1.269 <target name="doclint-private">
1413 jsr166 1.161 <antcall target="dist">
1414 jsr166 1.130 <param name="build.javadoc.access" value="private"/>
1415     </antcall>
1416     </target>
1417    
1418 jsr166 1.236
1419     <!-- ==============================================================
1420 jsr166 1.287 Experimental errorprone support
1421     https://errorprone.info
1422     https://errorprone.info/docs/installation
1423     https://github.com/google/error-prone/issues/1143
1424 jsr166 1.236 =================================================================== -->
1425 jsr166 1.288 <path id="errorprone.processorpath.path">
1426     <pathelement location="${lib.dir}/error_prone_core-2.3.2-with-dependencies.jar"/>
1427     <pathelement location="${lib.dir}/dataflow-2.5.7.jar"/>
1428     <pathelement location="${lib.dir}/javacutil-2.5.7.jar"/>
1429     <pathelement location="${lib.dir}/jFormatString-3.0.0.jar"/>
1430     </path>
1431     <property name="errorprone.processorpath" refid="errorprone.processorpath.path" />
1432 jsr166 1.267 <property name="errorprone.jsr166.user.flags" value=""/>
1433 jsr166 1.261 <property name="errorprone.jsr166.flags"
1434 jsr166 1.263 value="-Xep:HashtableContains:OFF
1435 jsr166 1.261 -Xep:JdkObsolete:OFF
1436     -Xep:MissingOverride:OFF
1437     -Xep:MissingFail:OFF
1438 jsr166 1.288 -Xep:ThreadPriorityCheck:OFF
1439 jsr166 1.263 -Xep:MixedArrayDimensions:ERROR
1440     -Xep:RemoveUnusedImports:ERROR
1441     -Xep:EmptyIf:ERROR
1442     -Xep:MultipleTopLevelClasses:ERROR
1443     -Xep:ClassName:ERROR
1444     -Xep:LongLiteralLowerCaseSuffix:ERROR
1445     -Xep:RedundantThrows:ERROR
1446 jsr166 1.261 -Xep:IdentityBinaryExpression:WARN
1447 jsr166 1.287 -Xep:ConstructorInvokesOverridable:WARN
1448 jsr166 1.267 -Xep:MethodCanBeStatic:WARN
1449     ${errorprone.jsr166.user.flags}"/>
1450 jsr166 1.261 <!-- -Xep:WildcardImport:ERROR -->
1451     <property name="errorprone.jsr166.test.flags"
1452 jsr166 1.263 value="-Xep:StringSplitter:OFF
1453     -Xep:BoxedPrimitiveConstructor:OFF
1454     -Xep:ModifyingCollectionWithItself:OFF"/>
1455 jsr166 1.261 <!-- ant -emacs errorprone |& grep -EA1 '(warning|error):|warnings' -->
1456 jsr166 1.236 <target name="errorprone"
1457     depends="clean, configure-compiler"
1458 jsr166 1.241 description="Run errorprone over jsr166 source code (experimental)">
1459 jsr166 1.236
1460     <local name="destdir"/>
1461     <property name="destdir" value="${build.classes.dir}/java.base"/>
1462     <mkdir dir="${destdir}"/>
1463    
1464     <javac srcdir="${src.dir}"
1465     destdir="${destdir}"
1466     debug="${build.debug}"
1467     debuglevel="${build.debuglevel}"
1468     deprecation="${build.deprecation}"
1469     classpath=""
1470     includeAntRuntime="false"
1471     includeJavaRuntime="false"
1472     encoding="ASCII"
1473     executable="${build.main.javac}"
1474     fork="true">
1475    
1476     <include name="**/*.java"/>
1477 jsr166 1.272 <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1478     <compilerarg value="-J--illegal-access=permit"/>
1479 jsr166 1.264 <compilerarg value="-XDcompilePolicy=simple"/>
1480 jsr166 1.288 <compilerarg value="-processorpath"/>
1481     <compilerarg pathref="errorprone.processorpath.path"/>
1482 jsr166 1.236 <compilerarg value="-Xplugin:ErrorProne
1483 jsr166 1.261 ${errorprone.jsr166.flags}"/>
1484 jsr166 1.236 <compilerarg value="--patch-module=java.base=${src.dir}"/>
1485     <compilerarg value="-Xprefer:source"/>
1486     <compilerarg value="-XDignore.symbol.file=true"/>
1487     <compilerarg value="-Xlint:all"/>
1488     <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1489     <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1490     <compilerarg line="${build.args}"/>
1491     </javac>
1492    
1493     <jar destfile="${product.jar}">
1494     <fileset dir="${destdir}"/>
1495     </jar>
1496    
1497     <run-tck-tests
1498 jsr166 1.290 target="${java.runtime.target}"
1499 jsr166 1.236 workdir="${build.dir}"
1500     classes="${product.jar}">
1501     <javac-elements>
1502 jsr166 1.272 <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1503     <compilerarg value="-J--illegal-access=permit"/>
1504 jsr166 1.264 <compilerarg value="-XDcompilePolicy=simple"/>
1505 jsr166 1.286 <compilerarg line="-processorpath ${errorprone.processorpath}"/>
1506 jsr166 1.241 <compilerarg value="-Xplugin:ErrorProne
1507 jsr166 1.261 ${errorprone.jsr166.flags}
1508     ${errorprone.jsr166.test.flags}"/>
1509 jsr166 1.236 <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1510     </javac-elements>
1511     </run-tck-tests>
1512     </target>
1513    
1514 jsr166 1.261 <!-- ant -emacs errorprone-jtreg |& grep -EA1 '(warning|error):' -->
1515 jsr166 1.262 <!-- -XDcompilePolicy=simple or byfile avoids confusing UnusedImports -->
1516 jsr166 1.255 <target name="errorprone-jtreg"
1517     depends="jar"
1518     description="Run errorprone over jtreg tests (experimental)">
1519    
1520     <run-jtreg-tests
1521 jsr166 1.290 target="${java.runtime.target}"
1522 jsr166 1.255 workdir="${build.dir}"
1523     classes="${product.jar}"
1524     verbose="all">
1525     <jtreg-elements>
1526 jsr166 1.264 <arg value="-javacoption:-XDcompilePolicy=simple"/>
1527 jsr166 1.255 <arg value="-javacoption:-processorpath"/>
1528 jsr166 1.286 <arg value="-javacoption:${errorprone.processorpath}"/>
1529 jsr166 1.255 <arg value="-javacoption:-Xplugin:ErrorProne
1530 jsr166 1.261 ${errorprone.jsr166.flags}
1531     ${errorprone.jsr166.test.flags}
1532 jsr166 1.270 -Xep:MultipleTopLevelClasses:WARN
1533 jsr166 1.261 -Xep:NonAtomicVolatileUpdate:OFF"/>
1534 jsr166 1.255 </jtreg-elements>
1535     </run-jtreg-tests>
1536     </target>
1537    
1538 jsr166 1.236
1539 jsr166 1.229 <!-- ==============================================================
1540     Running guava tests against jsr166 code
1541     =================================================================== -->
1542    
1543     <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1544 jsr166 1.230 <!-- organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1545     <!-- <property name="guava.version" value="21.0"/> -->
1546 jsr166 1.229
1547     <!-- HOWTO debug print a path id -->
1548     <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1549     <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1550    
1551     <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1552     <!-- organisation="com.google.guava" module="guava-tests"/> -->
1553     <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1554     <!-- dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1555     <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1556     <!-- organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1557    
1558     <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1559     <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1560     <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1561     <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1562    
1563     <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1564     <!-- type="*" inline="true" conf="*(private),*(public)" -->
1565     <!-- pattern="${guava.dir}/[artifact].[ext]" -->
1566     <!-- organisation="com.google.guava" module="guava-testlib"/> -->
1567    
1568     <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1569     <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1570     <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1571    
1572     <target name="init-ivy">
1573     <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1574     dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1575     <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1576     classpath="${build.dir}/ivy.jar"/>
1577     </target>
1578    
1579     <target name="guava-tests" depends="jar, init-ivy"
1580     description="Guava tests run against jsr166 collections">
1581     <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1582     <mkdir dir="${guava.dir}"/>
1583     <ivy:retrieve pathid="guava.testlib.classpath"
1584     type="jar,bundle" inline="true" conf="default,master"
1585     pattern="${guava.dir}/[artifact].[ext]"
1586     organisation="com.google.guava" module="guava-testlib"/>
1587 jsr166 1.230 <property name="guava.version" value="21.0"/>
1588 jsr166 1.229 <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1589     dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1590     <junit printsummary="true" showoutput="true" haltonfailure="true"
1591 jsr166 1.247 jvm="${build.main.java}" fork="true">
1592 jsr166 1.252 <jvmarg line="-ea -esa --patch-module=java.base=${product.jar}"/>
1593 jsr166 1.229 <formatter type="brief"/>
1594     <classpath>
1595     <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1596     <path refid="guava.testlib.classpath"/>
1597     </classpath>
1598    
1599     <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1600     <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1601     </junit>
1602     </target>
1603 jsr166 1.130
1604 tim 1.1 </project>