ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.283
Committed: Wed Oct 24 22:31:14 2018 UTC (5 years, 6 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.282: +0 -22 lines
Log Message:
delete "release" target

File Contents

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