ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.210
Committed: Mon Apr 18 15:30:49 2016 UTC (8 years ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.209: +1 -1 lines
Log Message:
improve comment

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