ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.130
Committed: Mon Jan 28 22:00:34 2013 UTC (11 years, 3 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.129: +17 -0 lines
Log Message:
add lint target

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 where each of the above is a JDK or a symlink to same, and
20 $HOME/jdk/src/jdk6
21 $HOME/jdk/src/jdk7
22 $HOME/jdk/src/jdk8
23 where each of the above is a complete JDK source tree
24 (e.g. mercurial forest) or a symlink to same.
25 ------------------------------------------------------------------------------
26 </description>
27
28 <target name="usage" description="Display main targets by running 'ant -projecthelp'">
29 <java classname="org.apache.tools.ant.Main">
30 <arg value="-projecthelp" />
31 </java>
32 </target>
33
34
35 <!-- User-specific settings -->
36 <property file="user.properties"/>
37
38
39 <!-- Compilation options -->
40 <property name="build.sourcelevel" value="6"/>
41 <property name="build.debug" value="true"/>
42 <property name="build.debuglevel" value="source,lines,vars"/>
43 <property name="build.deprecation" value="false"/>
44 <property name="build.javadoc.access" value="protected"/>
45
46 <!-- Build locations -->
47 <property name="build.dir" location="build"/>
48 <property name="build.classes.dir" location="${build.dir}/classes"/>
49 <property name="build.testcases.dir" location="${build.dir}/testcases"/>
50 <property name="build.loops.dir" location="${build.dir}/loops"/>
51 <property name="build.reports.dir" location="${build.dir}/reports"/>
52
53 <property name="build.4jdk7.dir" location="${build.dir}/jsr166-4jdk7"/>
54 <property name="build.4jdk7.classes.dir" location="${build.4jdk7.dir}/classes"/>
55 <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/>
56 <property name="build.4jdk7.docs.dir" location="${build.4jdk7.dir}/docs"/>
57
58 <property name="build.jsr166x.dir" location="${build.dir}/jsr166x"/>
59 <property name="build.jsr166y.dir" location="${build.dir}/jsr166y"/>
60 <property name="build.jsr166e.dir" location="${build.dir}/jsr166e"/>
61 <property name="build.extra166y.dir" location="${build.dir}/extra166y"/>
62
63 <property name="build.jsr166x.classes.dir" location="${build.jsr166x.dir}/classes"/>
64 <property name="build.jsr166y.classes.dir" location="${build.jsr166y.dir}/classes"/>
65 <property name="build.jsr166e.classes.dir" location="${build.jsr166e.dir}/classes"/>
66 <property name="build.extra166y.classes.dir" location="${build.extra166y.dir}/classes"/>
67
68 <!-- JDK locations -->
69 <property name="jdks.home" location="${user.home}/jdk"/>
70
71 <macrodef name="defjdklocations">
72 <attribute name="v"/>
73 <sequential>
74 <property name="jdk@{v}.home" location="${jdks.home}/jdk@{v}"/>
75 <property name="java@{v}" location="${jdk@{v}.home}/bin/java"/>
76 <property name="javac@{v}" location="${jdk@{v}.home}/bin/javac"/>
77 <property name="javadoc@{v}" location="${jdk@{v}.home}/bin/javadoc"/>
78 <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/share/classes"/>
79 <local name="boot.jar.dir"/>
80 <property name="boot.jar.dir" location="${jdk@{v}.home}/jre/lib"/>
81 <path id="bootclasspath@{v}">
82 <pathelement path="${boot.jar.dir}/resources.jar"/>
83 <pathelement path="${boot.jar.dir}/rt.jar"/>
84 <pathelement path="${boot.jar.dir}/jsse.jar"/>
85 <pathelement path="${boot.jar.dir}/jce.jar"/>
86 <pathelement path="${boot.jar.dir}/charsets.jar"/>
87 </path>
88 <property name="bootclasspath@{v}" value="${toString:bootclasspath@{v}}"/>
89 </sequential>
90 </macrodef>
91
92 <macrodef name="mirror-dir">
93 <attribute name="src"/>
94 <attribute name="dst"/>
95 <sequential>
96 <delete dir="@{dst}"/>
97 <mkdir dir="@{dst}"/>
98 <copy todir="@{dst}" preservelastmodified="true">
99 <fileset dir="@{src}"/>
100 </copy>
101 </sequential>
102 </macrodef>
103
104 <defjdklocations v="6"/>
105 <defjdklocations v="7"/>
106 <defjdklocations v="8"/>
107
108 <!-- Source locations -->
109 <property name="src.dir" location="${basedir}/src/main"/>
110 <property name="test.src.dir" location="${basedir}/src/test"/>
111 <property name="loops.src.dir" location="${basedir}/src/loops"/>
112 <property name="tck.src.dir" location="${test.src.dir}/tck"/>
113 <property name="jtreg.src.dir" location="${test.src.dir}/jtreg"/>
114 <property name="lib.dir" location="${basedir}/lib"/>
115 <property name="dist.dir" location="${basedir}/dist"/>
116 <property name="topsrc.dir" location="${basedir}/src"/>
117 <property name="4jdk7src.dir" location="${topsrc.dir}/jdk7"/>
118 <property name="jsr166xsrc.dir" location="${topsrc.dir}/jsr166x"/>
119 <property name="jsr166ysrc.dir" location="${topsrc.dir}/jsr166y"/>
120 <property name="jsr166esrc.dir" location="${topsrc.dir}/jsr166e"/>
121 <property name="extra166ysrc.dir" location="${topsrc.dir}/extra166y"/>
122
123 <!-- Javadoc locations -->
124 <property name="docs.dir" location="${build.dir}/docs"/>
125 <property name="4jdk7docs.dir" location="${build.4jdk7.dir}/docs"/>
126 <property name="jsr166xdocs.dir" location="${build.jsr166x.dir}/docs"/>
127 <property name="jsr166ydocs.dir" location="${build.jsr166y.dir}/docs"/>
128 <property name="jsr166edocs.dir" location="${build.jsr166e.dir}/docs"/>
129 <property name="extra166ydocs.dir" location="${build.extra166y.dir}/docs"/>
130
131 <property name="dist.docs.dir" location="${dist.dir}/docs"/>
132 <property name="dist.4jdk7docs.dir" location="${dist.dir}/jsr166-4jdk7docs"/>
133 <property name="dist.jsr166xdocs.dir" location="${dist.dir}/jsr166xdocs"/>
134 <property name="dist.jsr166ydocs.dir" location="${dist.dir}/jsr166ydocs"/>
135 <property name="dist.jsr166edocs.dir" location="${dist.dir}/jsr166edocs"/>
136 <property name="dist.extra166ydocs.dir" location="${dist.dir}/extra166ydocs"/>
137
138 <!-- Jar locations -->
139 <property name="product.jar" location="${build.dir}/jsr166.jar"/>
140 <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>
141 <property name="jsr166x.jar" location="${build.jsr166x.dir}/jsr166x.jar"/>
142 <property name="jsr166y.jar" location="${build.jsr166y.dir}/jsr166y.jar"/>
143 <property name="jsr166e.jar" location="${build.jsr166e.dir}/jsr166e.jar"/>
144 <property name="extra166y.jar" location="${build.extra166y.dir}/extra166y.jar"/>
145 <property name="junit.jar" location="${lib.dir}/junit.jar"/>
146
147 <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
148 <property name="jdkapi5docs.url" value="http://docs.oracle.com/javase/1.5.0/docs/api/"/>
149 <property name="jdkapi6docs.url" value="http://docs.oracle.com/javase/6/docs/api/"/>
150 <property name="jdkapi7docs.url" value="http://docs.oracle.com/javase/7/docs/api/"/>
151
152 <property name="jdkapi8docs.url" value="http://download.java.net/jdk8/docs/api/"/>
153 <!-- The below does not yet exist as of 2013-01 -->
154 <!-- <property name="jdkapi8docs.url" value="http://docs.oracle.com/javase/8/docs/api/"/> -->
155
156 <!-- Default jdk api doc location (latest stable release seems best) -->
157 <property name="jdkapidocs.url" value="${jdkapi7docs.url}"/>
158
159 <!-- Define the "jtreg" task -->
160 <!-- See the docs in "jtreg -onlineHelp" -->
161 <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant"
162 classpath="${lib.dir}/jtreg.jar" />
163
164 <!-- Test classpath -->
165 <path id="test.classpath">
166 <pathelement location="${build.testcases.dir}"/>
167 <pathelement location="${junit.jar}"/>
168 </path>
169
170 <macrodef name="run-tck-tests">
171 <attribute name="tck.src.dir" default="${tck.src.dir}"/>
172 <attribute name="source" default="6"/>
173 <attribute name="target"/>
174 <attribute name="workdir"/>
175 <attribute name="classes"/>
176 <attribute name="jvmflags" default=""/>
177 <sequential>
178
179 <mkdir dir="@{workdir}/tck-classes"/>
180
181 <javac srcdir="@{tck.src.dir}"
182 destdir="@{workdir}/tck-classes"
183 debug="${build.debug}"
184 debuglevel="${build.debuglevel}"
185 deprecation="${build.deprecation}"
186 source="@{source}"
187 classpath="${junit.jar}"
188 bootclasspath="@{classes}:${bootclasspath@{source}}"
189 includeAntRuntime="false"
190 includeJavaRuntime="false"
191 executable="${javac@{target}}"
192 fork="true">
193
194 <include name="*.java"/>
195 <compilerarg value="-XDignore.symbol.file=true"/>
196 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
197 <compilerarg line="${build.args}"/>
198
199 </javac>
200
201 <java classname="JSR166TestCase"
202 failonerror="true"
203 jvm="${java@{target}}"
204 fork="true">
205 <jvmarg value="-Xbootclasspath/p:@{classes}"/>
206 <jvmarg line="@{jvmflags}"/>
207 <classpath>
208 <pathelement location="${junit.jar}"/>
209 <pathelement location="@{workdir}/tck-classes"/>
210 </classpath>
211 </java>
212
213 </sequential>
214 </macrodef>
215
216 <!-- ALoops classpath -->
217 <path id="loops.classpath">
218 <pathelement location="${build.loops.dir}"/>
219 </path>
220
221 <!-- Support @jls tag, used in jdk8+ javadoc -->
222 <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
223 <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
224
225 <!-- Main targets -->
226
227 <target name="dists"
228 depends="dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
229 description="Builds all public jars and docs"/>
230
231 <target name="compile"
232 depends="configure-compiler"
233 description="Compiles src/main sources to build dir">
234
235 <mkdir dir="${build.classes.dir}"/>
236
237 <javac srcdir="${src.dir}"
238 destdir="${build.classes.dir}"
239 debug="${build.debug}"
240 debuglevel="${build.debuglevel}"
241 deprecation="${build.deprecation}"
242 classpath=""
243 includeAntRuntime="false"
244 includeJavaRuntime="false"
245 executable="${javac8}"
246 fork="true">
247
248 <include name="**/*.java"/>
249 <compilerarg value="-XDignore.symbol.file=true"/>
250 <compilerarg value="-Xlint:all"/>
251 <compilerarg line="${build.args}"/>
252
253 </javac>
254 </target>
255
256
257 <target name="jar"
258 depends="compile"
259 description="Builds library jar from compiled sources">
260
261 <jar destfile="${product.jar}">
262 <fileset dir="${build.classes.dir}"/>
263 </jar>
264 </target>
265
266
267 <target name="test"
268 depends="configure-tests, report-tests"
269 description="Runs all tests (requires JUnit 3.8.1 in ${ant.home}/lib)" />
270
271
272 <target name="docs"
273 description="Builds javadocs for src/main to dist dir">
274
275 <delete dir="${docs.dir}"/>
276 <mkdir dir="${docs.dir}"/>
277
278 <!-- the packagenames="none" hack below prevents scanning the -->
279 <!-- sourcepath for packages -->
280
281 <javadoc destdir="${docs.dir}"
282 packagenames="none"
283 link="${jdkapi8docs.url}"
284 overview="${src.dir}/intro.html"
285 access="${build.javadoc.access}"
286 sourcepath="${src.dir}:${jdk8src.dir}"
287 classpath=""
288 executable="${javadoc8}">
289 <fileset dir="${src.dir}" defaultexcludes="yes">
290 <include name="**/*.java"/>
291 </fileset>
292 <arg value="-XDignore.symbol.file=true"/>
293 <arg value="-tag"/>
294 <arg value="${javadoc.jls.option}"/>
295 </javadoc>
296 </target>
297
298
299 <target name="dist"
300 depends="dist-clean, dist-jar, dist-docs"
301 description="Puts all distributable products in single hierarchy"/>
302
303
304 <target name="release"
305 depends="dist"
306 description="Puts entire CVS tree, plus distribution productions, in a jar">
307
308 <property name="release.jar" value="dist/jsr166-${version}-dist.jar"/>
309
310 <jar basedir="${basedir}" destfile="${release.jar}">
311 <!-- <exclude name="build/**"/> -->
312 <exclude name="${release.jar}"/>
313 <exclude name="user.properties"/>
314 <exclude name="etc/notes/**"/>
315 <exclude name="src/emulation/**"/>
316 <exclude name="**/SyntaxTest.java"/>
317 <exclude name="**/SuperfluousAbstract.java"/>
318 </jar>
319 </target>
320
321
322 <target name="clean"
323 description="Removes all build products">
324
325 <delete dir="${build.dir}"/>
326
327 </target>
328
329
330 <target name="dist-clean"
331 description="Removes all build and distribution products">
332
333 <delete dir="${dist.dir}"/>
334
335 </target>
336
337
338 <!-- Internal targets -->
339
340
341 <target name="dist-jar"
342 depends="clean, jar">
343 <copy file="${product.jar}" todir="${dist.dir}"/>
344 </target>
345
346 <target name="dist-docs"
347 depends="clean, docs">
348 <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
349 </target>
350
351
352 <target name="compile-tests"
353 depends="jar">
354
355 <mkdir dir="${build.testcases.dir}"/>
356
357 <javac srcdir="${tck.src.dir}"
358 destdir="${build.testcases.dir}"
359 debug="${build.debug}"
360 debuglevel="${build.debuglevel}"
361 deprecation="${build.deprecation}"
362 source="6"
363 classpath="${junit.jar}"
364 bootclasspath="@{product.jar}:${bootclasspath6}"
365 includeAntRuntime="false"
366 includeJavaRuntime="false"
367 executable="${javac8}"
368 fork="true">
369
370 <include name="**/*.java"/>
371 <compilerarg value="-XDignore.symbol.file=true"/>
372 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
373 <compilerarg line="${build.args}"/>
374
375 </javac>
376
377 <javac srcdir="${test.src.dir}"
378 destdir="${build.testcases.dir}"
379 debug="${build.debug}"
380 debuglevel="${build.debuglevel}"
381 deprecation="${build.deprecation}"
382 source="6"
383 classpath=""
384 bootclasspath="@{product.jar}:${bootclasspath6}"
385 includeAntRuntime="false"
386 includeJavaRuntime="false"
387 executable="${javac8}"
388 fork="true">
389
390 <include name="jsr166/test/**/*.java"/>
391 <compilerarg value="-XDignore.symbol.file=true"/>
392 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
393 <compilerarg line="${build.args}"/>
394
395 </javac>
396
397 <!--
398 <javac srcdir="${jtreg.src.dir}"
399 destdir="${build.testcases.dir}"
400 debug="${build.debug}"
401 debuglevel="${build.debuglevel}"
402 deprecation="${build.deprecation}"
403 source="${build.sourcelevel}"
404 fork="true">
405
406 <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
407 <compilerarg value="-XDignore.symbol.file=true"/>
408 <compilerarg line="${build.args}"/>
409
410 </javac>
411 -->
412
413 </target>
414
415
416 <target name="run-tests"
417 depends="compile-tests">
418
419 <!-- May be overridden by user.properties -->
420 <property name="testcase" value="*"/>
421
422 <mkdir dir="${build.reports.dir}"/>
423
424 <junit printsummary="true"
425 showoutput="true"
426 errorProperty="junit.failed"
427 failureProperty="junit.failed"
428 dir="${build.reports.dir}"
429 jvm="${java8}"
430 fork="true">
431
432 <jvmarg value="-Xbootclasspath/p:${product.jar}"/>
433 <jvmarg value="-server"/>
434 <jvmarg value="-showversion"/>
435
436 <classpath refid="test.classpath"/>
437
438 <formatter type="xml"/>
439
440 <batchtest todir="${build.reports.dir}" unless="no.test.tck">
441 <fileset dir="${tck.src.dir}">
442 <include name="**/${testcase}Test.java"/>
443 </fileset>
444 </batchtest>
445
446 <batchtest todir="${build.reports.dir}" if="do.test.old">
447 <fileset dir="${test.src.dir}">
448 <include name="jsr166/test/**/${testcase}Test.java"/>
449 </fileset>
450 </batchtest>
451
452 <!--
453 <batchtest todir="${build.reports.dir}" if="do.test.jtreg">
454 <fileset dir="${jtreg.src.dir}">
455 <include name="**/${testcase}Test.java"/>
456 </fileset>
457 </batchtest>
458 -->
459
460 </junit>
461
462 </target>
463
464
465 <target name="report-tests"
466 depends="run-tests">
467
468 <!-- Sets junit.report.format to frames if redirection is present,
469 otherwise sets it to noframes. -->
470 <available property="junit.report.format"
471 value="frames"
472 classname="org.apache.xalan.lib.Redirect"
473 />
474 <property name="junit.report.format" value="noframes"/>
475
476 <junitreport todir="${build.reports.dir}">
477 <fileset dir="${build.reports.dir}">
478 <include name="TEST-*.xml"/>
479 </fileset>
480 <report format="${junit.report.format}" todir="${build.reports.dir}"
481 />
482 </junitreport>
483
484 <fail message="Test Cases Failed" if="junit.failed"/>
485
486 </target>
487
488
489 <target name="configure-compiler">
490
491 <property name="unchecked.option" value="-Xlint:unchecked"/>
492
493 <condition property="warnunchecked.arg" value="${unchecked.option}">
494 <istrue value="${build.warnunchecked}"/>
495 </condition>
496
497 <property name="warnunchecked.arg" value=""/>
498
499
500 <!-- Common options in javac invocations -->
501 <property name="build.args" value="${warnunchecked.arg}"/>
502
503 </target>
504
505
506 <target name="configure-tests"
507 depends="configure-compiler">
508
509 <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->
510 <available property="junit.available"
511 classname="junit.framework.Protectable"/>
512
513 <!-- Xalan -->
514 <available property="xalan.available"
515 classname="org.apache.xalan.Version"/>
516
517
518 <!-- Ant 1.6beta and later don't need or want this check -->
519 <!--
520 <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests"
521 unless="junit.available"/>
522
523 <fail message="Need Xalan 2.5.1 jar in ${ant.home}${file.separator}lib to run tests"
524 unless="xalan.available"/>
525 -->
526
527 </target>
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 <!-- jsr166 4jdk7 -->
560
561 <target name="4jdk7compile"
562 depends="configure-compiler"
563 description="Compiles src/jdk7 sources, targeting jdk7">
564
565 <mkdir dir="${build.4jdk7.classes.dir}"/>
566
567 <javac srcdir="${4jdk7src.dir}"
568 destdir="${build.4jdk7.classes.dir}"
569 debug="${build.debug}"
570 debuglevel="${build.debuglevel}"
571 deprecation="${build.deprecation}"
572 source="6"
573 classpath=""
574 bootclasspath="${bootclasspath6}"
575 includeAntRuntime="false"
576 includeJavaRuntime="false"
577 executable="${javac7}"
578 fork="true">
579
580 <include name="**/*.java"/>
581 <compilerarg value="-XDignore.symbol.file=true"/>
582 <compilerarg value="-Xlint:all"/>
583 <compilerarg line="${build.args}"/>
584
585 </javac>
586 </target>
587
588
589 <target name="4jdk7jar"
590 depends="4jdk7compile"
591 description="Builds library jar from compiled sources">
592
593 <jar destfile="${4jdk7product.jar}">
594 <fileset dir="${build.4jdk7.classes.dir}"/>
595 </jar>
596
597 </target>
598
599
600 <target name="4jdk7-test-tck"
601 depends="4jdk7jar"
602 description="Runs tck tests for jsr166-4jdk7 directly">
603
604 <run-tck-tests
605 target="7"
606 workdir="${build.4jdk7.dir}"
607 classes="${4jdk7product.jar}"/>
608 </target>
609
610
611 <target name="4jdk7-test-tck-junit"
612 depends="4jdk7compile"
613 description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">
614
615 <junit printsummary="true"
616 showoutput="true"
617 errorProperty="junit.failed"
618 failureProperty="junit.failed"
619 includeantruntime="true"
620 jvm="${java7}"
621 fork="true">
622
623 <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
624 <jvmarg value="-server"/>
625
626 <classpath>
627 <pathelement location="${junit.jar}"/>
628 <pathelement location="${build.4jdk7.tck.classes.dir}"/>
629 </classpath>
630
631 <formatter type="brief"/>
632
633 <test name="JSR166TestCase" haltonfailure="no">
634 </test>
635
636 </junit>
637 </target>
638
639 <target name="4jdk7-test-jtreg"
640 depends="4jdk7compile"
641 description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">
642 <delete dir="${build.4jdk7.dir}/JTwork" quiet="true"/>
643 <delete dir="${build.4jdk7.dir}/JTreport" quiet="true"/>
644 <mkdir dir="${build.4jdk7.dir}/JTwork/scratch"/>
645 <mkdir dir="${build.4jdk7.dir}/JTreport"/>
646 <jtreg dir="${jtreg.src.dir}"
647 jdk="${jdk7.home}"
648 workDir="${build.4jdk7.dir}/JTwork"
649 reportDir="${build.4jdk7.dir}/JTreport">
650
651 <arg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
652 <arg value="-agentvm"/>
653 <arg value="-v:nopass,fail"/>
654 <arg value="-vmoptions:-esa -ea"/>
655 <arg value="-automatic"/>
656 <arg value="-k:!ignore"/>
657 </jtreg>
658 </target>
659
660
661 <target name="4jdk7-test"
662 depends="4jdk7-test-tck, 4jdk7-test-jtreg"
663 description="Runs tck and jtreg tests for jsr166-4jdk7">
664 </target>
665
666
667 <target name="4jdk7docs"
668 description="Builds javadocs for src/jdk7 to dist dir">
669
670 <delete dir="${4jdk7docs.dir}"/>
671 <mkdir dir="${4jdk7docs.dir}"/>
672
673 <javadoc destdir="${4jdk7docs.dir}"
674 packagenames="none"
675 link="${jdkapi7docs.url}"
676 overview="${4jdk7src.dir}/intro.html"
677 access="${build.javadoc.access}"
678 sourcepath="${4jdk7src.dir}:${jdk7src.dir}"
679 classpath=""
680 executable="${javadoc7}">
681 <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
682 <include name="**/*.java"/>
683 </fileset>
684 <arg value="-XDignore.symbol.file=true"/>
685 </javadoc>
686 </target>
687
688
689 <target name="4jdk7dist"
690 depends="4jdk7dist-jar, 4jdk7dist-docs"
691 description="Puts all distributable products in single hierarchy"/>
692
693
694 <target name="4jdk7clean"
695 description="Removes all 4jdk7 build products">
696
697 <delete dir="${build.4jdk7.dir}"/>
698
699 </target>
700
701
702 <target name="4jdk7dist-clean"
703 description="Removes all build and distribution products">
704
705 </target>
706
707 <target name="4jdk7dist-jar"
708 depends="4jdk7clean, 4jdk7jar">
709 <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
710 </target>
711
712
713 <target name="4jdk7dist-docs"
714 depends="4jdk7clean, 4jdk7docs">
715 <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
716 </target>
717
718
719 <!-- jsr166x -->
720
721 <target name="jsr166xcompile"
722 depends="configure-compiler"
723 description="Compiles jsr166x sources to build dir">
724
725 <mkdir dir="${build.jsr166x.classes.dir}"/>
726
727 <javac srcdir="${topsrc.dir}"
728 destdir="${build.jsr166x.classes.dir}"
729 debug="${build.debug}"
730 debuglevel="${build.debuglevel}"
731 deprecation="${build.deprecation}"
732 classpath=""
733 bootclasspath="${bootclasspath6}"
734 source="5"
735 includeAntRuntime="false"
736 includeJavaRuntime="false"
737 executable="${javac7}"
738 fork="true">
739
740 <include name="jsr166x/**/*.java"/>
741 <compilerarg value="-XDignore.symbol.file=true"/>
742 <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
743 <compilerarg line="${build.args}"/>
744
745 </javac>
746 </target>
747
748
749 <target name="jsr166xjar"
750 depends="jsr166xcompile"
751 description="Builds library jar from compiled sources">
752
753 <jar destfile="${jsr166x.jar}">
754 <fileset dir="${build.jsr166x.classes.dir}"/>
755 </jar>
756
757 </target>
758
759
760 <target name="jsr166xdocs"
761 description="Builds javadocs to dist dir">
762
763 <delete dir="${jsr166xdocs.dir}"/>
764 <mkdir dir="${jsr166xdocs.dir}"/>
765
766 <javadoc destdir="${jsr166xdocs.dir}"
767 packagenames="jsr166x.*"
768 link="${jdkapidocs.url}"
769 access="${build.javadoc.access}"
770 sourcepath="${topsrc.dir}:${jdk6src.dir}"
771 bootclasspath="${bootclasspath6}"
772 source="5"
773 executable="${javadoc7}">
774 <arg value="-XDignore.symbol.file=true"/>
775
776 </javadoc>
777 </target>
778
779
780 <target name="jsr166xdist"
781 depends="jsr166xdist-jar, jsr166xdist-docs"
782 description="Puts all distributable products in single hierarchy"/>
783
784
785 <target name="jsr166xclean"
786 description="Removes all jsr166x build products">
787
788 <delete dir="${build.jsr166x.dir}"/>
789
790 </target>
791
792
793 <target name="jsr166xdist-clean"
794 description="Removes all build and distribution products">
795
796 </target>
797
798
799 <target name="jsr166xdist-jar"
800 depends="jsr166xclean, jsr166xjar">
801 <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
802 </target>
803
804 <target name="jsr166xdist-docs"
805 depends="jsr166xclean, jsr166xdocs">
806 <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
807 </target>
808
809 <!-- jsr166y -->
810
811
812 <target name="jsr166ycompile"
813 depends="configure-compiler"
814 description="Compiles jsr166y sources">
815
816 <mkdir dir="${build.jsr166y.classes.dir}"/>
817
818 <javac srcdir="${topsrc.dir}"
819 destdir="${build.jsr166y.classes.dir}"
820 debug="${build.debug}"
821 debuglevel="${build.debuglevel}"
822 deprecation="${build.deprecation}"
823 source="6"
824 classpath=""
825 bootclasspath="${bootclasspath6}"
826 includeAntRuntime="false"
827 includeJavaRuntime="false"
828 executable="${javac7}"
829 fork="true">
830
831 <include name="jsr166y/**/*.java"/>
832 <compilerarg value="-XDignore.symbol.file=true"/>
833 <compilerarg value="-Xlint:all"/>
834 <compilerarg line="${build.args}"/>
835
836 </javac>
837 </target>
838
839
840 <target name="jsr166yjar"
841 depends="jsr166ycompile"
842 description="Builds library jar from compiled sources">
843
844 <jar destfile="${jsr166y.jar}" index="true">
845 <fileset dir="${build.jsr166y.classes.dir}"/>
846 </jar>
847
848 </target>
849
850
851 <target name="jsr166ydocs"
852 description="Builds javadocs to dist dir">
853
854 <delete dir="${jsr166ydocs.dir}"/>
855 <mkdir dir="${jsr166ydocs.dir}"/>
856
857 <javadoc destdir="${jsr166ydocs.dir}"
858 packagenames="jsr166y.*"
859 link="${jdkapidocs.url}"
860 access="${build.javadoc.access}"
861 sourcepath="${topsrc.dir}:${jdk6src.dir}"
862 bootclasspath="${bootclasspath6}"
863 source="6"
864 executable="${javadoc7}">
865 <arg value="-XDignore.symbol.file=true"/>
866
867 </javadoc>
868 </target>
869
870
871 <target name="jsr166ydist"
872 depends="jsr166ydist-jar, jsr166ydist-docs"
873 description="Puts all distributable products in single hierarchy"/>
874
875
876 <target name="jsr166yclean"
877 description="Removes all jsr166y build products">
878
879 <delete dir="${build.jsr166y.dir}"/>
880
881 </target>
882
883
884 <target name="jsr166ydist-clean"
885 description="Removes all build and distribution products">
886
887 </target>
888
889 <target name="jsr166ydist-jar"
890 depends="jsr166yclean, jsr166yjar">
891 <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
892 </target>
893
894 <target name="jsr166ydist-docs"
895 depends="jsr166yclean, jsr166ydocs">
896 <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
897 </target>
898
899
900 <!-- extra166y -->
901
902
903 <target name="extra166ycompile"
904 depends="configure-compiler, jsr166yjar"
905 description="Compiles extra166y sources">
906
907 <mkdir dir="${build.extra166y.classes.dir}"/>
908
909 <javac srcdir="${topsrc.dir}"
910 destdir="${build.extra166y.classes.dir}"
911 debug="${build.debug}"
912 debuglevel="${build.debuglevel}"
913 deprecation="${build.deprecation}"
914 bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
915 classpath=""
916 source="6"
917 includeAntRuntime="false"
918 includeJavaRuntime="false"
919 executable="${javac7}"
920 fork="true">
921
922 <include name="extra166y/**/*.java"/>
923 <compilerarg value="-XDignore.symbol.file=true"/>
924 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
925 <compilerarg line="${build.args}"/>
926
927 </javac>
928 </target>
929
930
931 <target name="extra166yjar"
932 depends="extra166ycompile"
933 description="Builds library jar from compiled sources">
934
935 <jar destfile="${extra166y.jar}" index="true">
936 <fileset dir="${build.extra166y.classes.dir}"/>
937 </jar>
938
939 </target>
940
941
942 <target name="extra166ydocs"
943 description="Builds javadocs to build dir">
944
945 <delete dir="${extra166ydocs.dir}"/>
946 <mkdir dir="${extra166ydocs.dir}"/>
947
948 <javadoc destdir="${extra166ydocs.dir}"
949 packagenames="extra166y.*"
950 link="${jdkapidocs.url}"
951 access="${build.javadoc.access}"
952 sourcepath="${topsrc.dir}:${jdk6src.dir}"
953 bootclasspath="${bootclasspath6}"
954 source="6"
955 executable="${javadoc7}">
956 <arg value="-XDignore.symbol.file=true"/>
957
958 </javadoc>
959 </target>
960
961
962 <target name="extra166ydist"
963 depends="extra166ydist-jar, extra166ydist-docs"
964 description="Puts all distributable products in single hierarchy"/>
965
966
967 <target name="extra166yclean"
968 description="Removes all extra166y build products">
969
970 <delete dir="${build.extra166y.dir}"/>
971
972 </target>
973
974
975 <target name="extra166ydist-clean"
976 description="Removes all build and distribution products">
977
978 </target>
979
980 <target name="extra166ydist-jar"
981 depends="extra166yclean, extra166yjar">
982 <copy file="${extra166y.jar}" todir="${dist.dir}"/>
983 </target>
984
985 <target name="extra166ydist-docs"
986 depends="extra166yclean, extra166ydocs">
987 <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
988 </target>
989
990 <!-- jsr166e -->
991
992 <target name="jsr166ecompile"
993 depends="configure-compiler"
994 description="Compiles jsr166e sources">
995
996 <mkdir dir="${build.jsr166e.classes.dir}"/>
997
998 <javac srcdir="${topsrc.dir}"
999 destdir="${build.jsr166e.classes.dir}"
1000 debug="${build.debug}"
1001 debuglevel="${build.debuglevel}"
1002 deprecation="${build.deprecation}"
1003 source="7"
1004 classpath=""
1005 includeAntRuntime="false"
1006 includeJavaRuntime="false"
1007 executable="${javac7}"
1008 fork="true">
1009
1010 <include name="jsr166e/**/*.java"/>
1011 <compilerarg value="-XDignore.symbol.file=true"/>
1012 <compilerarg value="-Xlint:all"/>
1013 <compilerarg line="${build.args}"/>
1014
1015 </javac>
1016 </target>
1017
1018
1019 <target name="jsr166ejar"
1020 depends="jsr166ecompile"
1021 description="Builds library jar from compiled sources">
1022
1023 <jar destfile="${jsr166e.jar}" index="true">
1024 <fileset dir="${build.jsr166e.classes.dir}"/>
1025 </jar>
1026
1027 </target>
1028
1029
1030 <target name="jsr166edocs"
1031 description="Builds javadocs to build dir">
1032
1033 <delete dir="${jsr166edocs.dir}"/>
1034 <mkdir dir="${jsr166edocs.dir}"/>
1035
1036 <javadoc destdir="${jsr166edocs.dir}"
1037 packagenames="jsr166e.*"
1038 link="${jdkapidocs.url}"
1039 access="${build.javadoc.access}"
1040 sourcepath="${topsrc.dir}:${jdk7src.dir}"
1041 source="7"
1042 executable="${javadoc7}">
1043 <arg value="-XDignore.symbol.file=true"/>
1044
1045 </javadoc>
1046 </target>
1047
1048
1049 <target name="jsr166e-test-tck"
1050 depends="jsr166ejar"
1051 description="Runs tck tests for jsr166e">
1052
1053 <run-tck-tests
1054 tck.src.dir="${test.src.dir}/tck-jsr166e"
1055 source="7"
1056 target="8"
1057 workdir="${build.jsr166e.dir}"
1058 classes="${jsr166e.jar}"/>
1059 </target>
1060
1061
1062 <target name="jsr166edist"
1063 depends="jsr166edist-jar, jsr166edist-docs"
1064 description="Puts all distributable products in single hierarchy"/>
1065
1066
1067 <target name="jsr166eclean"
1068 description="Removes all jsr166e build products">
1069 <delete dir="${build.jsr166e.dir}"/>
1070 </target>
1071
1072
1073 <target name="jsr166edist-clean"
1074 description="Removes all build and distribution products">
1075
1076 </target>
1077
1078 <target name="jsr166edist-jar"
1079 depends="jsr166eclean, jsr166ejar">
1080 <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1081 </target>
1082
1083 <target name="jsr166edist-docs"
1084 depends="jsr166eclean, jsr166edocs">
1085 <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1086 </target>
1087
1088
1089 <!-- Find buglets that can be detected by static build tools -->
1090
1091 <target name="lint">
1092 <antcall target="dists">
1093 <param name="build.javadoc.access" value="private"/>
1094 </antcall>
1095 </target>
1096
1097
1098 </project>