ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.139
Committed: Thu May 2 21:38:03 2013 UTC (10 years, 11 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.138: +9 -0 lines
Log Message:
Add support for system properties to control tck runs

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