ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.201
Committed: Sat Mar 26 12:35:25 2016 UTC (8 years, 1 month ago) by dl
Content type: text/xml
Branch: MAIN
Changes since 1.200: +7 -2 lines
Log Message:
remove Contended stub

File Contents

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