ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.212
Committed: Sat May 21 00:35:58 2016 UTC (7 years, 11 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.211: +3 -2 lines
Log Message:
build jsr166.jar correctly

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