ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.300
Committed: Sat Jul 13 18:31:40 2019 UTC (4 years, 9 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.299: +1 -0 lines
Log Message:
migrate to openjdk @jls taglet introduced in JDK-8224166

File Contents

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