ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.157
Committed: Tue Jul 8 00:01:39 2014 UTC (9 years, 9 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.156: +4 -6 lines
Log Message:
update the jdk docroots

File Contents

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