ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.218
Committed: Sat Sep 10 04:06:10 2016 UTC (7 years, 7 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.217: +3 -3 lines
Log Message:
switch from -Xpatch to --patch-module

File Contents

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