ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.138
Committed: Fri Mar 22 18:04:56 2013 UTC (11 years, 1 month ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.137: +10 -6 lines
Log Message:
fix broken tck targets

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