ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.176
Committed: Tue Sep 8 16:54:43 2015 UTC (8 years, 7 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.175: +2 -0 lines
Log Message:
fix up list of 4jdk7-tck excluded tests

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