ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.202
Committed: Sat Mar 26 15:10:14 2016 UTC (8 years, 1 month ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.201: +5 -4 lines
Log Message:
update ant usage message

File Contents

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