ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.151
Committed: Sun Feb 16 14:25:46 2014 UTC (10 years, 2 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.150: +35 -8 lines
Log Message:
use jdk9 by default

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