ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.166
Committed: Mon Aug 10 06:32:23 2015 UTC (8 years, 8 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.165: +26 -0 lines
Log Message:
add target compile-test-loops

File Contents

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