ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.134
Committed: Sun Feb 3 02:25:01 2013 UTC (11 years, 2 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.133: +1 -0 lines
Log Message:
add a comment

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 <!-- JDK8+ test classes -->
624 <exclude name="StampedLockTest.java"/>
625 </javac-elements>
626 </run-tck-tests>
627 </target>
628
629
630 <target name="4jdk7-test-tck-junit"
631 depends="4jdk7compile"
632 description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">
633
634 <junit printsummary="true"
635 showoutput="true"
636 errorProperty="junit.failed"
637 failureProperty="junit.failed"
638 includeantruntime="true"
639 jvm="${java7}"
640 fork="true">
641
642 <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
643 <jvmarg value="-server"/>
644
645 <classpath>
646 <pathelement location="${junit.jar}"/>
647 <pathelement location="${build.4jdk7.tck.classes.dir}"/>
648 </classpath>
649
650 <formatter type="brief"/>
651
652 <test name="JSR166TestCase" haltonfailure="no">
653 </test>
654
655 </junit>
656 </target>
657
658 <target name="4jdk7-test-jtreg"
659 depends="4jdk7compile"
660 description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">
661 <delete dir="${build.4jdk7.dir}/JTwork" quiet="true"/>
662 <delete dir="${build.4jdk7.dir}/JTreport" quiet="true"/>
663 <mkdir dir="${build.4jdk7.dir}/JTwork/scratch"/>
664 <mkdir dir="${build.4jdk7.dir}/JTreport"/>
665 <jtreg dir="${jtreg.src.dir}"
666 jdk="${jdk7.home}"
667 workDir="${build.4jdk7.dir}/JTwork"
668 reportDir="${build.4jdk7.dir}/JTreport">
669
670 <arg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
671 <arg value="-agentvm"/>
672 <arg value="-v:nopass,fail"/>
673 <arg value="-vmoptions:-esa -ea"/>
674 <arg value="-automatic"/>
675 <arg value="-k:!ignore"/>
676 </jtreg>
677 </target>
678
679
680 <target name="4jdk7-test"
681 depends="4jdk7-test-tck, 4jdk7-test-jtreg"
682 description="Runs tck and jtreg tests for jsr166-4jdk7">
683 </target>
684
685
686 <target name="4jdk7docs"
687 description="Builds javadocs for src/jdk7 to dist dir">
688
689 <delete dir="${4jdk7docs.dir}"/>
690 <mkdir dir="${4jdk7docs.dir}"/>
691
692 <javadoc destdir="${4jdk7docs.dir}"
693 packagenames="none"
694 link="${jdkapi7docs.url}"
695 overview="${4jdk7src.dir}/intro.html"
696 access="${build.javadoc.access}"
697 sourcepath="${4jdk7src.dir}:${jdk7src.dir}"
698 classpath=""
699 executable="${javadoc7}">
700 <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
701 <include name="**/*.java"/>
702 </fileset>
703 <arg value="-XDignore.symbol.file=true"/>
704 </javadoc>
705 </target>
706
707
708 <target name="4jdk7dist"
709 depends="4jdk7dist-jar, 4jdk7dist-docs"
710 description="Puts all distributable products in single hierarchy"/>
711
712
713 <target name="4jdk7clean"
714 description="Removes all 4jdk7 build products">
715
716 <delete dir="${build.4jdk7.dir}"/>
717
718 </target>
719
720
721 <target name="4jdk7dist-clean"
722 description="Removes all build and distribution products">
723
724 </target>
725
726 <target name="4jdk7dist-jar"
727 depends="4jdk7clean, 4jdk7jar">
728 <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
729 </target>
730
731
732 <target name="4jdk7dist-docs"
733 depends="4jdk7clean, 4jdk7docs">
734 <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
735 </target>
736
737
738 <!-- jsr166x -->
739
740 <target name="jsr166xcompile"
741 depends="configure-compiler"
742 description="Compiles jsr166x sources to build dir">
743
744 <mkdir dir="${build.jsr166x.classes.dir}"/>
745
746 <javac srcdir="${topsrc.dir}"
747 destdir="${build.jsr166x.classes.dir}"
748 debug="${build.debug}"
749 debuglevel="${build.debuglevel}"
750 deprecation="${build.deprecation}"
751 classpath=""
752 bootclasspath="${bootclasspath6}"
753 source="5"
754 includeAntRuntime="false"
755 includeJavaRuntime="false"
756 executable="${javac7}"
757 fork="true">
758
759 <include name="jsr166x/**/*.java"/>
760 <compilerarg value="-XDignore.symbol.file=true"/>
761 <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
762 <compilerarg line="${build.args}"/>
763
764 </javac>
765 </target>
766
767
768 <target name="jsr166xjar"
769 depends="jsr166xcompile"
770 description="Builds library jar from compiled sources">
771
772 <jar destfile="${jsr166x.jar}">
773 <fileset dir="${build.jsr166x.classes.dir}"/>
774 </jar>
775
776 </target>
777
778
779 <target name="jsr166xdocs"
780 description="Builds javadocs to dist dir">
781
782 <delete dir="${jsr166xdocs.dir}"/>
783 <mkdir dir="${jsr166xdocs.dir}"/>
784
785 <javadoc destdir="${jsr166xdocs.dir}"
786 packagenames="jsr166x.*"
787 link="${jdkapidocs.url}"
788 access="${build.javadoc.access}"
789 sourcepath="${topsrc.dir}:${jdk6src.dir}"
790 bootclasspath="${bootclasspath6}"
791 source="5"
792 executable="${javadoc7}">
793 <arg value="-XDignore.symbol.file=true"/>
794
795 </javadoc>
796 </target>
797
798
799 <target name="jsr166xdist"
800 depends="jsr166xdist-jar, jsr166xdist-docs"
801 description="Puts all distributable products in single hierarchy"/>
802
803
804 <target name="jsr166xclean"
805 description="Removes all jsr166x build products">
806
807 <delete dir="${build.jsr166x.dir}"/>
808
809 </target>
810
811
812 <target name="jsr166xdist-clean"
813 description="Removes all build and distribution products">
814
815 </target>
816
817
818 <target name="jsr166xdist-jar"
819 depends="jsr166xclean, jsr166xjar">
820 <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
821 </target>
822
823 <target name="jsr166xdist-docs"
824 depends="jsr166xclean, jsr166xdocs">
825 <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
826 </target>
827
828 <!-- jsr166y -->
829
830
831 <target name="jsr166ycompile"
832 depends="configure-compiler"
833 description="Compiles jsr166y sources">
834
835 <mkdir dir="${build.jsr166y.classes.dir}"/>
836
837 <javac srcdir="${topsrc.dir}"
838 destdir="${build.jsr166y.classes.dir}"
839 debug="${build.debug}"
840 debuglevel="${build.debuglevel}"
841 deprecation="${build.deprecation}"
842 source="6"
843 classpath=""
844 bootclasspath="${bootclasspath6}"
845 includeAntRuntime="false"
846 includeJavaRuntime="false"
847 executable="${javac7}"
848 fork="true">
849
850 <include name="jsr166y/**/*.java"/>
851 <compilerarg value="-XDignore.symbol.file=true"/>
852 <compilerarg value="-Xlint:all"/>
853 <compilerarg line="${build.args}"/>
854
855 </javac>
856 </target>
857
858
859 <target name="jsr166yjar"
860 depends="jsr166ycompile"
861 description="Builds library jar from compiled sources">
862
863 <jar destfile="${jsr166y.jar}" index="true">
864 <fileset dir="${build.jsr166y.classes.dir}"/>
865 </jar>
866
867 </target>
868
869
870 <target name="jsr166ydocs"
871 description="Builds javadocs to dist dir">
872
873 <delete dir="${jsr166ydocs.dir}"/>
874 <mkdir dir="${jsr166ydocs.dir}"/>
875
876 <javadoc destdir="${jsr166ydocs.dir}"
877 packagenames="jsr166y.*"
878 link="${jdkapidocs.url}"
879 access="${build.javadoc.access}"
880 sourcepath="${topsrc.dir}:${jdk6src.dir}"
881 bootclasspath="${bootclasspath6}"
882 source="6"
883 executable="${javadoc7}">
884 <arg value="-XDignore.symbol.file=true"/>
885
886 </javadoc>
887 </target>
888
889
890 <target name="jsr166ydist"
891 depends="jsr166ydist-jar, jsr166ydist-docs"
892 description="Puts all distributable products in single hierarchy"/>
893
894
895 <target name="jsr166yclean"
896 description="Removes all jsr166y build products">
897
898 <delete dir="${build.jsr166y.dir}"/>
899
900 </target>
901
902
903 <target name="jsr166ydist-clean"
904 description="Removes all build and distribution products">
905
906 </target>
907
908 <target name="jsr166ydist-jar"
909 depends="jsr166yclean, jsr166yjar">
910 <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
911 </target>
912
913 <target name="jsr166ydist-docs"
914 depends="jsr166yclean, jsr166ydocs">
915 <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
916 </target>
917
918
919 <!-- extra166y -->
920
921
922 <target name="extra166ycompile"
923 depends="configure-compiler, jsr166yjar"
924 description="Compiles extra166y sources">
925
926 <mkdir dir="${build.extra166y.classes.dir}"/>
927
928 <javac srcdir="${topsrc.dir}"
929 destdir="${build.extra166y.classes.dir}"
930 debug="${build.debug}"
931 debuglevel="${build.debuglevel}"
932 deprecation="${build.deprecation}"
933 bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
934 classpath=""
935 source="6"
936 includeAntRuntime="false"
937 includeJavaRuntime="false"
938 executable="${javac7}"
939 fork="true">
940
941 <include name="extra166y/**/*.java"/>
942 <compilerarg value="-XDignore.symbol.file=true"/>
943 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
944 <compilerarg line="${build.args}"/>
945
946 </javac>
947 </target>
948
949
950 <target name="extra166yjar"
951 depends="extra166ycompile"
952 description="Builds library jar from compiled sources">
953
954 <jar destfile="${extra166y.jar}" index="true">
955 <fileset dir="${build.extra166y.classes.dir}"/>
956 </jar>
957
958 </target>
959
960
961 <target name="extra166ydocs"
962 description="Builds javadocs to build dir">
963
964 <delete dir="${extra166ydocs.dir}"/>
965 <mkdir dir="${extra166ydocs.dir}"/>
966
967 <javadoc destdir="${extra166ydocs.dir}"
968 packagenames="extra166y.*"
969 link="${jdkapidocs.url}"
970 access="${build.javadoc.access}"
971 sourcepath="${topsrc.dir}:${jdk6src.dir}"
972 bootclasspath="${bootclasspath6}"
973 source="6"
974 executable="${javadoc7}">
975 <arg value="-XDignore.symbol.file=true"/>
976
977 </javadoc>
978 </target>
979
980
981 <target name="extra166ydist"
982 depends="extra166ydist-jar, extra166ydist-docs"
983 description="Puts all distributable products in single hierarchy"/>
984
985
986 <target name="extra166yclean"
987 description="Removes all extra166y build products">
988
989 <delete dir="${build.extra166y.dir}"/>
990
991 </target>
992
993
994 <target name="extra166ydist-clean"
995 description="Removes all build and distribution products">
996
997 </target>
998
999 <target name="extra166ydist-jar"
1000 depends="extra166yclean, extra166yjar">
1001 <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1002 </target>
1003
1004 <target name="extra166ydist-docs"
1005 depends="extra166yclean, extra166ydocs">
1006 <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1007 </target>
1008
1009 <!-- jsr166e -->
1010
1011 <target name="jsr166ecompile"
1012 depends="configure-compiler"
1013 description="Compiles jsr166e sources">
1014
1015 <mkdir dir="${build.jsr166e.classes.dir}"/>
1016
1017 <javac srcdir="${topsrc.dir}"
1018 destdir="${build.jsr166e.classes.dir}"
1019 debug="${build.debug}"
1020 debuglevel="${build.debuglevel}"
1021 deprecation="${build.deprecation}"
1022 source="7"
1023 classpath=""
1024 includeAntRuntime="false"
1025 includeJavaRuntime="false"
1026 executable="${javac7}"
1027 fork="true">
1028
1029 <include name="jsr166e/**/*.java"/>
1030 <compilerarg value="-XDignore.symbol.file=true"/>
1031 <compilerarg value="-Xlint:all"/>
1032 <compilerarg line="${build.args}"/>
1033
1034 </javac>
1035 </target>
1036
1037
1038 <target name="jsr166ejar"
1039 depends="jsr166ecompile"
1040 description="Builds library jar from compiled sources">
1041
1042 <jar destfile="${jsr166e.jar}" index="true">
1043 <fileset dir="${build.jsr166e.classes.dir}"/>
1044 </jar>
1045
1046 </target>
1047
1048
1049 <target name="jsr166edocs"
1050 description="Builds javadocs to build dir">
1051
1052 <delete dir="${jsr166edocs.dir}"/>
1053 <mkdir dir="${jsr166edocs.dir}"/>
1054
1055 <javadoc destdir="${jsr166edocs.dir}"
1056 packagenames="jsr166e.*"
1057 link="${jdkapidocs.url}"
1058 access="${build.javadoc.access}"
1059 sourcepath="${topsrc.dir}:${jdk7src.dir}"
1060 source="7"
1061 executable="${javadoc7}">
1062 <arg value="-XDignore.symbol.file=true"/>
1063
1064 </javadoc>
1065 </target>
1066
1067
1068 <target name="jsr166e-test-tck"
1069 depends="jsr166ejar"
1070 description="Runs tck tests for jsr166e">
1071
1072 <run-tck-tests
1073 tck.src.dir="${test.src.dir}/tck-jsr166e"
1074 source="7"
1075 target="8"
1076 workdir="${build.jsr166e.dir}"
1077 classes="${jsr166e.jar}"/>
1078 </target>
1079
1080
1081 <target name="jsr166edist"
1082 depends="jsr166edist-jar, jsr166edist-docs"
1083 description="Puts all distributable products in single hierarchy"/>
1084
1085
1086 <target name="jsr166eclean"
1087 description="Removes all jsr166e build products">
1088 <delete dir="${build.jsr166e.dir}"/>
1089 </target>
1090
1091
1092 <target name="jsr166edist-clean"
1093 description="Removes all build and distribution products">
1094
1095 </target>
1096
1097 <target name="jsr166edist-jar"
1098 depends="jsr166eclean, jsr166ejar">
1099 <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1100 </target>
1101
1102 <target name="jsr166edist-docs"
1103 depends="jsr166eclean, jsr166edocs">
1104 <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1105 </target>
1106
1107
1108 <!-- Find buglets that can be detected by static build tools -->
1109
1110 <target name="lint">
1111 <antcall target="dists">
1112 <param name="build.javadoc.access" value="private"/>
1113 </antcall>
1114 </target>
1115
1116
1117 </project>