ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.197
Committed: Fri Mar 4 21:00:45 2016 UTC (8 years, 1 month ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.196: +1 -0 lines
Log Message:
improve handling of timeouts/delays; give fastdebug VMs more time by default

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