ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.159
Committed: Fri Oct 3 23:18:13 2014 UTC (9 years, 6 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.158: +4 -0 lines
Log Message:
Document jdk$N.home variables

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