ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.239
Committed: Sun Mar 26 10:40:29 2017 UTC (7 years, 1 month ago) by dl
Content type: text/xml
Branch: MAIN
Changes since 1.238: +4 -1 lines
Log Message:
Remove old targets from "dists"

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