ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.144
Committed: Sun Jul 14 19:55:04 2013 UTC (10 years, 9 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.143: +34 -7 lines
Log Message:
backport jsr166e to run on jdk6; backport all applicable tck tests from tck to tck-jsr166e

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