ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.286
Committed: Wed Nov 21 21:05:59 2018 UTC (5 years, 5 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.285: +4 -3 lines
Log Message:
introduce errorprone.processorpath property (yet another level of indirection)

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