ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.206
Committed: Sun Mar 27 19:38:01 2016 UTC (8 years, 1 month ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.205: +10 -5 lines
Log Message:
sprinkle failonerror = "true" on most <javadoc> targets

File Contents

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