ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.174
Committed: Thu Sep 3 01:38:44 2015 UTC (8 years, 7 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.173: +23 -25 lines
Log Message:
s/test-jtreg/jtreg/g; s/test-tck/tck/g;

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 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="DoubleAccumulatorTest.java"/>
674 <exclude name="DoubleAdderTest.java"/>
675 <exclude name="LongAccumulatorTest.java"/>
676 <exclude name="LongAdderTest.java"/>
677 <exclude name="CompletableFutureTest.java"/>
678 <exclude name="SplittableRandomTest.java"/>
679 <exclude name="StampedLockTest.java"/>
680 </javac-elements>
681 </run-tck-tests>
682 </target>
683
684
685 <target name="4jdk7-tck-junit"
686 depends="4jdk7compile"
687 description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">
688
689 <junit printsummary="true"
690 showoutput="true"
691 errorProperty="junit.failed"
692 failureProperty="junit.failed"
693 includeantruntime="true"
694 jvm="${java7}"
695 fork="true">
696
697 <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
698 <jvmarg value="-server"/>
699
700 <classpath>
701 <pathelement location="${junit.jar}"/>
702 <pathelement location="${build.4jdk7.tck.classes.dir}"/>
703 </classpath>
704
705 <formatter type="brief"/>
706
707 <test name="${jsr166.tckTestClass}" haltonfailure="no">
708 </test>
709
710 </junit>
711 </target>
712
713 <target name="4jdk7-jtreg"
714 depends="4jdk7jar"
715 description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">
716 <run-jtreg-tests
717 target="7"
718 workdir="${build.4jdk7.dir}"
719 classes="${4jdk7product.jar}"/>
720 </target>
721
722
723 <target name="4jdk7-test"
724 depends="4jdk7-tck, 4jdk7-jtreg"
725 description="Runs tck and jtreg tests for jsr166-4jdk7">
726 </target>
727
728
729 <target name="4jdk7docs"
730 description="Builds javadocs for src/jdk7 to dist dir">
731
732 <delete dir="${4jdk7docs.dir}"/>
733 <mkdir dir="${4jdk7docs.dir}"/>
734
735 <javadoc destdir="${4jdk7docs.dir}"
736 packagenames="none"
737 link="${java7.api.url}"
738 overview="${4jdk7src.dir}/intro.html"
739 access="${build.javadoc.access}"
740 sourcepath="${4jdk7src.dir}:${jdk7src.dir}"
741 classpath=""
742 executable="${javadoc7}">
743 <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
744 <include name="**/*.java"/>
745 </fileset>
746 <arg line="-Xdocrootparent ${java7.docroot.url}"/>
747 <arg value="-XDignore.symbol.file=true"/>
748 </javadoc>
749 </target>
750
751
752 <target name="4jdk7dist"
753 depends="4jdk7dist-jar, 4jdk7dist-docs"
754 description="Puts all distributable products in single hierarchy"/>
755
756
757 <target name="4jdk7clean"
758 description="Removes all 4jdk7 build products">
759
760 <delete dir="${build.4jdk7.dir}"/>
761
762 </target>
763
764
765 <target name="4jdk7dist-jar"
766 depends="4jdk7clean, 4jdk7jar">
767 <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
768 </target>
769
770
771 <target name="4jdk7dist-docs"
772 depends="4jdk7clean, 4jdk7docs">
773 <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
774 </target>
775
776
777 <!-- jsr166x -->
778
779 <target name="jsr166xcompile"
780 depends="configure-compiler"
781 description="Compiles jsr166x sources to build dir">
782
783 <mkdir dir="${build.jsr166x.classes.dir}"/>
784
785 <javac srcdir="${topsrc.dir}"
786 destdir="${build.jsr166x.classes.dir}"
787 debug="${build.debug}"
788 debuglevel="${build.debuglevel}"
789 deprecation="${build.deprecation}"
790 classpath=""
791 bootclasspath="${bootclasspath6}"
792 source="5"
793 includeAntRuntime="false"
794 includeJavaRuntime="false"
795 executable="${javac7}"
796 fork="true">
797
798 <include name="jsr166x/**/*.java"/>
799 <compilerarg value="-XDignore.symbol.file=true"/>
800 <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
801 <compilerarg value="-Werror"/>
802 <compilerarg line="${build.args}"/>
803
804 </javac>
805 </target>
806
807
808 <target name="jsr166xjar"
809 depends="jsr166xcompile"
810 description="Builds library jar from compiled sources">
811
812 <jar destfile="${jsr166x.jar}">
813 <fileset dir="${build.jsr166x.classes.dir}"/>
814 </jar>
815
816 </target>
817
818
819 <target name="jsr166xdocs"
820 description="Builds javadocs to dist dir">
821
822 <delete dir="${jsr166xdocs.dir}"/>
823 <mkdir dir="${jsr166xdocs.dir}"/>
824
825 <javadoc destdir="${jsr166xdocs.dir}"
826 packagenames="jsr166x.*"
827 link="${java.api.url}"
828 access="${build.javadoc.access}"
829 sourcepath="${topsrc.dir}:${jdk6src.dir}"
830 bootclasspath="${bootclasspath6}"
831 source="5"
832 executable="${javadoc7}">
833 <arg line="-Xdocrootparent ${java.docroot.url}"/>
834 <arg value="-XDignore.symbol.file=true"/>
835
836 </javadoc>
837 </target>
838
839
840 <target name="jsr166xdist"
841 depends="jsr166xdist-jar, jsr166xdist-docs"
842 description="Puts all distributable products in single hierarchy"/>
843
844
845 <target name="jsr166xclean"
846 description="Removes all jsr166x build products">
847
848 <delete dir="${build.jsr166x.dir}"/>
849
850 </target>
851
852
853 <target name="jsr166xdist-jar"
854 depends="jsr166xclean, jsr166xjar">
855 <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
856 </target>
857
858 <target name="jsr166xdist-docs"
859 depends="jsr166xclean, jsr166xdocs">
860 <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
861 </target>
862
863 <!-- jsr166y -->
864
865
866 <target name="jsr166ycompile"
867 depends="configure-compiler"
868 description="Compiles jsr166y sources">
869
870 <mkdir dir="${build.jsr166y.classes.dir}"/>
871
872 <javac srcdir="${topsrc.dir}"
873 destdir="${build.jsr166y.classes.dir}"
874 debug="${build.debug}"
875 debuglevel="${build.debuglevel}"
876 deprecation="${build.deprecation}"
877 source="6"
878 classpath=""
879 bootclasspath="${bootclasspath6}"
880 includeAntRuntime="false"
881 includeJavaRuntime="false"
882 executable="${javac7}"
883 fork="true">
884
885 <include name="jsr166y/**/*.java"/>
886 <compilerarg value="-XDignore.symbol.file=true"/>
887 <compilerarg value="-Xlint:all"/>
888 <compilerarg value="-Werror"/>
889 <compilerarg line="${build.args}"/>
890
891 </javac>
892 </target>
893
894
895 <target name="jsr166yjar"
896 depends="jsr166ycompile"
897 description="Builds library jar from compiled sources">
898
899 <jar destfile="${jsr166y.jar}" index="true">
900 <fileset dir="${build.jsr166y.classes.dir}"/>
901 </jar>
902
903 </target>
904
905
906 <target name="jsr166ydocs"
907 description="Builds javadocs to dist dir">
908
909 <delete dir="${jsr166ydocs.dir}"/>
910 <mkdir dir="${jsr166ydocs.dir}"/>
911
912 <javadoc destdir="${jsr166ydocs.dir}"
913 packagenames="jsr166y.*"
914 link="${java.api.url}"
915 access="${build.javadoc.access}"
916 sourcepath="${topsrc.dir}:${jdk6src.dir}"
917 bootclasspath="${bootclasspath6}"
918 source="6"
919 executable="${javadoc7}">
920 <arg line="-Xdocrootparent ${java.docroot.url}"/>
921 <arg value="-XDignore.symbol.file=true"/>
922
923 </javadoc>
924 </target>
925
926
927 <target name="jsr166ydist"
928 depends="jsr166ydist-jar, jsr166ydist-docs"
929 description="Puts all distributable products in single hierarchy"/>
930
931
932 <target name="jsr166yclean"
933 description="Removes all jsr166y build products">
934
935 <delete dir="${build.jsr166y.dir}"/>
936
937 </target>
938
939
940 <target name="jsr166ydist-jar"
941 depends="jsr166yclean, jsr166yjar">
942 <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
943 </target>
944
945 <target name="jsr166ydist-docs"
946 depends="jsr166yclean, jsr166ydocs">
947 <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
948 </target>
949
950
951 <!-- extra166y -->
952
953
954 <target name="extra166ycompile"
955 depends="configure-compiler, jsr166yjar"
956 description="Compiles extra166y sources">
957
958 <mkdir dir="${build.extra166y.classes.dir}"/>
959
960 <javac srcdir="${topsrc.dir}"
961 destdir="${build.extra166y.classes.dir}"
962 debug="${build.debug}"
963 debuglevel="${build.debuglevel}"
964 deprecation="${build.deprecation}"
965 bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
966 classpath=""
967 source="6"
968 includeAntRuntime="false"
969 includeJavaRuntime="false"
970 executable="${javac7}"
971 fork="true">
972
973 <include name="extra166y/**/*.java"/>
974 <compilerarg value="-XDignore.symbol.file=true"/>
975 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
976 <compilerarg value="-Werror"/>
977 <compilerarg line="${build.args}"/>
978
979 </javac>
980 </target>
981
982
983 <target name="extra166yjar"
984 depends="extra166ycompile"
985 description="Builds library jar from compiled sources">
986
987 <jar destfile="${extra166y.jar}" index="true">
988 <fileset dir="${build.extra166y.classes.dir}"/>
989 </jar>
990
991 </target>
992
993
994 <target name="extra166ydocs"
995 description="Builds javadocs to build dir">
996
997 <delete dir="${extra166ydocs.dir}"/>
998 <mkdir dir="${extra166ydocs.dir}"/>
999
1000 <javadoc destdir="${extra166ydocs.dir}"
1001 packagenames="extra166y.*"
1002 link="${java.api.url}"
1003 access="${build.javadoc.access}"
1004 sourcepath="${topsrc.dir}:${jdk6src.dir}"
1005 bootclasspath="${bootclasspath6}"
1006 source="6"
1007 executable="${javadoc7}">
1008 <arg line="-Xdocrootparent ${java.docroot.url}"/>
1009 <arg value="-XDignore.symbol.file=true"/>
1010
1011 </javadoc>
1012 </target>
1013
1014
1015 <target name="extra166ydist"
1016 depends="extra166ydist-jar, extra166ydist-docs"
1017 description="Puts all distributable products in single hierarchy"/>
1018
1019
1020 <target name="extra166yclean"
1021 description="Removes all extra166y build products">
1022
1023 <delete dir="${build.extra166y.dir}"/>
1024
1025 </target>
1026
1027
1028 <target name="extra166ydist-jar"
1029 depends="extra166yclean, extra166yjar">
1030 <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1031 </target>
1032
1033 <target name="extra166ydist-docs"
1034 depends="extra166yclean, extra166ydocs">
1035 <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1036 </target>
1037
1038 <!-- jsr166e -->
1039
1040 <property name="build.jsr166e.java.version" value="6"/>
1041 <property name="build.jsr166e.javac" value="${javac6}"/>
1042
1043 <target name="jsr166ecompile"
1044 depends="configure-compiler"
1045 description="Compiles jsr166e sources">
1046
1047 <mkdir dir="${build.jsr166e.classes.dir}"/>
1048
1049 <javac srcdir="${topsrc.dir}"
1050 destdir="${build.jsr166e.classes.dir}"
1051 debug="${build.debug}"
1052 debuglevel="${build.debuglevel}"
1053 deprecation="${build.deprecation}"
1054 source="${build.jsr166e.java.version}"
1055 classpath=""
1056 includeAntRuntime="false"
1057 includeJavaRuntime="false"
1058 executable="${build.jsr166e.javac}"
1059 fork="true">
1060
1061 <include name="jsr166e/**/*.java"/>
1062 <compilerarg value="-XDignore.symbol.file=true"/>
1063 <compilerarg value="-Xlint:all"/>
1064 <compilerarg value="-Werror"/>
1065 <compilerarg line="${build.args}"/>
1066
1067 </javac>
1068 </target>
1069
1070 <!-- jsr166e: find doclint errors -->
1071 <target name="jsr166edoclint">
1072
1073 <mkdir dir="${build.jsr166e.classes.dir}"/>
1074
1075 <javac srcdir="${topsrc.dir}"
1076 destdir="${build.jsr166e.classes.dir}"
1077 debug="${build.debug}"
1078 debuglevel="${build.debuglevel}"
1079 deprecation="${build.deprecation}"
1080 source="${build.jsr166e.java.version}"
1081 classpath=""
1082 bootclasspath="${bootclasspath7}"
1083 includeAntRuntime="false"
1084 includeJavaRuntime="false"
1085 executable="${javac8}"
1086 fork="true">
1087
1088 <include name="jsr166e/**/*.java"/>
1089 <compilerarg value="-XDignore.symbol.file=true"/>
1090 <compilerarg value="-Xlint:all"/>
1091 <compilerarg value="-Werror"/>
1092 <compilerarg value="-Xdoclint:all/protected"/>
1093
1094 </javac>
1095 </target>
1096
1097
1098 <target name="jsr166ejar"
1099 depends="jsr166ecompile"
1100 description="Builds library jar from compiled sources">
1101
1102 <jar destfile="${jsr166e.jar}" index="true">
1103 <fileset dir="${build.jsr166e.classes.dir}"/>
1104 </jar>
1105
1106 </target>
1107
1108
1109 <target name="jsr166edocs"
1110 description="Builds javadocs to build dir">
1111
1112 <delete dir="${jsr166edocs.dir}"/>
1113 <mkdir dir="${jsr166edocs.dir}"/>
1114
1115 <javadoc destdir="${jsr166edocs.dir}"
1116 packagenames="jsr166e.*"
1117 link="${java.api.url}"
1118 access="${build.javadoc.access}"
1119 sourcepath="${topsrc.dir}:${jdk6src.dir}"
1120 source="${build.jsr166e.java.version}"
1121 executable="${javadoc7}">
1122 <arg line="-Xdocrootparent ${java.docroot.url}"/>
1123 <arg value="-XDignore.symbol.file=true"/>
1124
1125 </javadoc>
1126 </target>
1127
1128
1129 <target name="jsr166e-tck-one-java-version"
1130 depends="jsr166ejar">
1131
1132 <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
1133
1134 <run-tck-tests
1135 tck.src.dir="${test.src.dir}/tck-jsr166e"
1136 target="${build.jsr166e.java.version}"
1137 workdir="${build.jsr166e.dir}"
1138 classes="${jsr166e.jar}"/>
1139 </target>
1140
1141 <target name="jsr166e-tck"
1142 description="Runs tck tests for jsr166e for multiple java versions">
1143
1144 <!-- <antcall target="clean"/> -->
1145 <!-- <antcall target="jsr166e-tck-one-java-version"> -->
1146 <!-- <param name="build.jsr166e.java.version" value="8"/> -->
1147 <!-- <param name="build.jsr166e.javac" value="${javac8}"/> -->
1148 <!-- </antcall> -->
1149
1150 <antcall target="clean"/>
1151 <antcall target="jsr166e-tck-one-java-version">
1152 <param name="build.jsr166e.java.version" value="7"/>
1153 <param name="build.jsr166e.javac" value="${javac7}"/>
1154 </antcall>
1155
1156 <antcall target="clean"/>
1157 <antcall target="jsr166e-tck-one-java-version">
1158 <param name="build.jsr166e.java.version" value="6"/>
1159 <param name="build.jsr166e.javac" value="${javac6}"/>
1160 </antcall>
1161 </target>
1162
1163
1164 <target name="jsr166e-test"
1165 depends="jsr166e-tck"
1166 description="Runs all tests for jsr166e">
1167 </target>
1168
1169 <target name="jsr166edist"
1170 depends="jsr166edist-jar, jsr166edist-docs"
1171 description="Puts all distributable products in single hierarchy"/>
1172
1173
1174 <target name="jsr166eclean"
1175 description="Removes all jsr166e build products">
1176 <delete dir="${build.jsr166e.dir}"/>
1177 </target>
1178
1179
1180 <target name="jsr166edist-jar"
1181 depends="jsr166eclean, jsr166ejar">
1182 <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1183 </target>
1184
1185 <target name="jsr166edist-docs"
1186 depends="jsr166eclean, jsr166edocs">
1187 <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1188 </target>
1189
1190
1191 <!-- Find buglets that can be detected by static build tools -->
1192
1193 <target name="lint">
1194 <antcall target="dists">
1195 <param name="build.javadoc.access" value="public"/>
1196 </antcall>
1197 </target>
1198
1199 <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1200 <target name="lint-private">
1201 <antcall target="dist">
1202 <param name="build.javadoc.access" value="private"/>
1203 </antcall>
1204 </target>
1205
1206
1207 </project>