ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.282
Committed: Tue Oct 9 01:34:19 2018 UTC (5 years, 6 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.281: +1 -0 lines
Log Message:
enable javadoc --frames for another release or two

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