ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.152
Committed: Tue Feb 25 16:33:15 2014 UTC (10 years, 2 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.151: +29 -18 lines
Log Message:
Run javadoc with -Xdocrootparent to fix broken links

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