ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.218
Committed: Sat Sep 10 04:06:10 2016 UTC (7 years, 7 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.217: +3 -3 lines
Log Message:
switch from -Xpatch to --patch-module

File Contents

# Content
1 <project name="jsr166" default="usage"
2 xmlns:if="ant:if" xmlns:unless="ant:unless">
3
4 <description>
5 ------------------------------------------------------------------------------
6 Build file for JSR-166
7
8 Usage: ant [target]
9
10 See http://gee.cs.oswego.edu/dl/concurrency-interest/index.html for
11 more details.
12
13 User-specific settings are read from user.properties.
14 See user.properties.sample for an explanation of some useful settings.
15
16 The repository contains all dependencies except for ant and the JDK
17 itself. Because the JDK version matters and because different
18 targets require different JDKs, we assume that users have created a
19 hierarchy containing:
20 $HOME/jdk/jdk6
21 $HOME/jdk/jdk7
22 $HOME/jdk/jdk8
23 $HOME/jdk/jdk9
24 where each of the above is a JDK or a symlink to same, and
25 $HOME/jdk/src/jdk6
26 $HOME/jdk/src/jdk7
27 $HOME/jdk/src/jdk8
28 $HOME/jdk/src/jdk9
29 where each of the above is a complete JDK source tree
30 (e.g. mercurial forest) or a symlink to same.
31
32 Alternatively, define ant variables thus:
33 ant -Djdk$N.home=... -Djdk$N.src.home=...
34 for $N in 6 7 8 9 ...
35
36 As of 2016-03, the sources in src/main are for jdk9+ only. The "docs"
37 target is currently broken.
38 ------------------------------------------------------------------------------
39 </description>
40
41 <!-- Run 'ant -projecthelp' (default target) -->
42 <target name="usage">
43 <java classname="org.apache.tools.ant.Main">
44 <arg value="-projecthelp" />
45 </java>
46 </target>
47
48 <!-- HOWTO printf debug: <echo message="prop=${prop}"/> -->
49
50 <!-- User-specific settings -->
51 <property file="user.properties"/>
52
53
54 <!-- Compilation options -->
55 <property name="build.sourcelevel" value="6"/>
56 <property name="build.debug" value="true"/>
57 <property name="build.debuglevel" value="source,lines,vars"/>
58 <property name="build.deprecation" value="false"/>
59 <property name="build.javadoc.access" value="protected"/>
60
61 <!-- Build locations -->
62 <property name="build.dir" location="build"/>
63 <property name="build.classes.dir" location="${build.dir}/classes"/>
64 <property name="build.testcases.dir" location="${build.dir}/testcases"/>
65 <property name="build.loops.dir" location="${build.dir}/loops"/>
66 <property name="build.reports.dir" location="${build.dir}/reports"/>
67
68 <property name="build.4jdk7.dir" location="${build.dir}/jsr166-4jdk7"/>
69 <property name="build.4jdk7.classes.dir" location="${build.4jdk7.dir}/classes"/>
70 <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/>
71 <property name="build.4jdk7.docs.dir" location="${build.4jdk7.dir}/docs"/>
72
73 <property name="build.4jdk8.dir" location="${build.dir}/jsr166-4jdk8"/>
74 <property name="build.4jdk8.classes.dir" location="${build.4jdk8.dir}/classes"/>
75 <property name="build.4jdk8.tck.classes.dir" location="${build.4jdk8.dir}/tck-classes"/>
76 <property name="build.4jdk8.docs.dir" location="${build.4jdk8.dir}/docs"/>
77
78 <property name="build.jsr166x.dir" location="${build.dir}/jsr166x"/>
79 <property name="build.jsr166y.dir" location="${build.dir}/jsr166y"/>
80 <property name="build.jsr166e.dir" location="${build.dir}/jsr166e"/>
81 <property name="build.extra166y.dir" location="${build.dir}/extra166y"/>
82
83 <property name="build.jsr166x.classes.dir" location="${build.jsr166x.dir}/classes"/>
84 <property name="build.jsr166y.classes.dir" location="${build.jsr166y.dir}/classes"/>
85 <property name="build.jsr166e.classes.dir" location="${build.jsr166e.dir}/classes"/>
86 <property name="build.extra166y.classes.dir" location="${build.extra166y.dir}/classes"/>
87
88 <!-- JDK locations -->
89 <property name="jdks.home" location="${user.home}/jdk"/>
90
91 <macrodef name="defjdklocations">
92 <attribute name="v"/>
93 <sequential>
94 <property name="jdk@{v}.home" location="${jdks.home}/jdk@{v}"/>
95 <property name="java@{v}" location="${jdk@{v}.home}/bin/java"/>
96 <property name="javac@{v}" location="${jdk@{v}.home}/bin/javac"/>
97 <property name="javadoc@{v}" location="${jdk@{v}.home}/bin/javadoc"/>
98 <property name="jdk@{v}.src.home" location="${jdks.home}/src/jdk@{v}"/>
99 <local name="have.java.base"/>
100 <available property="have.java.base"
101 file="${jdk@{v}.src.home}/jdk/src/java.base/share/classes" type="dir"/>
102 <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/java.base/share/classes"
103 if:set="have.java.base"/>
104 <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/share/classes"
105 unless:set="have.java.base"/>
106 <local name="modules"/>
107 <available property="modules" file="${jdk@{v}.home}/jmods" type="dir"/>
108 <local name="boot.jar.dir"/>
109 <property name="boot.jar.dir" location="${jdk@{v}.home}/jre/lib" unless:set="modules"/>
110 <path id="bootclasspath@{v}" unless:set="modules">
111 <pathelement path="${boot.jar.dir}/resources.jar"/>
112 <pathelement path="${boot.jar.dir}/rt.jar"/>
113 <pathelement path="${boot.jar.dir}/jsse.jar"/>
114 <pathelement path="${boot.jar.dir}/jce.jar"/>
115 <pathelement path="${boot.jar.dir}/charsets.jar"/>
116 </path>
117 <property name="bootclasspath@{v}" value="${toString:bootclasspath@{v}}" unless:set="modules"/>
118 </sequential>
119 </macrodef>
120
121 <macrodef name="mirror-dir">
122 <attribute name="src"/>
123 <attribute name="dst"/>
124 <sequential>
125 <delete dir="@{dst}"/>
126 <mkdir dir="@{dst}"/>
127 <copy todir="@{dst}" preservelastmodified="true">
128 <fileset dir="@{src}"/>
129 </copy>
130 </sequential>
131 </macrodef>
132
133 <defjdklocations v="6"/>
134 <defjdklocations v="7"/>
135 <defjdklocations v="8"/>
136 <defjdklocations v="9"/>
137
138 <!-- Source locations -->
139 <property name="src.dir" location="${basedir}/src/main"/>
140 <property name="test.src.dir" location="${basedir}/src/test"/>
141 <property name="loops.src.dir" location="${basedir}/src/loops"/>
142 <property name="tck.src.dir" location="${test.src.dir}/tck"/>
143 <property name="jtreg7.src.dir" location="${test.src.dir}/jtreg-jdk7"/>
144 <property name="jtreg8.src.dir" location="${test.src.dir}/jtreg-jdk8"/>
145 <property name="jtreg9.src.dir" location="${test.src.dir}/jtreg"/>
146 <property name="jtreg.src.dir" location="${jtreg9.src.dir}"/>
147 <property name="lib.dir" location="${basedir}/lib"/>
148 <property name="dist.dir" location="${basedir}/dist"/>
149 <property name="topsrc.dir" location="${basedir}/src"/>
150 <property name="4jdk7src.dir" location="${topsrc.dir}/jdk7"/>
151 <property name="4jdk8src.dir" location="${topsrc.dir}/jdk8"/>
152 <property name="jsr166xsrc.dir" location="${topsrc.dir}/jsr166x"/>
153 <property name="jsr166ysrc.dir" location="${topsrc.dir}/jsr166y"/>
154 <property name="jsr166esrc.dir" location="${topsrc.dir}/jsr166e"/>
155 <property name="extra166ysrc.dir" location="${topsrc.dir}/extra166y"/>
156
157 <!-- Javadoc locations -->
158 <property name="docs.dir" location="${build.dir}/docs"/>
159 <property name="4jdk7docs.dir" location="${build.4jdk7.dir}/docs"/>
160 <property name="4jdk8docs.dir" location="${build.4jdk8.dir}/docs"/>
161 <property name="jsr166xdocs.dir" location="${build.jsr166x.dir}/docs"/>
162 <property name="jsr166ydocs.dir" location="${build.jsr166y.dir}/docs"/>
163 <property name="jsr166edocs.dir" location="${build.jsr166e.dir}/docs"/>
164 <property name="extra166ydocs.dir" location="${build.extra166y.dir}/docs"/>
165
166 <property name="dist.docs.dir" location="${dist.dir}/docs"/>
167 <property name="dist.4jdk7docs.dir" location="${dist.dir}/jsr166-4jdk7docs"/>
168 <property name="dist.4jdk8docs.dir" location="${dist.dir}/jsr166-4jdk8docs"/>
169 <property name="dist.jsr166xdocs.dir" location="${dist.dir}/jsr166xdocs"/>
170 <property name="dist.jsr166ydocs.dir" location="${dist.dir}/jsr166ydocs"/>
171 <property name="dist.jsr166edocs.dir" location="${dist.dir}/jsr166edocs"/>
172 <property name="dist.extra166ydocs.dir" location="${dist.dir}/extra166ydocs"/>
173
174 <!-- Jar locations -->
175 <property name="product.jar" location="${build.dir}/jsr166.jar"/>
176 <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>
177 <property name="4jdk8product.jar" location="${build.4jdk8.dir}/jsr166-4jdk8.jar"/>
178 <property name="jsr166x.jar" location="${build.jsr166x.dir}/jsr166x.jar"/>
179 <property name="jsr166y.jar" location="${build.jsr166y.dir}/jsr166y.jar"/>
180 <property name="jsr166e.jar" location="${build.jsr166e.dir}/jsr166e.jar"/>
181 <property name="extra166y.jar" location="${build.extra166y.dir}/extra166y.jar"/>
182 <property name="junit.jar" location="${lib.dir}/junit.jar"/>
183
184 <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
185 <property name="java5.docroot.url" value="http://docs.oracle.com/javase/1.5.0/docs"/>
186 <property name="java6.docroot.url" value="http://docs.oracle.com/javase/6/docs"/>
187 <property name="java7.docroot.url" value="http://docs.oracle.com/javase/7/docs"/>
188 <property name="java8.docroot.url" value="http://docs.oracle.com/javase/8/docs"/>
189 <!-- The expected canonical location does not yet exist as of 2016-04 -->
190 <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->
191 <property name="java9.docroot.url" value="http://download.java.net/java/jdk9/docs"/>
192 <!-- Default jdk doc location (latest stable release seems best) -->
193 <property name="java.docroot.url" value="${java8.docroot.url}"/>
194
195 <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
196 <property name="java5.api.url" value="${java5.docroot.url}/api/"/>
197 <property name="java6.api.url" value="${java6.docroot.url}/api/"/>
198 <property name="java7.api.url" value="${java7.docroot.url}/api/"/>
199 <property name="java8.api.url" value="${java8.docroot.url}/api/"/>
200 <property name="java9.api.url" value="${java9.docroot.url}/api/"/>
201 <property name="java.api.url" value="${java.docroot.url}/api/"/>
202
203 <!-- Define the "jtreg" task -->
204 <!-- See the docs in "jtreg -onlineHelp" -->
205 <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant"
206 classpath="${lib.dir}/jtreg.jar" />
207
208 <!-- Tck options; see JSR166TestCase.java
209 To profile a single tck test class:
210 ant -Djsr166.profileTests=true -Djsr166.profileThreshold=10 -Djsr166.tckTestClass=CompletableFutureTest tck
211 To stress test a single tck test class:
212 ant -Djsr166.tckTestClass=CountedCompleterTest -Djsr166.runsPerTest=100 tck
213 To stress test a single tck test method:
214 ant -Djsr166.tckTestClass=RecursiveTaskTest -Djsr166.runsPerTest=1000 -Djsr166.methodFilter=testAbnormalInvokeAll3 tck
215 -->
216 <property name="jsr166.tckTestClass" value="JSR166TestCase"/>
217 <macrodef name="run-tck-tests">
218 <attribute name="tck.src.dir" default="${tck.src.dir}"/>
219 <attribute name="target"/>
220 <attribute name="compile-target" default="@{target}"/>
221 <attribute name="workdir"/>
222 <attribute name="classes"/>
223 <!--
224 <attribute name="jvmflags" default="-XX:+UseParallelGC -XX:-UseBiasedLocking -ea -esa -Djsr166.testImplementationDetails=true"/>
225 -->
226 <attribute name="jvmflags" default="-ea -esa -Djsr166.testImplementationDetails=true"/>
227 <element name="javac-elements" optional="true"/>
228
229 <sequential>
230
231 <local name="modules"/>
232 <condition property="modules">
233 <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>
234 </condition>
235
236 <mkdir dir="@{workdir}/tck-classes"/>
237
238 <javac srcdir="@{tck.src.dir}"
239 destdir="@{workdir}/tck-classes"
240 debug="${build.debug}"
241 debuglevel="${build.debuglevel}"
242 deprecation="${build.deprecation}"
243 source="@{compile-target}"
244 target="@{compile-target}"
245 classpath="${junit.jar}"
246 includeAntRuntime="false"
247 includeJavaRuntime="false"
248 executable="${javac@{compile-target}}"
249 fork="true">
250
251 <include name="*.java"/>
252 <compilerarg value="-XDignore.symbol.file=true"/>
253 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
254 <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
255 <compilerarg line="--patch-module java.base=${build.classes.dir}/java.base" if:set="modules"/>
256 <compilerarg line="${build.args}"/>
257 <javac-elements/>
258
259 </javac>
260
261 <java classname="${jsr166.tckTestClass}"
262 failonerror="true"
263 jvm="${java@{target}}"
264 fork="true">
265 <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
266 <jvmarg line="--patch-module java.base=${build.classes.dir}/java.base" if:set="modules"/>
267 <jvmarg line="@{jvmflags}"/>
268 <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
269 <jvmarg line="${vmoptions}" if:set="vmoptions"/>
270
271 <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
272 <syspropertyset id="system-properties-used-by-tck">
273 <propertyref prefix="java.util.concurrent.ForkJoinPool"/>
274 <propertyref prefix="jsr166."/>
275 <propertyref name="test.timeout.factor"/>
276 </syspropertyset>
277
278 <classpath>
279 <pathelement location="${junit.jar}"/>
280 <pathelement location="@{workdir}/tck-classes"/>
281 </classpath>
282 </java>
283
284 </sequential>
285 </macrodef>
286
287 <!-- Define jtreg test sets for different jdk versions -->
288 <fileset dir="${jtreg9.src.dir}">
289 <patternset id="jdk9.jtreg.tests">
290 <include name="**/*.java"/>
291 </patternset>
292 </fileset>
293
294 <fileset dir="${jtreg8.src.dir}">
295 <patternset id="jdk8.jtreg.tests">
296 <include name="**/*.java"/>
297 <exclude name="**/SpliteratorCharacteristics.java"/>
298 <!-- https://bugs.openjdk.java.net/browse/JDK-6842353 -->
299 <exclude name="**/GCDuringIteration.java"/>
300 </patternset>
301 </fileset>
302
303 <fileset dir="${jtreg7.src.dir}">
304 <patternset id="jdk7.jtreg.tests">
305 <include name="**/*.java"/>
306 </patternset>
307 </fileset>
308
309 <!-- ant -Djtreg.flags=-timeoutFactor:4 -->
310 <property name="jtreg.flags" value=""/>
311
312 <macrodef name="run-jtreg-tests">
313 <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->
314 <attribute name="source" default="7"/>
315 <attribute name="target"/>
316 <attribute name="workdir"/>
317 <attribute name="classes"/>
318 <attribute name="jtregflags" default=""/>
319
320 <sequential>
321
322 <!-- ant -Djtreg.verbose=time,fail,error jtreg -->
323 <property name="jtreg.verbose" value="nopass,fail,error"/>
324
325 <local name="modules"/>
326 <condition property="modules">
327 <available file="${jdk@{target}.home}/jmods" type="dir"/>
328 </condition>
329
330 <delete dir="@{workdir}/JTwork" quiet="true"/>
331 <delete dir="@{workdir}/JTreport" quiet="true"/>
332 <jtreg dir="${jtreg@{target}.src.dir}"
333 jdk="${jdk@{target}.home}"
334 workDir="@{workdir}/JTwork"
335 reportDir="@{workdir}/JTreport">
336 <patternset refid="jdk@{target}.jtreg.tests"/>
337 <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
338 <arg value="-vmoptions:--patch-module java.base=${build.classes.dir}/java.base" if:set="modules"/>
339 <arg value="-agentvm"/>
340 <arg value="-verbose:${jtreg.verbose}"/>
341 <arg value="-vmoptions:-esa -ea"/>
342 <arg value="-automatic"/>
343 <arg value="-k:!ignore"/>
344 <arg line="@{jtregflags}"/>
345 <arg line="${jtreg.flags}"/>
346 </jtreg>
347 </sequential>
348 </macrodef>
349
350 <!-- ALoops classpath -->
351 <path id="loops.classpath">
352 <pathelement location="${build.loops.dir}"/>
353 </path>
354
355 <!-- Support @jls tag, used in jdk8+ javadoc -->
356 <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
357 <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
358
359 <!-- Main targets -->
360
361 <property name="build.main.java.version" value="9"/>
362 <property name="build.main.javac" value="${javac9}"/>
363
364 <target name="dists"
365 depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
366 description="Builds all public jars and docs"/>
367
368 <target name="compile"
369 depends="configure-compiler"
370 description="Compiles src/main sources to build dir">
371
372 <local name="modules"/>
373 <condition property="modules">
374 <and>
375 <available file="${jdk9.home}/jmods" type="dir"/>
376 <equals arg1="9" arg2="${build.main.java.version}"/>
377 </and>
378 </condition>
379
380 <local name="destdir"/>
381 <property name="destdir" value="${build.classes.dir}/java.base" if:set="modules"/>
382 <property name="destdir" value="${build.classes.dir}" unless:set="modules"/>
383
384 <mkdir dir="${destdir}"/>
385
386 <javac srcdir="${src.dir}"
387 destdir="${destdir}"
388 debug="${build.debug}"
389 debuglevel="${build.debuglevel}"
390 deprecation="${build.deprecation}"
391 classpath=""
392 includeAntRuntime="false"
393 includeJavaRuntime="false"
394 executable="${build.main.javac}"
395 fork="true">
396
397 <include name="**/*.java"/>
398 <compilerarg value="-Xmodule:java.base" if:set="modules"/>
399 <compilerarg value="-Xprefer:source"/>
400 <compilerarg value="-XDignore.symbol.file=true"/>
401 <compilerarg value="-Xlint:all"/>
402 <compilerarg value="-Werror"/>
403 <compilerarg value="-Xdoclint:all/protected"/>
404 <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
405 <compilerarg line="${build.args}"/>
406
407 </javac>
408 </target>
409
410
411 <target name="jar"
412 depends="compile"
413 description="Builds library jar for src/main from compiled sources">
414 <local name="subdir"/>
415 <available property="subdir" file="${build.classes.dir}/java.base" type="dir" value="/java.base"/>
416 <jar destfile="${product.jar}">
417 <fileset dir="${build.classes.dir}${subdir}"/>
418 <manifest>
419 <attribute name="Built-By" value="${user.name}"/>
420 <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
421 </manifest>
422 </jar>
423 </target>
424
425
426 <target name="docs"
427 description="Builds javadocs for src/main to dist dir">
428
429 <delete dir="${docs.dir}"/>
430 <mkdir dir="${docs.dir}"/>
431
432 <!-- the packagenames="none" hack below prevents scanning the -->
433 <!-- sourcepath for packages -->
434
435 <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
436 <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
437 <javadoc destdir="${docs.dir}"
438 packagenames="none"
439 link="${java9.api.url}"
440 overview="${src.dir}/intro.html"
441 access="${build.javadoc.access}"
442 sourcepath="${src.dir}"
443 classpath=""
444 executable="${javadoc9}">
445 <fileset dir="${src.dir}" defaultexcludes="yes">
446 <include name="**/*.java"/>
447 </fileset>
448 <arg line="-Xdocrootparent ${java9.docroot.url}"/>
449 <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
450 <arg value="-XDignore.symbol.file=true"/>
451 <arg value="-Xmodule:java.base"/>
452 <arg value="-tag"/>
453 <arg value="${javadoc.jls.option}"/>
454 <arg value="-tag"/>
455 <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>
456 <arg value="-tag"/>
457 <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
458 <arg value="-tag"/>
459 <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
460 <!-- tags added in jdk9 -->
461 <arg value="-tag"/>
462 <arg value="revised:X"/>
463 <arg value="-tag"/>
464 <arg value="spec:X"/>
465 </javadoc>
466 </target>
467
468
469 <target name="dist"
470 depends="dist-clean, dist-jar, dist-docs"
471 description="Puts all distributable products in single hierarchy"/>
472
473
474 <target name="release"
475 depends="dist"
476 description="Puts entire CVS tree, plus distribution productions, in a jar">
477
478 <property name="release.jar" value="dist/jsr166-${version}-dist.jar"/>
479
480 <jar basedir="${basedir}" destfile="${release.jar}">
481 <!-- <exclude name="build/**"/> -->
482 <exclude name="${release.jar}"/>
483 <exclude name="user.properties"/>
484 <exclude name="etc/notes/**"/>
485 <exclude name="src/emulation/**"/>
486 <exclude name="**/SyntaxTest.java"/>
487 <exclude name="**/SuperfluousAbstract.java"/>
488 <manifest>
489 <attribute name="Built-By" value="${user.name}"/>
490 <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
491 </manifest>
492 </jar>
493 </target>
494
495
496 <target name="clean"
497 description="Removes all build products">
498
499 <delete dir="${build.dir}"/>
500
501 </target>
502
503
504 <target name="dist-clean"
505 description="Removes all build and distribution products">
506
507 <delete dir="${build.dir}"/>
508 <delete dir="${dist.dir}"/>
509
510 </target>
511
512
513 <target name="dist-jar"
514 depends="clean, jar">
515 <copy file="${product.jar}" todir="${dist.dir}"/>
516 </target>
517
518 <target name="dist-docs"
519 depends="clean, docs">
520 <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
521 </target>
522
523 <target name="tck"
524 depends="jar"
525 description="Runs tck tests for src/main directly">
526
527 <run-tck-tests
528 target="${build.main.java.version}"
529 workdir="${build.dir}"
530 classes="${product.jar}"/>
531 </target>
532
533 <target name="tck-parallelism-1"
534 description="Runs tck with common pool parallelism 1">
535 <antcall target="tck">
536 <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
537 </antcall>
538 </target>
539
540 <target name="tck-parallelism-0"
541 description="Runs tck with common pool parallelism 0">
542 <antcall target="tck">
543 <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
544 </antcall>
545 </target>
546
547 <target name="tck-security-manager"
548 description="Runs tck with a security manager">
549 <antcall target="tck">
550 <param name="jsr166.useSecurityManager" value="true"/>
551 </antcall>
552 </target>
553
554 <target name="jtreg"
555 depends="jar"
556 description="Runs jtreg tests for src/main using the jtreg ant task">
557 <run-jtreg-tests
558 target="${build.main.java.version}"
559 workdir="${build.dir}"
560 classes="${product.jar}"/>
561 </target>
562
563 <target name="test"
564 depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
565 description="Runs tck and jtreg tests for src/main">
566 </target>
567
568 <!-- <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->
569
570 <!-- <antcall target="jtreg"> -->
571 <!-- <param name="build.main.java.version" value="8"/> -->
572 <!-- <param name="build.main.javac" value="${javac8}"/> -->
573 <!-- </antcall> -->
574
575 <!-- </target> -->
576
577 <!-- <target name="test89" -->
578 <!-- description="Runs tck and jtreg tests for src/main for multiple java versions"> -->
579
580 <!-- <antcall target="clean"/> -->
581 <!-- <antcall target="test"> -->
582 <!-- <param name="build.main.java.version" value="8"/> -->
583 <!-- <param name="build.main.javac" value="${javac8}"/> -->
584 <!-- </antcall> -->
585
586 <!-- <antcall target="clean"/> -->
587 <!-- <antcall target="test"> -->
588 <!-- <param name="build.main.java.version" value="9"/> -->
589 <!-- <param name="build.main.javac" value="${javac9}"/> -->
590 <!-- </antcall> -->
591
592 <!-- </target> -->
593
594
595
596 <target name="configure-compiler">
597 <fail message="ant version too old">
598 <condition>
599 <not> <antversion atleast="1.9.1"/> </not>
600 </condition>
601 </fail>
602
603 <property name="unchecked.option" value="-Xlint:unchecked"/>
604
605 <condition property="warnunchecked.arg" value="${unchecked.option}">
606 <istrue value="${build.warnunchecked}"/>
607 </condition>
608
609 <property name="warnunchecked.arg" value=""/>
610
611
612 <!-- Common options in javac invocations -->
613 <property name="build.args" value="${warnunchecked.arg}"/>
614
615 </target>
616
617
618
619 <!-- Various demos and test programs -->
620
621
622 <!-- description="Benchmark from Doug Lea's AQS paper" -->
623 <target name="loops" depends="configure-compiler">
624
625 <mkdir dir="${build.loops.dir}"/>
626
627 <javac srcdir="${loops.src.dir}"
628 destdir="${build.loops.dir}"
629 debug="${build.debug}"
630 debuglevel="${build.debuglevel}"
631 deprecation="${build.deprecation}"
632 source="${build.sourcelevel}"
633 target="${build.sourcelevel}"
634 fork="true">
635
636 <compilerarg line="${build.args}"/>
637 <classpath refid="loops.classpath"/>
638 <compilerarg value="-XDignore.symbol.file=true"/>
639
640 </javac>
641
642 <java classname="ALoops" fork="true">
643 <classpath refid="loops.classpath"/>
644 </java>
645
646 </target>
647
648
649 <target name="compile-test-loops" depends="jar"
650 description="compile all the perf tests in src/test/loops">
651
652 <mkdir dir="${build.dir}/test/loops"/>
653
654 <javac srcdir="${basedir}/src/test/loops"
655 destdir="${build.dir}/test/loops"
656 debug="${build.debug}"
657 debuglevel="${build.debuglevel}"
658 deprecation="${build.deprecation}"
659 includeAntRuntime="false"
660 includeJavaRuntime="false"
661 executable="${javac9}"
662 fork="true">
663
664 <include name="*.java"/>
665 <compilerarg value="-XDignore.symbol.file=true"/>
666 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
667 <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
668 <compilerarg line="${build.args}"/>
669
670 </javac>
671
672 </target>
673
674
675 <!-- jsr166 4jdk8 -->
676
677 <target name="4jdk8compile"
678 depends="configure-compiler"
679 description="Compiles src/jdk8 sources, targeting jdk8">
680
681 <mkdir dir="${build.4jdk8.classes.dir}"/>
682
683 <javac srcdir="${4jdk8src.dir}"
684 destdir="${build.4jdk8.classes.dir}"
685 debug="${build.debug}"
686 debuglevel="${build.debuglevel}"
687 deprecation="${build.deprecation}"
688 source="8"
689 target="8"
690 classpath=""
691 bootclasspath="${bootclasspath8}"
692 includeAntRuntime="false"
693 includeJavaRuntime="false"
694 executable="${javac8}"
695 fork="true">
696
697 <include name="**/*.java"/>
698 <compilerarg value="-Xprefer:source"/>
699 <compilerarg value="-XDignore.symbol.file=true"/>
700 <compilerarg value="-Xlint:all"/>
701 <compilerarg value="-Werror"/>
702 <compilerarg line="${build.args}"/>
703
704 </javac>
705 </target>
706
707 <target name="4jdk8doclint"
708 depends="configure-compiler"
709 description="Finds doclint warnings">
710
711 <mkdir dir="${build.4jdk8.classes.dir}"/>
712
713 <javac srcdir="${4jdk8src.dir}"
714 destdir="${build.4jdk8.classes.dir}"
715 debug="${build.debug}"
716 debuglevel="${build.debuglevel}"
717 deprecation="${build.deprecation}"
718 source="8"
719 target="8"
720 classpath=""
721 bootclasspath="${bootclasspath8}"
722 includeAntRuntime="false"
723 includeJavaRuntime="false"
724 executable="${javac8}"
725 fork="true">
726
727 <include name="**/*.java"/>
728 <compilerarg value="-Xprefer:source"/>
729 <compilerarg value="-XDignore.symbol.file=true"/>
730 <compilerarg value="-Xlint:all"/>
731 <compilerarg value="-Xdoclint:all/protected"/>
732 <compilerarg line="${build.args}"/>
733
734 </javac>
735 </target>
736
737
738 <target name="4jdk8jar"
739 depends="4jdk8compile"
740 description="Builds library jar from compiled sources">
741
742 <jar destfile="${4jdk8product.jar}">
743 <fileset dir="${build.4jdk8.classes.dir}"/>
744 <manifest>
745 <attribute name="Built-By" value="${user.name}"/>
746 <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
747 </manifest>
748 </jar>
749
750 </target>
751
752
753 <target name="4jdk8-tck"
754 depends="4jdk8jar"
755 description="Runs tck tests for jsr166-4jdk8 directly">
756
757 <run-tck-tests
758 target="8"
759 workdir="${build.4jdk8.dir}"
760 classes="${4jdk8product.jar}">
761 <javac-elements>
762 <!-- JDK9+ test classes -->
763 <exclude name="*9Test.java"/>
764 <exclude name="*10Test.java"/>
765 </javac-elements>
766 </run-tck-tests>
767 </target>
768
769
770 <target name="4jdk8-jtreg"
771 depends="4jdk8jar"
772 description="Runs jtreg tests for jsr166-4jdk8 using the jtreg ant task">
773 <run-jtreg-tests
774 target="8"
775 workdir="${build.4jdk8.dir}"
776 classes="${4jdk8product.jar}"/>
777 </target>
778
779
780 <target name="4jdk8-test"
781 depends="4jdk8-tck, 4jdk8-jtreg"
782 description="Runs tck and jtreg tests for jsr166-4jdk8">
783 </target>
784
785
786 <target name="4jdk8docs"
787 description="Builds javadocs for src/jdk8 to dist dir">
788
789 <delete dir="${4jdk8docs.dir}"/>
790 <mkdir dir="${4jdk8docs.dir}"/>
791
792 <javadoc destdir="${4jdk8docs.dir}"
793 packagenames="none"
794 link="${java8.api.url}"
795 overview="${4jdk8src.dir}/intro.html"
796 access="${build.javadoc.access}"
797 sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
798 classpath=""
799 executable="${javadoc8}"
800 failonerror = "true">
801 <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
802 <include name="**/*.java"/>
803 </fileset>
804 <arg line="-Xdocrootparent ${java8.docroot.url}"/>
805 <arg value="-XDignore.symbol.file=true"/>
806 <arg value="-tag"/>
807 <arg value="${javadoc.jls.option}"/>
808 <arg value="-tag"/>
809 <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>
810 <arg value="-tag"/>
811 <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
812 <arg value="-tag"/>
813 <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
814 </javadoc>
815 </target>
816
817
818 <target name="4jdk8dist"
819 depends="4jdk8dist-jar, 4jdk8dist-docs"
820 description="Puts all distributable products in single hierarchy"/>
821
822
823 <target name="4jdk8clean"
824 description="Removes all 4jdk8 build products">
825
826 <delete dir="${build.4jdk8.dir}"/>
827
828 </target>
829
830
831 <target name="4jdk8dist-jar"
832 depends="4jdk8clean, 4jdk8jar">
833 <copy file="${4jdk8product.jar}" todir="${dist.dir}"/>
834 </target>
835
836
837 <target name="4jdk8dist-docs"
838 depends="4jdk8clean, 4jdk8docs">
839 <mirror-dir src="${4jdk8docs.dir}" dst="${dist.4jdk8docs.dir}"/>
840 </target>
841
842
843
844 <!-- jsr166 4jdk7 -->
845
846 <target name="4jdk7compile"
847 depends="configure-compiler"
848 description="Compiles src/jdk7 sources, targeting jdk7">
849
850 <mkdir dir="${build.4jdk7.classes.dir}"/>
851
852 <javac srcdir="${4jdk7src.dir}"
853 destdir="${build.4jdk7.classes.dir}"
854 debug="${build.debug}"
855 debuglevel="${build.debuglevel}"
856 deprecation="${build.deprecation}"
857 source="6"
858 target="6"
859 classpath=""
860 bootclasspath="${bootclasspath6}"
861 includeAntRuntime="false"
862 includeJavaRuntime="false"
863 executable="${javac7}"
864 fork="true">
865
866 <include name="**/*.java"/>
867 <compilerarg value="-Xprefer:source"/>
868 <compilerarg value="-XDignore.symbol.file=true"/>
869 <compilerarg value="-Xlint:all"/>
870 <compilerarg value="-Werror"/>
871 <compilerarg line="${build.args}"/>
872
873 </javac>
874 </target>
875
876 <target name="4jdk7doclint"
877 depends="configure-compiler"
878 description="Finds doclint warnings">
879
880 <mkdir dir="${build.4jdk7.classes.dir}"/>
881
882 <javac srcdir="${4jdk7src.dir}"
883 destdir="${build.4jdk7.classes.dir}"
884 debug="${build.debug}"
885 debuglevel="${build.debuglevel}"
886 deprecation="${build.deprecation}"
887 source="6"
888 target="6"
889 classpath=""
890 bootclasspath="${bootclasspath6}"
891 includeAntRuntime="false"
892 includeJavaRuntime="false"
893 executable="${javac8}"
894 fork="true">
895
896 <include name="**/*.java"/>
897 <compilerarg value="-Xprefer:source"/>
898 <compilerarg value="-XDignore.symbol.file=true"/>
899 <compilerarg value="-Xlint:all"/>
900 <compilerarg value="-Xdoclint:all/protected"/>
901 <compilerarg line="${build.args}"/>
902
903 </javac>
904 </target>
905
906
907 <target name="4jdk7jar"
908 depends="4jdk7compile"
909 description="Builds library jar from compiled sources">
910
911 <jar destfile="${4jdk7product.jar}">
912 <fileset dir="${build.4jdk7.classes.dir}"/>
913 <manifest>
914 <attribute name="Built-By" value="${user.name}"/>
915 <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
916 </manifest>
917 </jar>
918
919 </target>
920
921
922 <target name="4jdk7-tck"
923 depends="4jdk7jar"
924 description="Runs tck tests for jsr166-4jdk7 directly">
925
926 <run-tck-tests
927 target="7"
928 workdir="${build.4jdk7.dir}"
929 classes="${4jdk7product.jar}">
930 <javac-elements>
931 <!-- JDK8+ test classes -->
932 <exclude name="*8Test.java"/>
933 <exclude name="*9Test.java"/>
934 <exclude name="*10Test.java"/>
935 <exclude name="DoubleAccumulatorTest.java"/>
936 <exclude name="DoubleAdderTest.java"/>
937 <exclude name="LongAccumulatorTest.java"/>
938 <exclude name="LongAdderTest.java"/>
939 <exclude name="CompletableFutureTest.java"/>
940 <exclude name="SplittableRandomTest.java"/>
941 <exclude name="StampedLockTest.java"/>
942 <exclude name="SubmissionPublisherTest.java"/>
943 </javac-elements>
944 </run-tck-tests>
945 </target>
946
947
948 <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
949 <target name="4jdk7-tck-junit"
950 depends="4jdk7compile">
951
952 <junit printsummary="true"
953 showoutput="true"
954 errorProperty="junit.failed"
955 failureProperty="junit.failed"
956 includeantruntime="true"
957 jvm="${java7}"
958 fork="true">
959
960 <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
961 <jvmarg value="-server"/>
962
963 <classpath>
964 <pathelement location="${junit.jar}"/>
965 <pathelement location="${build.4jdk7.tck.classes.dir}"/>
966 </classpath>
967
968 <formatter type="brief"/>
969
970 <test name="${jsr166.tckTestClass}" haltonfailure="no">
971 </test>
972
973 </junit>
974 </target>
975
976 <target name="4jdk7-jtreg"
977 depends="4jdk7jar"
978 description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">
979 <run-jtreg-tests
980 target="7"
981 workdir="${build.4jdk7.dir}"
982 classes="${4jdk7product.jar}"/>
983 </target>
984
985
986 <target name="4jdk7-test"
987 depends="4jdk7-tck, 4jdk7-jtreg"
988 description="Runs tck and jtreg tests for jsr166-4jdk7">
989 </target>
990
991
992 <target name="4jdk7docs"
993 description="Builds javadocs for src/jdk7 to dist dir">
994
995 <delete dir="${4jdk7docs.dir}"/>
996 <mkdir dir="${4jdk7docs.dir}"/>
997
998 <javadoc destdir="${4jdk7docs.dir}"
999 packagenames="none"
1000 link="${java7.api.url}"
1001 overview="${4jdk7src.dir}/intro.html"
1002 access="${build.javadoc.access}"
1003 sourcepath="${4jdk7src.dir}:${jdk7.src.dir}"
1004 classpath=""
1005 executable="${javadoc7}"
1006 failonerror = "true">
1007 <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
1008 <include name="**/*.java"/>
1009 </fileset>
1010 <arg line="-Xdocrootparent ${java7.docroot.url}"/>
1011 <arg value="-XDignore.symbol.file=true"/>
1012 </javadoc>
1013 </target>
1014
1015
1016 <target name="4jdk7dist"
1017 depends="4jdk7dist-jar, 4jdk7dist-docs"
1018 description="Puts all distributable products in single hierarchy"/>
1019
1020
1021 <target name="4jdk7clean"
1022 description="Removes all 4jdk7 build products">
1023
1024 <delete dir="${build.4jdk7.dir}"/>
1025
1026 </target>
1027
1028
1029 <target name="4jdk7dist-jar"
1030 depends="4jdk7clean, 4jdk7jar">
1031 <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1032 </target>
1033
1034
1035 <target name="4jdk7dist-docs"
1036 depends="4jdk7clean, 4jdk7docs">
1037 <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1038 </target>
1039
1040
1041 <!-- jsr166x -->
1042
1043 <target name="jsr166xcompile"
1044 depends="configure-compiler"
1045 description="Compiles jsr166x sources to build dir">
1046
1047 <mkdir dir="${build.jsr166x.classes.dir}"/>
1048
1049 <javac srcdir="${topsrc.dir}"
1050 destdir="${build.jsr166x.classes.dir}"
1051 debug="${build.debug}"
1052 debuglevel="${build.debuglevel}"
1053 deprecation="${build.deprecation}"
1054 classpath=""
1055 bootclasspath="${bootclasspath6}"
1056 source="5"
1057 target="5"
1058 includeAntRuntime="false"
1059 includeJavaRuntime="false"
1060 executable="${javac7}"
1061 fork="true">
1062
1063 <include name="jsr166x/**/*.java"/>
1064 <compilerarg value="-XDignore.symbol.file=true"/>
1065 <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1066 <compilerarg value="-Werror"/>
1067 <compilerarg line="${build.args}"/>
1068
1069 </javac>
1070 </target>
1071
1072
1073 <target name="jsr166xjar"
1074 depends="jsr166xcompile"
1075 description="Builds library jar from compiled sources">
1076
1077 <jar destfile="${jsr166x.jar}">
1078 <fileset dir="${build.jsr166x.classes.dir}"/>
1079 <manifest>
1080 <attribute name="Built-By" value="${user.name}"/>
1081 <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1082 </manifest>
1083 </jar>
1084
1085 </target>
1086
1087
1088 <target name="jsr166xdocs"
1089 description="Builds javadocs to dist dir">
1090
1091 <delete dir="${jsr166xdocs.dir}"/>
1092 <mkdir dir="${jsr166xdocs.dir}"/>
1093
1094 <javadoc destdir="${jsr166xdocs.dir}"
1095 packagenames="jsr166x.*"
1096 link="${java.api.url}"
1097 access="${build.javadoc.access}"
1098 sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1099 bootclasspath="${bootclasspath6}"
1100 source="5"
1101 executable="${javadoc7}"
1102 failonerror = "true">
1103 <arg line="-Xdocrootparent ${java.docroot.url}"/>
1104 <arg value="-XDignore.symbol.file=true"/>
1105
1106 </javadoc>
1107 </target>
1108
1109
1110 <target name="jsr166xdist"
1111 depends="jsr166xdist-jar, jsr166xdist-docs"
1112 description="Puts all distributable products in single hierarchy"/>
1113
1114
1115 <target name="jsr166xclean"
1116 description="Removes all jsr166x build products">
1117
1118 <delete dir="${build.jsr166x.dir}"/>
1119
1120 </target>
1121
1122
1123 <target name="jsr166xdist-jar"
1124 depends="jsr166xclean, jsr166xjar">
1125 <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1126 </target>
1127
1128 <target name="jsr166xdist-docs"
1129 depends="jsr166xclean, jsr166xdocs">
1130 <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1131 </target>
1132
1133 <!-- jsr166y -->
1134
1135
1136 <target name="jsr166ycompile"
1137 depends="configure-compiler"
1138 description="Compiles jsr166y sources">
1139
1140 <mkdir dir="${build.jsr166y.classes.dir}"/>
1141
1142 <javac srcdir="${topsrc.dir}"
1143 destdir="${build.jsr166y.classes.dir}"
1144 debug="${build.debug}"
1145 debuglevel="${build.debuglevel}"
1146 deprecation="${build.deprecation}"
1147 source="6"
1148 target="6"
1149 classpath=""
1150 bootclasspath="${bootclasspath6}"
1151 includeAntRuntime="false"
1152 includeJavaRuntime="false"
1153 executable="${javac7}"
1154 fork="true">
1155
1156 <include name="jsr166y/**/*.java"/>
1157 <compilerarg value="-XDignore.symbol.file=true"/>
1158 <compilerarg value="-Xlint:all"/>
1159 <compilerarg value="-Werror"/>
1160 <compilerarg line="${build.args}"/>
1161
1162 </javac>
1163 </target>
1164
1165
1166 <target name="jsr166yjar"
1167 depends="jsr166ycompile"
1168 description="Builds library jar from compiled sources">
1169
1170 <jar destfile="${jsr166y.jar}" index="true">
1171 <fileset dir="${build.jsr166y.classes.dir}"/>
1172 <manifest>
1173 <attribute name="Built-By" value="${user.name}"/>
1174 <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1175 </manifest>
1176 </jar>
1177
1178 </target>
1179
1180
1181 <target name="jsr166ydocs"
1182 description="Builds javadocs to dist dir">
1183
1184 <delete dir="${jsr166ydocs.dir}"/>
1185 <mkdir dir="${jsr166ydocs.dir}"/>
1186
1187 <javadoc destdir="${jsr166ydocs.dir}"
1188 packagenames="jsr166y.*"
1189 link="${java.api.url}"
1190 access="${build.javadoc.access}"
1191 sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1192 bootclasspath="${bootclasspath6}"
1193 source="6"
1194 executable="${javadoc7}"
1195 failonerror = "true">
1196 <arg line="-Xdocrootparent ${java.docroot.url}"/>
1197 <arg value="-XDignore.symbol.file=true"/>
1198
1199 </javadoc>
1200 </target>
1201
1202
1203 <target name="jsr166ydist"
1204 depends="jsr166ydist-jar, jsr166ydist-docs"
1205 description="Puts all distributable products in single hierarchy"/>
1206
1207
1208 <target name="jsr166yclean"
1209 description="Removes all jsr166y build products">
1210
1211 <delete dir="${build.jsr166y.dir}"/>
1212
1213 </target>
1214
1215
1216 <target name="jsr166ydist-jar"
1217 depends="jsr166yclean, jsr166yjar">
1218 <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1219 </target>
1220
1221 <target name="jsr166ydist-docs"
1222 depends="jsr166yclean, jsr166ydocs">
1223 <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1224 </target>
1225
1226
1227 <!-- extra166y -->
1228
1229
1230 <target name="extra166ycompile"
1231 depends="configure-compiler, jsr166yjar"
1232 description="Compiles extra166y sources">
1233
1234 <mkdir dir="${build.extra166y.classes.dir}"/>
1235
1236 <javac srcdir="${topsrc.dir}"
1237 destdir="${build.extra166y.classes.dir}"
1238 debug="${build.debug}"
1239 debuglevel="${build.debuglevel}"
1240 deprecation="${build.deprecation}"
1241 bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
1242 classpath=""
1243 source="6"
1244 target="6"
1245 includeAntRuntime="false"
1246 includeJavaRuntime="false"
1247 executable="${javac7}"
1248 fork="true">
1249
1250 <include name="extra166y/**/*.java"/>
1251 <compilerarg value="-XDignore.symbol.file=true"/>
1252 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1253 <compilerarg value="-Werror"/>
1254 <compilerarg line="${build.args}"/>
1255
1256 </javac>
1257 </target>
1258
1259
1260 <target name="extra166yjar"
1261 depends="extra166ycompile"
1262 description="Builds library jar from compiled sources">
1263
1264 <jar destfile="${extra166y.jar}" index="true">
1265 <fileset dir="${build.extra166y.classes.dir}"/>
1266 <manifest>
1267 <attribute name="Built-By" value="${user.name}"/>
1268 <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1269 </manifest>
1270 </jar>
1271
1272 </target>
1273
1274
1275 <target name="extra166ydocs"
1276 description="Builds javadocs to build dir">
1277
1278 <delete dir="${extra166ydocs.dir}"/>
1279 <mkdir dir="${extra166ydocs.dir}"/>
1280
1281 <javadoc destdir="${extra166ydocs.dir}"
1282 packagenames="extra166y.*"
1283 link="${java.api.url}"
1284 access="${build.javadoc.access}"
1285 sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1286 bootclasspath="${bootclasspath6}"
1287 source="6"
1288 executable="${javadoc7}">
1289 <arg line="-Xdocrootparent ${java.docroot.url}"/>
1290 <arg value="-XDignore.symbol.file=true"/>
1291
1292 </javadoc>
1293 </target>
1294
1295
1296 <target name="extra166ydist"
1297 depends="extra166ydist-jar, extra166ydist-docs"
1298 description="Puts all distributable products in single hierarchy"/>
1299
1300
1301 <target name="extra166yclean"
1302 description="Removes all extra166y build products">
1303
1304 <delete dir="${build.extra166y.dir}"/>
1305
1306 </target>
1307
1308
1309 <target name="extra166ydist-jar"
1310 depends="extra166yclean, extra166yjar">
1311 <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1312 </target>
1313
1314 <target name="extra166ydist-docs"
1315 depends="extra166yclean, extra166ydocs">
1316 <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1317 </target>
1318
1319 <!-- jsr166e -->
1320
1321 <property name="build.jsr166e.java.version" value="6"/>
1322 <property name="build.jsr166e.javac" value="${javac6}"/>
1323
1324 <target name="jsr166ecompile"
1325 depends="configure-compiler"
1326 description="Compiles jsr166e sources">
1327
1328 <mkdir dir="${build.jsr166e.classes.dir}"/>
1329
1330 <javac srcdir="${topsrc.dir}"
1331 destdir="${build.jsr166e.classes.dir}"
1332 debug="${build.debug}"
1333 debuglevel="${build.debuglevel}"
1334 deprecation="${build.deprecation}"
1335 source="${build.jsr166e.java.version}"
1336 target="${build.jsr166e.java.version}"
1337 classpath=""
1338 includeAntRuntime="false"
1339 includeJavaRuntime="false"
1340 executable="${build.jsr166e.javac}"
1341 fork="true">
1342
1343 <include name="jsr166e/**/*.java"/>
1344 <compilerarg value="-XDignore.symbol.file=true"/>
1345 <compilerarg value="-Xlint:all"/>
1346 <compilerarg value="-Werror"/>
1347 <compilerarg line="${build.args}"/>
1348
1349 </javac>
1350 </target>
1351
1352 <!-- jsr166e: find doclint errors -->
1353 <target name="jsr166edoclint">
1354
1355 <mkdir dir="${build.jsr166e.classes.dir}"/>
1356
1357 <javac srcdir="${topsrc.dir}"
1358 destdir="${build.jsr166e.classes.dir}"
1359 debug="${build.debug}"
1360 debuglevel="${build.debuglevel}"
1361 deprecation="${build.deprecation}"
1362 source="${build.jsr166e.java.version}"
1363 target="${build.jsr166e.java.version}"
1364 classpath=""
1365 bootclasspath="${bootclasspath6}"
1366 includeAntRuntime="false"
1367 includeJavaRuntime="false"
1368 executable="${javac8}"
1369 fork="true">
1370
1371 <include name="jsr166e/**/*.java"/>
1372 <compilerarg value="-XDignore.symbol.file=true"/>
1373 <compilerarg value="-Xlint:all"/>
1374 <compilerarg value="-Werror"/>
1375 <compilerarg value="-Xdoclint:all/protected"/>
1376
1377 </javac>
1378 </target>
1379
1380
1381 <target name="jsr166ejar"
1382 depends="jsr166ecompile"
1383 description="Builds library jar from compiled sources">
1384
1385 <jar destfile="${jsr166e.jar}" index="true">
1386 <fileset dir="${build.jsr166e.classes.dir}"/>
1387 <manifest>
1388 <attribute name="Built-By" value="${user.name}"/>
1389 <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1390 </manifest>
1391 </jar>
1392
1393 </target>
1394
1395
1396 <target name="jsr166edocs"
1397 description="Builds javadocs to build dir">
1398
1399 <delete dir="${jsr166edocs.dir}"/>
1400 <mkdir dir="${jsr166edocs.dir}"/>
1401
1402 <javadoc destdir="${jsr166edocs.dir}"
1403 packagenames="jsr166e.*"
1404 link="${java.api.url}"
1405 access="${build.javadoc.access}"
1406 sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1407 source="${build.jsr166e.java.version}"
1408 executable="${javadoc7}"
1409 failonerror = "true">
1410 <arg line="-Xdocrootparent ${java.docroot.url}"/>
1411 <arg value="-XDignore.symbol.file=true"/>
1412
1413 </javadoc>
1414 </target>
1415
1416
1417 <target name="jsr166e-tck-one-java-version"
1418 depends="jsr166ejar">
1419
1420 <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
1421
1422 <run-tck-tests
1423 tck.src.dir="${test.src.dir}/tck-jsr166e"
1424 target="${build.jsr166e.java.version}"
1425 workdir="${build.jsr166e.dir}"
1426 classes="${jsr166e.jar}"/>
1427 </target>
1428
1429 <target name="jsr166e-tck"
1430 description="Runs tck tests for jsr166e for multiple java versions">
1431
1432 <!-- <antcall target="clean"/> -->
1433 <!-- <antcall target="jsr166e-tck-one-java-version"> -->
1434 <!-- <param name="build.jsr166e.java.version" value="8"/> -->
1435 <!-- <param name="build.jsr166e.javac" value="${javac8}"/> -->
1436 <!-- </antcall> -->
1437
1438 <antcall target="clean"/>
1439 <antcall target="jsr166e-tck-one-java-version">
1440 <param name="build.jsr166e.java.version" value="7"/>
1441 <param name="build.jsr166e.javac" value="${javac7}"/>
1442 </antcall>
1443
1444 <antcall target="clean"/>
1445 <antcall target="jsr166e-tck-one-java-version">
1446 <param name="build.jsr166e.java.version" value="6"/>
1447 <param name="build.jsr166e.javac" value="${javac6}"/>
1448 </antcall>
1449 </target>
1450
1451
1452 <target name="jsr166e-test"
1453 depends="jsr166e-tck"
1454 description="Runs all tests for jsr166e">
1455 </target>
1456
1457 <target name="jsr166edist"
1458 depends="jsr166edist-jar, jsr166edist-docs"
1459 description="Puts all distributable products in single hierarchy"/>
1460
1461
1462 <target name="jsr166eclean"
1463 description="Removes all jsr166e build products">
1464 <delete dir="${build.jsr166e.dir}"/>
1465 </target>
1466
1467
1468 <target name="jsr166edist-jar"
1469 depends="jsr166eclean, jsr166ejar">
1470 <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1471 </target>
1472
1473 <target name="jsr166edist-docs"
1474 depends="jsr166eclean, jsr166edocs">
1475 <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1476 </target>
1477
1478
1479 <!-- Find buglets that can be detected by static build tools -->
1480
1481 <target name="lint">
1482 <antcall target="dists">
1483 <param name="build.javadoc.access" value="public"/>
1484 </antcall>
1485 </target>
1486
1487 <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1488 <target name="lint-private">
1489 <antcall target="dist">
1490 <param name="build.javadoc.access" value="private"/>
1491 </antcall>
1492 </target>
1493
1494
1495 </project>