ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.162
Committed: Mon Feb 2 07:30:53 2015 UTC (9 years, 2 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.161: +1 -1 lines
Log Message:
use -Xbootclasspath/p: to work with jigsaw-ified jdk9

File Contents

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