ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.228
Committed: Sat Dec 17 22:28:20 2016 UTC (7 years, 4 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.227: +0 -1 lines
Log Message:
re-enable most of SpliteratorCharacteristics jtreg test

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