ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.275
Committed: Wed Jul 18 01:16:42 2018 UTC (5 years, 9 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.274: +13 -1 lines
Log Message:
add usual boilerplate jdk version support for jdk12

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