ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.222
Committed: Mon Oct 10 04:51:19 2016 UTC (7 years, 6 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.221: +1 -0 lines
Log Message:
use --patch-module at compile time as well

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