ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.221
Committed: Sat Oct 8 21:39:24 2016 UTC (7 years, 6 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.220: +3 -3 lines
Log Message:
sync javadoc command line with jdk 9 build

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