ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.303
Committed: Tue Sep 17 16:20:44 2019 UTC (4 years, 7 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.302: +3 -2 lines
Log Message:
update java13.docroot.url for jdk13 GA

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