ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.163
Committed: Fri Feb 20 22:33:13 2015 UTC (9 years, 2 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.162: +2 -1 lines
Log Message:
define tck jtreg, shorter aliases for test-* targets

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