ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.191
Committed: Fri Nov 6 00:12:54 2015 UTC (8 years, 5 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.190: +1 -0 lines
Log Message:
always pair javac ant task source= with target=

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