ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.216
Committed: Tue Aug 30 00:01:22 2016 UTC (7 years, 7 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.215: +3 -2 lines
Log Message:
make jdk9 docs target work again!

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