ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.277
Committed: Wed Sep 26 16:11:08 2018 UTC (5 years, 7 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.276: +1 -1 lines
Log Message:
http -> https

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