/[cvs]/jsr166/build.xml
ViewVC logotype

Contents of /jsr166/build.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.173 - (show annotations)
Thu Sep 3 01:24:31 2015 UTC (4 years, 3 months ago) by jsr166
Branch: MAIN
Changes since 1.172: +11 -24 lines
File MIME type: text/xml
fork jtreg to jtreg-jdk7; jtreg/ is now jdk8+

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

dl@cs.oswego.edu
ViewVC Help
Powered by ViewVC 1.1.27