ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.136
Committed: Tue Feb 5 03:39:35 2013 UTC (11 years, 2 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.135: +1 -0 lines
Log Message:
add ForkJoinPool8Test

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