ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.156
Committed: Wed Jun 25 08:29:01 2014 UTC (9 years, 10 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.155: +9 -4 lines
Log Message:
better sample ant commands

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