ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.147
Committed: Sat Jul 20 17:21:45 2013 UTC (10 years, 9 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.146: +5 -0 lines
Log Message:
add target jsr166e-test

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 value="-Xdoclint:all/protected"/>
297 <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
298 <compilerarg line="${build.args}"/>
299
300 </javac>
301 </target>
302
303
304 <target name="jar"
305 depends="compile"
306 description="Builds library jar from compiled sources">
307
308 <jar destfile="${product.jar}">
309 <fileset dir="${build.classes.dir}"/>
310 </jar>
311 </target>
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 line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
335 <arg value="-XDignore.symbol.file=true"/>
336 <arg value="-tag"/>
337 <arg value="${javadoc.jls.option}"/>
338 <arg value="-tag"/>
339 <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>
340 <arg value="-tag"/>
341 <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
342 <arg value="-tag"/>
343 <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
344 </javadoc>
345 </target>
346
347
348 <target name="dist"
349 depends="dist-clean, dist-jar, dist-docs"
350 description="Puts all distributable products in single hierarchy"/>
351
352
353 <target name="release"
354 depends="dist"
355 description="Puts entire CVS tree, plus distribution productions, in a jar">
356
357 <property name="release.jar" value="dist/jsr166-${version}-dist.jar"/>
358
359 <jar basedir="${basedir}" destfile="${release.jar}">
360 <!-- <exclude name="build/**"/> -->
361 <exclude name="${release.jar}"/>
362 <exclude name="user.properties"/>
363 <exclude name="etc/notes/**"/>
364 <exclude name="src/emulation/**"/>
365 <exclude name="**/SyntaxTest.java"/>
366 <exclude name="**/SuperfluousAbstract.java"/>
367 </jar>
368 </target>
369
370
371 <target name="clean"
372 description="Removes all build products">
373
374 <delete dir="${build.dir}"/>
375
376 </target>
377
378
379 <target name="dist-clean"
380 description="Removes all build and distribution products">
381
382 <delete dir="${dist.dir}"/>
383
384 </target>
385
386
387 <target name="dist-jar"
388 depends="clean, jar">
389 <copy file="${product.jar}" todir="${dist.dir}"/>
390 </target>
391
392 <target name="dist-docs"
393 depends="clean, docs">
394 <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
395 </target>
396
397
398 <target name="test-tck"
399 depends="jar"
400 description="Runs tck tests for main directly">
401
402 <run-tck-tests
403 target="8"
404 workdir="${build.dir}"
405 classes="${product.jar}"/>
406 </target>
407
408 <target name="test-jtreg"
409 depends="jar"
410 description="Runs jtreg tests for main using the jtreg ant task">
411 <run-jtreg-tests
412 target="8"
413 workdir="${build.dir}"
414 classes="${product.jar}"/>
415 </target>
416
417 <target name="test"
418 depends="test-tck, test-jtreg"
419 description="Runs tck and jtreg tests for main">
420 </target>
421
422
423
424 <target name="configure-compiler">
425
426 <property name="unchecked.option" value="-Xlint:unchecked"/>
427
428 <condition property="warnunchecked.arg" value="${unchecked.option}">
429 <istrue value="${build.warnunchecked}"/>
430 </condition>
431
432 <property name="warnunchecked.arg" value=""/>
433
434
435 <!-- Common options in javac invocations -->
436 <property name="build.args" value="${warnunchecked.arg}"/>
437
438 </target>
439
440
441
442 <!-- Various demos and test programs -->
443
444
445 <target name="loops" depends="configure-compiler"
446 description="Benchmark from Doug Lea's AQS paper">
447
448 <mkdir dir="${build.loops.dir}"/>
449
450 <javac srcdir="${loops.src.dir}"
451 destdir="${build.loops.dir}"
452 debug="${build.debug}"
453 debuglevel="${build.debuglevel}"
454 deprecation="${build.deprecation}"
455 source="${build.sourcelevel}"
456 fork="true">
457
458 <compilerarg line="${build.args}"/>
459 <classpath refid="loops.classpath"/>
460 <compilerarg value="-XDignore.symbol.file=true"/>
461
462 </javac>
463
464 <java classname="ALoops" fork="true">
465 <classpath refid="loops.classpath"/>
466 </java>
467
468 </target>
469
470
471 <!-- jsr166 4jdk7 -->
472
473 <target name="4jdk7compile"
474 depends="configure-compiler"
475 description="Compiles src/jdk7 sources, targeting jdk7">
476
477 <mkdir dir="${build.4jdk7.classes.dir}"/>
478
479 <javac srcdir="${4jdk7src.dir}"
480 destdir="${build.4jdk7.classes.dir}"
481 debug="${build.debug}"
482 debuglevel="${build.debuglevel}"
483 deprecation="${build.deprecation}"
484 source="6"
485 classpath=""
486 bootclasspath="${bootclasspath6}"
487 includeAntRuntime="false"
488 includeJavaRuntime="false"
489 executable="${javac7}"
490 fork="true">
491
492 <include name="**/*.java"/>
493 <compilerarg value="-Xprefer:source"/>
494 <compilerarg value="-XDignore.symbol.file=true"/>
495 <compilerarg value="-Xlint:all"/>
496 <compilerarg line="${build.args}"/>
497
498 </javac>
499 </target>
500
501
502 <target name="4jdk7jar"
503 depends="4jdk7compile"
504 description="Builds library jar from compiled sources">
505
506 <jar destfile="${4jdk7product.jar}">
507 <fileset dir="${build.4jdk7.classes.dir}"/>
508 </jar>
509
510 </target>
511
512
513 <target name="4jdk7-test-tck"
514 depends="4jdk7jar"
515 description="Runs tck tests for jsr166-4jdk7 directly">
516
517 <run-tck-tests
518 target="7"
519 workdir="${build.4jdk7.dir}"
520 classes="${4jdk7product.jar}">
521 <javac-elements>
522 <!-- JDK8+ test classes -->
523 <exclude name="*8Test.java"/>
524 <exclude name="DoubleAccumulatorTest.java"/>
525 <exclude name="DoubleAdderTest.java"/>
526 <exclude name="LongAccumulatorTest.java"/>
527 <exclude name="LongAdderTest.java"/>
528 <exclude name="CompletableFutureTest.java"/>
529 <exclude name="SplittableRandomTest.java"/>
530 <exclude name="StampedLockTest.java"/>
531 </javac-elements>
532 </run-tck-tests>
533 </target>
534
535
536 <target name="4jdk7-test-tck-junit"
537 depends="4jdk7compile"
538 description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">
539
540 <junit printsummary="true"
541 showoutput="true"
542 errorProperty="junit.failed"
543 failureProperty="junit.failed"
544 includeantruntime="true"
545 jvm="${java7}"
546 fork="true">
547
548 <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
549 <jvmarg value="-server"/>
550
551 <classpath>
552 <pathelement location="${junit.jar}"/>
553 <pathelement location="${build.4jdk7.tck.classes.dir}"/>
554 </classpath>
555
556 <formatter type="brief"/>
557
558 <test name="${jsr166.tckTestClass}" haltonfailure="no">
559 </test>
560
561 </junit>
562 </target>
563
564 <target name="4jdk7-test-jtreg"
565 depends="4jdk7jar"
566 description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">
567 <run-jtreg-tests
568 target="7"
569 workdir="${build.4jdk7.dir}"
570 classes="${4jdk7product.jar}"
571 jtregflags="-exclude:${jtreg.src.dir}/jdk8tests"/>
572 </target>
573
574
575 <target name="4jdk7-test"
576 depends="4jdk7-test-tck, 4jdk7-test-jtreg"
577 description="Runs tck and jtreg tests for jsr166-4jdk7">
578 </target>
579
580
581 <target name="4jdk7docs"
582 description="Builds javadocs for src/jdk7 to dist dir">
583
584 <delete dir="${4jdk7docs.dir}"/>
585 <mkdir dir="${4jdk7docs.dir}"/>
586
587 <javadoc destdir="${4jdk7docs.dir}"
588 packagenames="none"
589 link="${jdkapi7docs.url}"
590 overview="${4jdk7src.dir}/intro.html"
591 access="${build.javadoc.access}"
592 sourcepath="${4jdk7src.dir}:${jdk7src.dir}"
593 classpath=""
594 executable="${javadoc7}">
595 <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
596 <include name="**/*.java"/>
597 </fileset>
598 <arg value="-XDignore.symbol.file=true"/>
599 </javadoc>
600 </target>
601
602
603 <target name="4jdk7dist"
604 depends="4jdk7dist-jar, 4jdk7dist-docs"
605 description="Puts all distributable products in single hierarchy"/>
606
607
608 <target name="4jdk7clean"
609 description="Removes all 4jdk7 build products">
610
611 <delete dir="${build.4jdk7.dir}"/>
612
613 </target>
614
615
616 <target name="4jdk7dist-clean"
617 description="Removes all build and distribution products">
618
619 </target>
620
621 <target name="4jdk7dist-jar"
622 depends="4jdk7clean, 4jdk7jar">
623 <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
624 </target>
625
626
627 <target name="4jdk7dist-docs"
628 depends="4jdk7clean, 4jdk7docs">
629 <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
630 </target>
631
632
633 <!-- jsr166x -->
634
635 <target name="jsr166xcompile"
636 depends="configure-compiler"
637 description="Compiles jsr166x sources to build dir">
638
639 <mkdir dir="${build.jsr166x.classes.dir}"/>
640
641 <javac srcdir="${topsrc.dir}"
642 destdir="${build.jsr166x.classes.dir}"
643 debug="${build.debug}"
644 debuglevel="${build.debuglevel}"
645 deprecation="${build.deprecation}"
646 classpath=""
647 bootclasspath="${bootclasspath6}"
648 source="5"
649 includeAntRuntime="false"
650 includeJavaRuntime="false"
651 executable="${javac7}"
652 fork="true">
653
654 <include name="jsr166x/**/*.java"/>
655 <compilerarg value="-XDignore.symbol.file=true"/>
656 <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
657 <compilerarg line="${build.args}"/>
658
659 </javac>
660 </target>
661
662
663 <target name="jsr166xjar"
664 depends="jsr166xcompile"
665 description="Builds library jar from compiled sources">
666
667 <jar destfile="${jsr166x.jar}">
668 <fileset dir="${build.jsr166x.classes.dir}"/>
669 </jar>
670
671 </target>
672
673
674 <target name="jsr166xdocs"
675 description="Builds javadocs to dist dir">
676
677 <delete dir="${jsr166xdocs.dir}"/>
678 <mkdir dir="${jsr166xdocs.dir}"/>
679
680 <javadoc destdir="${jsr166xdocs.dir}"
681 packagenames="jsr166x.*"
682 link="${jdkapidocs.url}"
683 access="${build.javadoc.access}"
684 sourcepath="${topsrc.dir}:${jdk6src.dir}"
685 bootclasspath="${bootclasspath6}"
686 source="5"
687 executable="${javadoc7}">
688 <arg value="-XDignore.symbol.file=true"/>
689
690 </javadoc>
691 </target>
692
693
694 <target name="jsr166xdist"
695 depends="jsr166xdist-jar, jsr166xdist-docs"
696 description="Puts all distributable products in single hierarchy"/>
697
698
699 <target name="jsr166xclean"
700 description="Removes all jsr166x build products">
701
702 <delete dir="${build.jsr166x.dir}"/>
703
704 </target>
705
706
707 <target name="jsr166xdist-clean"
708 description="Removes all build and distribution products">
709
710 </target>
711
712
713 <target name="jsr166xdist-jar"
714 depends="jsr166xclean, jsr166xjar">
715 <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
716 </target>
717
718 <target name="jsr166xdist-docs"
719 depends="jsr166xclean, jsr166xdocs">
720 <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
721 </target>
722
723 <!-- jsr166y -->
724
725
726 <target name="jsr166ycompile"
727 depends="configure-compiler"
728 description="Compiles jsr166y sources">
729
730 <mkdir dir="${build.jsr166y.classes.dir}"/>
731
732 <javac srcdir="${topsrc.dir}"
733 destdir="${build.jsr166y.classes.dir}"
734 debug="${build.debug}"
735 debuglevel="${build.debuglevel}"
736 deprecation="${build.deprecation}"
737 source="6"
738 classpath=""
739 bootclasspath="${bootclasspath6}"
740 includeAntRuntime="false"
741 includeJavaRuntime="false"
742 executable="${javac7}"
743 fork="true">
744
745 <include name="jsr166y/**/*.java"/>
746 <compilerarg value="-XDignore.symbol.file=true"/>
747 <compilerarg value="-Xlint:all"/>
748 <compilerarg line="${build.args}"/>
749
750 </javac>
751 </target>
752
753
754 <target name="jsr166yjar"
755 depends="jsr166ycompile"
756 description="Builds library jar from compiled sources">
757
758 <jar destfile="${jsr166y.jar}" index="true">
759 <fileset dir="${build.jsr166y.classes.dir}"/>
760 </jar>
761
762 </target>
763
764
765 <target name="jsr166ydocs"
766 description="Builds javadocs to dist dir">
767
768 <delete dir="${jsr166ydocs.dir}"/>
769 <mkdir dir="${jsr166ydocs.dir}"/>
770
771 <javadoc destdir="${jsr166ydocs.dir}"
772 packagenames="jsr166y.*"
773 link="${jdkapidocs.url}"
774 access="${build.javadoc.access}"
775 sourcepath="${topsrc.dir}:${jdk6src.dir}"
776 bootclasspath="${bootclasspath6}"
777 source="6"
778 executable="${javadoc7}">
779 <arg value="-XDignore.symbol.file=true"/>
780
781 </javadoc>
782 </target>
783
784
785 <target name="jsr166ydist"
786 depends="jsr166ydist-jar, jsr166ydist-docs"
787 description="Puts all distributable products in single hierarchy"/>
788
789
790 <target name="jsr166yclean"
791 description="Removes all jsr166y build products">
792
793 <delete dir="${build.jsr166y.dir}"/>
794
795 </target>
796
797
798 <target name="jsr166ydist-clean"
799 description="Removes all build and distribution products">
800
801 </target>
802
803 <target name="jsr166ydist-jar"
804 depends="jsr166yclean, jsr166yjar">
805 <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
806 </target>
807
808 <target name="jsr166ydist-docs"
809 depends="jsr166yclean, jsr166ydocs">
810 <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
811 </target>
812
813
814 <!-- extra166y -->
815
816
817 <target name="extra166ycompile"
818 depends="configure-compiler, jsr166yjar"
819 description="Compiles extra166y sources">
820
821 <mkdir dir="${build.extra166y.classes.dir}"/>
822
823 <javac srcdir="${topsrc.dir}"
824 destdir="${build.extra166y.classes.dir}"
825 debug="${build.debug}"
826 debuglevel="${build.debuglevel}"
827 deprecation="${build.deprecation}"
828 bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
829 classpath=""
830 source="6"
831 includeAntRuntime="false"
832 includeJavaRuntime="false"
833 executable="${javac7}"
834 fork="true">
835
836 <include name="extra166y/**/*.java"/>
837 <compilerarg value="-XDignore.symbol.file=true"/>
838 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
839 <compilerarg line="${build.args}"/>
840
841 </javac>
842 </target>
843
844
845 <target name="extra166yjar"
846 depends="extra166ycompile"
847 description="Builds library jar from compiled sources">
848
849 <jar destfile="${extra166y.jar}" index="true">
850 <fileset dir="${build.extra166y.classes.dir}"/>
851 </jar>
852
853 </target>
854
855
856 <target name="extra166ydocs"
857 description="Builds javadocs to build dir">
858
859 <delete dir="${extra166ydocs.dir}"/>
860 <mkdir dir="${extra166ydocs.dir}"/>
861
862 <javadoc destdir="${extra166ydocs.dir}"
863 packagenames="extra166y.*"
864 link="${jdkapidocs.url}"
865 access="${build.javadoc.access}"
866 sourcepath="${topsrc.dir}:${jdk6src.dir}"
867 bootclasspath="${bootclasspath6}"
868 source="6"
869 executable="${javadoc7}">
870 <arg value="-XDignore.symbol.file=true"/>
871
872 </javadoc>
873 </target>
874
875
876 <target name="extra166ydist"
877 depends="extra166ydist-jar, extra166ydist-docs"
878 description="Puts all distributable products in single hierarchy"/>
879
880
881 <target name="extra166yclean"
882 description="Removes all extra166y build products">
883
884 <delete dir="${build.extra166y.dir}"/>
885
886 </target>
887
888
889 <target name="extra166ydist-clean"
890 description="Removes all build and distribution products">
891
892 </target>
893
894 <target name="extra166ydist-jar"
895 depends="extra166yclean, extra166yjar">
896 <copy file="${extra166y.jar}" todir="${dist.dir}"/>
897 </target>
898
899 <target name="extra166ydist-docs"
900 depends="extra166yclean, extra166ydocs">
901 <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
902 </target>
903
904 <!-- jsr166e -->
905
906 <property name="build.jsr166e.java.version" value="6"/>
907 <property name="build.jsr166e.javac" value="${javac6}"/>
908
909 <target name="jsr166ecompile"
910 depends="configure-compiler"
911 description="Compiles jsr166e sources">
912
913 <mkdir dir="${build.jsr166e.classes.dir}"/>
914
915 <javac srcdir="${topsrc.dir}"
916 destdir="${build.jsr166e.classes.dir}"
917 debug="${build.debug}"
918 debuglevel="${build.debuglevel}"
919 deprecation="${build.deprecation}"
920 source="${build.jsr166e.java.version}"
921 classpath=""
922 includeAntRuntime="false"
923 includeJavaRuntime="false"
924 executable="${build.jsr166e.javac}"
925 fork="true">
926
927 <include name="jsr166e/**/*.java"/>
928 <compilerarg value="-XDignore.symbol.file=true"/>
929 <compilerarg value="-Xlint:all"/>
930 <compilerarg line="${build.args}"/>
931
932 </javac>
933 </target>
934
935
936 <target name="jsr166ejar"
937 depends="jsr166ecompile"
938 description="Builds library jar from compiled sources">
939
940 <jar destfile="${jsr166e.jar}" index="true">
941 <fileset dir="${build.jsr166e.classes.dir}"/>
942 </jar>
943
944 </target>
945
946
947 <target name="jsr166edocs"
948 description="Builds javadocs to build dir">
949
950 <delete dir="${jsr166edocs.dir}"/>
951 <mkdir dir="${jsr166edocs.dir}"/>
952
953 <javadoc destdir="${jsr166edocs.dir}"
954 packagenames="jsr166e.*"
955 link="${jdkapidocs.url}"
956 access="${build.javadoc.access}"
957 sourcepath="${topsrc.dir}:${jdk6src.dir}"
958 source="${build.jsr166e.java.version}"
959 executable="${javadoc7}">
960 <arg value="-XDignore.symbol.file=true"/>
961
962 </javadoc>
963 </target>
964
965
966 <target name="jsr166e-test-tck-one-java-version"
967 depends="jsr166ejar"
968 description="Runs tck tests for jsr166e">
969
970 <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
971
972 <run-tck-tests
973 tck.src.dir="${test.src.dir}/tck-jsr166e"
974 target="${build.jsr166e.java.version}"
975 workdir="${build.jsr166e.dir}"
976 classes="${jsr166e.jar}"/>
977 </target>
978
979 <target name="jsr166e-test-tck"
980 description="Runs tck tests for jsr166e for multiple java versions">
981
982 <!-- <antcall target="clean"/> -->
983 <!-- <antcall target="jsr166e-test-tck-one-java-version"> -->
984 <!-- <param name="build.jsr166e.java.version" value="8"/> -->
985 <!-- <param name="build.jsr166e.javac" value="${javac8}"/> -->
986 <!-- </antcall> -->
987
988 <antcall target="clean"/>
989 <antcall target="jsr166e-test-tck-one-java-version">
990 <param name="build.jsr166e.java.version" value="7"/>
991 <param name="build.jsr166e.javac" value="${javac7}"/>
992 </antcall>
993
994 <antcall target="clean"/>
995 <antcall target="jsr166e-test-tck-one-java-version">
996 <param name="build.jsr166e.java.version" value="6"/>
997 <param name="build.jsr166e.javac" value="${javac6}"/>
998 </antcall>
999 </target>
1000
1001
1002 <target name="jsr166e-test"
1003 depends="jsr166e-test-tck"
1004 description="Runs all tests for jsr166e">
1005 </target>
1006
1007 <target name="jsr166edist"
1008 depends="jsr166edist-jar, jsr166edist-docs"
1009 description="Puts all distributable products in single hierarchy"/>
1010
1011
1012 <target name="jsr166eclean"
1013 description="Removes all jsr166e build products">
1014 <delete dir="${build.jsr166e.dir}"/>
1015 </target>
1016
1017
1018 <target name="jsr166edist-clean"
1019 description="Removes all build and distribution products">
1020
1021 </target>
1022
1023 <target name="jsr166edist-jar"
1024 depends="jsr166eclean, jsr166ejar">
1025 <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1026 </target>
1027
1028 <target name="jsr166edist-docs"
1029 depends="jsr166eclean, jsr166edocs">
1030 <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1031 </target>
1032
1033
1034 <!-- Find buglets that can be detected by static build tools -->
1035
1036 <target name="lint">
1037 <antcall target="dists">
1038 <param name="build.javadoc.access" value="private"/>
1039 </antcall>
1040 </target>
1041
1042
1043 </project>