ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.291
Committed: Thu Dec 6 21:36:08 2018 UTC (5 years, 4 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.290: +1 -0 lines
Log Message:
add TODO

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