ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.279
Committed: Mon Oct 1 03:04:48 2018 UTC (5 years, 6 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.278: +3 -1 lines
Log Message:
pin java.docroot.url to java10.docroot.url until 8211194 is fixed

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