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