ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.293
Committed: Thu Dec 13 01:15:07 2018 UTC (5 years, 4 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.292: +3 -1 lines
Log Message:
start on jdk13 !

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