ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.224
Committed: Thu Nov 24 01:58:04 2016 UTC (7 years, 5 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.223: +0 -1 lines
Log Message:
remove unused property

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