ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.132
Committed: Fri Feb 1 21:58:27 2013 UTC (11 years, 3 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.131: +7 -1 lines
Log Message:
support jdk8-specific tck tests

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