ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.215
Committed: Mon Aug 29 23:38:30 2016 UTC (7 years, 7 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.214: +1 -1 lines
Log Message:
fix typo for java9.docroot.url

File Contents

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