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