ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.133
Committed: Sun Feb 3 02:16:08 2013 UTC (11 years, 2 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.132: +2 -0 lines
Log Message:
never compile against jsr166 class files in rt.jar

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