ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.281
Committed: Sun Oct 7 03:56:13 2018 UTC (5 years, 6 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.280: +1 -4 lines
Log Message:
cleanup

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