ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.205
Committed: Sat Mar 26 17:35:47 2016 UTC (8 years, 1 month ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.204: +23 -23 lines
Log Message:
comment out dead targets: jtreg8 and test89

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