ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.219
Committed: Sat Sep 17 21:02:01 2016 UTC (7 years, 7 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.218: +11 -0 lines
Log Message:
use <javac ... encoding="ASCII"

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