ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.269
Committed: Wed Mar 21 23:10:39 2018 UTC (6 years, 1 month ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.268: +6 -6 lines
Log Message:
rename lint-private to doclint-private; comment out "lint" target

File Contents

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