ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.261
Committed: Sat Jan 20 01:54:14 2018 UTC (6 years, 3 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.260: +31 -42 lines
Log Message:
upgrade to errorprone 2.2.0; refactor errorprone flags

File Contents

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