ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.265
Committed: Sun Feb 4 20:00:47 2018 UTC (6 years, 2 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.264: +20 -23 lines
Log Message:
force build.main.javadoc to be at least javadoc10, so we can start using --override-methods=summary

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