ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.299
Committed: Fri Jun 14 20:10:53 2019 UTC (4 years, 10 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.298: +33 -2 lines
Log Message:
support jdk14

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