ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.297
Committed: Mon Apr 29 14:16:38 2019 UTC (5 years ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.296: +1 -1 lines
Log Message:
The string "--" is not permitted within comments.

File Contents

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