ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.289
Committed: Sun Dec 2 22:40:03 2018 UTC (5 years, 4 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.288: +1 -0 lines
Log Message:
add breadcrumb for --frames

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