ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.141
Committed: Tue Jun 18 19:03:50 2013 UTC (10 years, 10 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.140: +2 -1 lines
Log Message:
fix 4jdk7-test-jtreg target by introducing jdk8test exclude file

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