ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.213
Committed: Sat Jun 4 23:49:29 2016 UTC (7 years, 10 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.212: +7 -0 lines
Log Message:
Add ant target tck-security-manager to test tck with security manager

File Contents

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