ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.290
Committed: Sun Dec 2 22:46:53 2018 UTC (5 years, 4 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.289: +34 -28 lines
Log Message:
update version-related properties

File Contents

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