ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.148
Committed: Sat Jul 20 18:26:16 2013 UTC (10 years, 9 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.147: +4 -29 lines
Log Message:
remove no-op *dist-clean targets; hide "internal" targets

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