ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.86
Committed: Sat May 28 02:19:20 2011 UTC (12 years, 11 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.85: +9 -24 lines
Log Message:
improve the dist-docs 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 </description>
13
14 <target name="usage" description="Advises user to run with -projecthelp">
15 <echo>Run "ant -projecthelp" for full usage information.</echo>
16 </target>
17
18
19 <!-- User-specific settings -->
20 <property file="user.properties"/>
21
22
23 <!-- Compilation options -->
24 <property name="build.sourcelevel" value="1.6"/>
25 <property name="build.debug" value="true"/>
26 <property name="build.debuglevel" value="source,lines,vars"/>
27 <property name="build.deprecation" value="false"/>
28
29 <!-- Build locations -->
30 <property name="build.dir" location="build"/>
31 <property name="build.classes.dir" location="${build.dir}/classes"/>
32 <property name="build.testcases.dir" location="${build.dir}/testcases"/>
33 <property name="build.loops.dir" location="${build.dir}/loops"/>
34 <property name="build.lib.dir" location="${build.dir}/lib"/>
35 <property name="build.javadocs.dir" location="${build.dir}/javadocs"/>
36 <property name="build.reports.dir" location="${build.dir}/reports"/>
37 <property name="build.jsr166x.dir" location="${build.dir}/jsr166x"/>
38 <property name="build.jsr166xlib.dir" location="${build.dir}/jsr166xlib"/>
39 <property name="build.jsr166xjavadocs.dir" location="${build.dir}/jsr166xjavadocs"/>
40
41 <property name="build.jsr166y.dir" location="${build.dir}/jsr166y"/>
42 <property name="build.jsr166ylib.dir" location="${build.dir}/jsr166ylib"/>
43 <property name="build.jsr166yjavadocs.dir" location="${build.dir}/jsr166yjavadocs"/>
44
45 <property name="build.extra166y.dir" location="${build.dir}/extra166y"/>
46 <property name="build.extra166ylib.dir" location="${build.dir}/extra166ylib"/>
47 <property name="build.extra166yjavadocs.dir" location="${build.dir}/extra166yjavadocs"/>
48
49 <!-- Source locations -->
50 <property name="src.dir" location="${basedir}/src/main"/>
51 <property name="test.src.dir" location="${basedir}/src/test"/>
52 <property name="loops.src.dir" location="${basedir}/src/loops"/>
53 <property name="tck.src.dir" location="${test.src.dir}/tck"/>
54 <property name="jtreg.src.dir" location="${test.src.dir}/jtreg"/>
55 <property name="lib.dir" location="${basedir}/lib"/>
56 <property name="dist.dir" location="${basedir}/dist"/>
57 <property name="topsrc.dir" location="${basedir}/src"/>
58 <property name="jsr166xsrc.dir" location="${basedir}/src/jsr166x"/>
59 <property name="jsr166ysrc.dir" location="${basedir}/src/jsr166y"/>
60 <property name="extra166ysrc.dir" location="${basedir}/src/extra166y"/>
61 <property name="jdksrc.dir" location="/home/dl/1.6.0/j2se/martin/j2se/src/share/classes"/>
62 <!-- Distribution locations -->
63 <property name="dist.javadocs.dir" location="${dist.dir}/docs"/>
64 <property name="dist.jsr166xjavadocs.dir" location="${dist.dir}/jsr166xdocs"/>
65 <property name="dist.jsr166yjavadocs.dir" location="${dist.dir}/jsr166ydocs"/>
66 <property name="dist.extra166yjavadocs.dir" location="${dist.dir}/extra166ydocs"/>
67
68 <!-- Jar locations -->
69 <property name="product.jar" location="${build.lib.dir}/jsr166.jar"/>
70 <property name="jsr166xproduct.jar" location="${build.jsr166xlib.dir}/jsr166x.jar"/>
71 <property name="jsr166yproduct.jar" location="${build.jsr166ylib.dir}/jsr166y.jar"/>
72 <property name="extra166yproduct.jar" location="${build.extra166ylib.dir}/extra166y.jar"/>
73 <property name="junit.jar" location="${lib.dir}/junit.jar"/>
74
75 <!-- Bootclasspath argument -->
76 <property name="bootclasspath.args" value="-Xbootclasspath/p:${product.jar}"/>
77
78 <!-- Test classpath -->
79 <path id="test.classpath">
80 <pathelement location="${build.testcases.dir}"/>
81 <pathelement location="${junit.jar}"/>
82 </path>
83
84 <!-- ALoops classpath -->
85 <path id="loops.classpath">
86 <pathelement location="${build.loops.dir}"/>
87 </path>
88
89
90 <!-- Main targets -->
91
92 <target name="dists"
93 depends="dist, jsr166xdist, jsr166ydist, extra166ydist"
94 description="Builds all public jars and docs"/>
95
96 <target name="compile"
97 depends="init, configure-compiler"
98 description="Compiles main sources to build folder">
99
100 <mkdir dir="${build.classes.dir}"/>
101
102 <javac srcdir="${src.dir}"
103 destdir="${build.classes.dir}"
104 debug="${build.debug}"
105 debuglevel="${build.debuglevel}"
106 deprecation="${build.deprecation}"
107 source="${build.sourcelevel}"
108 fork="true">
109
110 <include name="**/*.java"/>
111 <compilerarg value="-XDignore.symbol.file=true"/>
112
113 <!--
114 <exclude name="java/lang/**"/>
115 <compilerarg line="${build.args}"/>
116 <compilerarg line="-Xlint -Xmaxwarns 1000"/>
117 -->
118
119 </javac>
120
121 </target>
122
123
124
125 <target name="jar"
126 depends="compile"
127 description="Builds library jar from compiled sources">
128
129 <mkdir dir="${build.lib.dir}"/>
130
131 <jar destfile="${product.jar}">
132 <fileset dir="${build.classes.dir}"/>
133 </jar>
134
135 </target>
136
137
138
139 <target name="test"
140 depends="init, configure-tests, report-tests"
141 description="Runs all tests (requires JUnit 3.8.1 in ${ant.home}/lib)" />
142
143
144
145 <target name="docs"
146 description="Builds javadocs with custom tags to build folder">
147
148 <delete dir="${build.javadocs.dir}"/>
149 <mkdir dir="${build.javadocs.dir}"/>
150
151 <javadoc destdir="${build.javadocs.dir}"
152 link="http://download.oracle.com/javase/6/docs/api/"
153 overview="${src.dir}/intro.html"
154 sourcepath="${src.dir}:${jdksrc.dir}"
155 >
156
157 <packageset dir="${src.dir}"/>
158
159 </javadoc>
160
161 </target>
162
163
164
165 <target name="dist"
166 depends="init, dist-clean, dist-jar, dist-docs"
167 description="Puts all distributable products in single hierarchy"/>
168
169
170 <target name="release"
171 depends="dist"
172 description="Puts entire CVS tree, plus distribution productions, in a jar">
173
174 <property name="release.jar" value="dist/jsr166-${version}-dist.jar"/>
175
176 <jar basedir="${basedir}" destfile="${release.jar}">
177 <!-- <exclude name="build/**"/> -->
178 <exclude name="${release.jar}"/>
179 <exclude name="user.properties"/>
180 <exclude name="etc/notes/**"/>
181 <exclude name="src/emulation/**"/>
182 <exclude name="**/SyntaxTest.java"/>
183 <exclude name="**/SuperfluousAbstract.java"/>
184 </jar>
185
186 </target>
187
188
189
190 <target name="clean"
191 description="Removes all build products">
192
193 <delete dir="${build.dir}"/>
194 <delete dir="${build.classes.dir}"/>
195 <delete dir="${build.lib.dir}"/>
196
197 </target>
198
199
200
201 <target name="dist-clean"
202 description="Removes all build and distribution products">
203
204 <delete dir="${dist.dir}"/>
205
206 </target>
207
208
209
210 <target name="dist-docs"
211 description="Builds javadocs without custom tags to dist folder">
212
213 <delete dir="${dist.javadocs.dir}"/>
214 <mkdir dir="${dist.javadocs.dir}"/>
215
216 <!-- the packagenames="none" hack below prevents scanning the -->
217 <!-- sourcepath for packages -->
218
219 <javadoc destdir="${dist.javadocs.dir}"
220 packagenames="none"
221 link="http://download.oracle.com/javase/6/docs/api/"
222 overview="${src.dir}/intro.html"
223 sourcepath="${src.dir}:${jdksrc.dir}" >
224 <fileset dir="${src.dir}" defaultexcludes="yes">
225 <include name="**/*.java"/>
226 </fileset>
227 </javadoc>
228
229 </target>
230
231
232
233 <!-- Internal targets -->
234
235
236 <target name="init">
237
238 <!-- Version is kept in a separate file -->
239 <loadfile property="version" srcFile="version.properties"/>
240 <echo>Building JSR-166 version ${version}</echo>
241 <echo>java.home is ${java.home}</echo>
242
243 </target>
244
245
246 <target name="dist-jar"
247 depends="clean, jar">
248
249 <copy file="${product.jar}" todir="${dist.dir}"/>
250
251 </target>
252
253
254 <target name="compile-tests"
255 depends="jar">
256
257 <mkdir dir="${build.testcases.dir}"/>
258
259 <javac srcdir="${tck.src.dir}"
260 destdir="${build.testcases.dir}"
261 debug="${build.debug}"
262 debuglevel="${build.debuglevel}"
263 deprecation="${build.deprecation}"
264 source="${build.sourcelevel}"
265 fork="true">
266
267 <compilerarg value="${bootclasspath.args}"/>
268 <compilerarg line="${build.args}"/>
269 <compilerarg value="-XDignore.symbol.file=true"/>
270
271 <classpath refid="test.classpath"/>
272
273 </javac>
274
275 <javac srcdir="${test.src.dir}"
276 destdir="${build.testcases.dir}"
277 debug="${build.debug}"
278 debuglevel="${build.debuglevel}"
279 deprecation="${build.deprecation}"
280 source="${build.sourcelevel}"
281 fork="true">
282
283 <include name="jsr166/test/**"/>
284
285 <compilerarg value="${bootclasspath.args}"/>
286 <compilerarg line="${build.args}"/>
287 <compilerarg value="-XDignore.symbol.file=true"/>
288
289 <classpath refid="test.classpath"/>
290
291 </javac>
292
293 <!--
294 <javac srcdir="${jtreg.src.dir}"
295 destdir="${build.testcases.dir}"
296 debug="${build.debug}"
297 debuglevel="${build.debuglevel}"
298 deprecation="${build.deprecation}"
299 source="${build.sourcelevel}"
300 fork="true">
301
302 <compilerarg value="${bootclasspath.args}"/>
303 <compilerarg line="${build.args}"/>
304 <compilerarg value="-XDignore.symbol.file=true"/>
305
306 <classpath refid="test.classpath"/>
307
308 </javac>
309 -->
310
311 </target>
312
313
314 <target name="run-tests"
315 depends="compile-tests">
316
317 <!-- May be overridden by user.properties -->
318 <property name="testcase" value="*"/>
319
320 <mkdir dir="${build.reports.dir}"/>
321
322 <junit printsummary="true"
323 showoutput="true"
324 errorProperty="junit.failed"
325 failureProperty="junit.failed"
326 dir="${build.reports.dir}"
327 fork="true">
328
329 <jvmarg value="${bootclasspath.args}"/>
330 <jvmarg value="-server"/>
331 <jvmarg value="-showversion"/>
332
333 <classpath refid="test.classpath"/>
334
335 <formatter type="xml"/>
336
337 <batchtest todir="${build.reports.dir}" unless="no.test.tck">
338 <fileset dir="${tck.src.dir}">
339 <include name="**/${testcase}Test.java"/>
340 </fileset>
341 </batchtest>
342
343 <batchtest todir="${build.reports.dir}" if="do.test.old">
344 <fileset dir="${test.src.dir}">
345 <include name="jsr166/test/**/${testcase}Test.java"/>
346 </fileset>
347 </batchtest>
348
349 <!--
350 <batchtest todir="${build.reports.dir}" if="do.test.jtreg">
351 <fileset dir="${jtreg.src.dir}">
352 <include name="**/${testcase}Test.java"/>
353 </fileset>
354 </batchtest>
355 -->
356
357 </junit>
358
359 </target>
360
361
362 <target name="report-tests"
363 depends="run-tests">
364
365 <!-- Sets junit.report.format to frames if redirection is present,
366 otherwise sets it to noframes. -->
367 <available property="junit.report.format"
368 value="frames"
369 classname="org.apache.xalan.lib.Redirect"
370 />
371 <property name="junit.report.format" value="noframes"/>
372
373 <junitreport todir="${build.reports.dir}">
374 <fileset dir="${build.reports.dir}">
375 <include name="TEST-*.xml"/>
376 </fileset>
377 <report format="${junit.report.format}" todir="${build.reports.dir}"
378 />
379 </junitreport>
380
381 <fail message="Test Cases Failed" if="junit.failed"/>
382
383 </target>
384
385
386 <target name="configure-compiler">
387
388 <property name="unchecked.option" value="-Xlint:unchecked"/>
389
390 <condition property="warnunchecked.arg" value="${unchecked.option}">
391 <istrue value="${build.warnunchecked}"/>
392 </condition>
393
394 <property name="warnunchecked.arg" value=""/>
395
396
397 <!-- Common options in javac invocations -->
398 <property name="build.args" value="${warnunchecked.arg}"/>
399
400 </target>
401
402
403 <target name="configure-tests"
404 depends="configure-compiler">
405
406 <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->
407 <available property="junit.available"
408 classname="junit.framework.Protectable"/>
409
410 <!-- Xalan -->
411 <available property="xalan.available"
412 classname="org.apache.xalan.Version"/>
413
414
415 <!-- Ant 1.6beta and later don't need or want this check -->
416 <!--
417 <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests"
418 unless="junit.available"/>
419
420 <fail message="Need Xalan 2.5.1 jar in ${ant.home}${file.separator}lib to run tests"
421 unless="xalan.available"/>
422 -->
423
424 </target>
425
426
427 <!-- Various demos and test programs -->
428
429
430 <target name="loops" depends="init, configure-compiler"
431 description="Benchmark from Doug Lea's AQS paper">
432
433 <mkdir dir="${build.loops.dir}"/>
434
435 <javac srcdir="${loops.src.dir}"
436 destdir="${build.loops.dir}"
437 debug="${build.debug}"
438 debuglevel="${build.debuglevel}"
439 deprecation="${build.deprecation}"
440 source="${build.sourcelevel}"
441 fork="true">
442
443 <compilerarg line="${build.args}"/>
444 <classpath refid="loops.classpath"/>
445 <compilerarg value="-XDignore.symbol.file=true"/>
446
447 </javac>
448
449 <java classname="ALoops" fork="true">
450 <classpath refid="loops.classpath"/>
451 </java>
452
453 </target>
454
455
456 <!-- jsr166x -->
457
458
459 <target name="jsr166xcompile"
460 depends="init, configure-compiler"
461 description="Compiles jsr166x sources">
462
463 <mkdir dir="${build.jsr166x.dir}"/>
464
465 <javac srcdir="${jsr166xsrc.dir}"
466 destdir="${build.jsr166x.dir}"
467 debug="${build.debug}"
468 debuglevel="${build.debuglevel}"
469 deprecation="${build.deprecation}"
470 source="${build.sourcelevel}"
471 fork="true">
472
473 <include name="**/*.java"/>
474 <compilerarg line="${build.args}"/>
475 <compilerarg value="-XDignore.symbol.file=true"/>
476
477 </javac>
478
479 </target>
480
481
482
483 <target name="jsr166xjar"
484 depends="jsr166xcompile"
485 description="Builds library jar from compiled sources">
486
487 <mkdir dir="${build.jsr166xlib.dir}"/>
488
489 <jar destfile="${jsr166xproduct.jar}">
490 <fileset dir="${build.jsr166x.dir}"/>
491 </jar>
492
493 </target>
494
495
496
497 <target name="jsr166xdocs"
498 description="Builds javadocs with custom tags to build folder">
499
500 <delete dir="${build.jsr166xjavadocs.dir}"/>
501 <mkdir dir="${build.jsr166xjavadocs.dir}"/>
502
503 <javadoc destdir="${build.jsr166xjavadocs.dir}"
504 packagenames="jsr166x"
505 link="http://download.oracle.com/javase/6/docs/api/"
506 source="${build.sourcelevel}"
507 sourcepath="${topsrc.dir}:${jdksrc.dir}" />
508
509 </target>
510
511
512 <target name="jsr166xdist"
513 depends="jsr166xdist-clean, jsr166xdist-jar, jsr166xdist-docs"
514 description="Puts all distributable products in single hierarchy"/>
515
516
517
518 <target name="jsr166xclean"
519 description="Removes all build products">
520
521 <delete dir="${build.jsr166x.dir}"/>
522 <delete dir="${build.jsr166xlib.dir}"/>
523
524 </target>
525
526
527
528 <target name="jsr166xdist-clean"
529 description="Removes all build and distribution products">
530
531 </target>
532
533
534
535 <target name="jsr166xdist-docs"
536 description="Builds javadocs without custom tags to dist folder">
537
538 <delete dir="${dist.jsr166xjavadocs.dir}"/>
539 <mkdir dir="${dist.jsr166xjavadocs.dir}"/>
540
541 <javadoc destdir="${dist.jsr166xjavadocs.dir}"
542 packagenames="jsr166x"
543 link="http://download.oracle.com/javase/6/docs/api/"
544 source="${build.sourcelevel}"
545 sourcepath="${topsrc.dir}:${jdksrc.dir}" />
546
547 </target>
548
549 <target name="jsr166xdist-jar"
550 depends="jsr166xclean, jsr166xjar">
551
552 <copy file="${jsr166xproduct.jar}" todir="${dist.dir}"/>
553
554 </target>
555
556 <!-- jsr166y -->
557
558
559 <target name="jsr166ycompile"
560 depends="init, configure-compiler"
561 description="Compiles jsr166y sources">
562
563 <mkdir dir="${build.jsr166y.dir}"/>
564
565 <javac srcdir="${jsr166ysrc.dir}"
566 destdir="${build.jsr166y.dir}"
567 debug="${build.debug}"
568 debuglevel="${build.debuglevel}"
569 deprecation="${build.deprecation}"
570 source="${build.sourcelevel}"
571 fork="true">
572
573 <include name="**/*.java"/>
574 <compilerarg line="${build.args}"/>
575 <compilerarg value="-XDignore.symbol.file=true"/>
576 <compilerarg value="${bootclasspath.args}"/>
577
578 <!-- <compilerarg line="-Xlint -Xmaxwarns 1000"/> -->
579
580 </javac>
581
582 </target>
583
584
585
586 <target name="jsr166yjar"
587 depends="jsr166ycompile"
588 description="Builds library jar from compiled sources">
589
590 <mkdir dir="${build.jsr166ylib.dir}"/>
591
592 <jar destfile="${jsr166yproduct.jar}" index="true">
593 <fileset dir="${build.jsr166y.dir}"/>
594 </jar>
595
596 </target>
597
598
599
600 <target name="jsr166ydocs"
601 description="Builds javadocs with custom tags to build folder">
602
603 <delete dir="${build.jsr166yjavadocs.dir}"/>
604 <mkdir dir="${build.jsr166yjavadocs.dir}"/>
605
606 <javadoc destdir="${build.jsr166yjavadocs.dir}"
607 packagenames="jsr166y"
608 link="http://download.oracle.com/javase/6/docs/api/"
609 source="${build.sourcelevel}"
610 sourcepath="${topsrc.dir}:${jdksrc.dir}" />
611
612 </target>
613
614
615 <target name="jsr166ydist"
616 depends="jsr166ydist-clean, jsr166ydist-jar, jsr166ydist-docs"
617 description="Puts all distributable products in single hierarchy"/>
618
619
620
621 <target name="jsr166yclean"
622 description="Removes all build products">
623
624 <delete dir="${build.jsr166y.dir}"/>
625 <delete dir="${build.jsr166ylib.dir}"/>
626
627 </target>
628
629
630
631 <target name="jsr166ydist-clean"
632 description="Removes all build and distribution products">
633
634 </target>
635
636 <target name="jsr166ydist-docs"
637 description="Builds javadocs without custom tags to dist folder">
638
639 <delete dir="${dist.jsr166yjavadocs.dir}"/>
640 <mkdir dir="${dist.jsr166yjavadocs.dir}"/>
641
642 <javadoc destdir="${dist.jsr166yjavadocs.dir}"
643 packagenames="jsr166y"
644 link="http://download.oracle.com/javase/6/docs/api/"
645 source="${build.sourcelevel}"
646 sourcepath="${topsrc.dir}:${jdksrc.dir}" />
647
648 </target>
649
650 <target name="jsr166ydist-jar"
651 depends="jsr166yclean, jsr166yjar">
652
653 <copy file="${jsr166yproduct.jar}" todir="${dist.dir}"/>
654
655 </target>
656
657 <!-- extra166y -->
658
659
660 <target name="extra166ycompile"
661 depends="init, configure-compiler, jsr166ycompile"
662 description="Compiles extra166y sources">
663
664 <mkdir dir="${build.extra166y.dir}"/>
665
666 <javac srcdir="${extra166ysrc.dir}"
667 destdir="${build.extra166y.dir}"
668 debug="${build.debug}"
669 classpath="${jsr166yproduct.jar}"
670 debuglevel="${build.debuglevel}"
671 deprecation="${build.deprecation}"
672 source="${build.sourcelevel}"
673 fork="true">
674
675 <include name="**/*.java"/>
676 <compilerarg line="${build.args}"/>
677 <compilerarg value="-XDignore.symbol.file=true"/>
678 <compilerarg value="${bootclasspath.args}"/>
679
680 <!-- <compilerarg line="-Xlint -Xmaxwarns 1000"/> -->
681
682 </javac>
683
684 </target>
685
686
687
688 <target name="extra166yjar"
689 depends="extra166ycompile"
690 description="Builds library jar from compiled sources">
691
692 <mkdir dir="${build.extra166ylib.dir}"/>
693
694 <jar destfile="${extra166yproduct.jar}" index="true">
695 <fileset dir="${build.extra166y.dir}"/>
696 </jar>
697
698 </target>
699
700
701
702 <target name="extra166ydocs"
703 description="Builds javadocs with custom tags to build folder">
704
705 <delete dir="${build.extra166yjavadocs.dir}"/>
706 <mkdir dir="${build.extra166yjavadocs.dir}"/>
707
708 <javadoc destdir="${build.extra166yjavadocs.dir}"
709 packagenames="extra166y"
710 link="http://download.oracle.com/javase/6/docs/api/"
711 source="${build.sourcelevel}"
712 sourcepath="${topsrc.dir}:${jdksrc.dir}" />
713
714 </target>
715
716
717 <target name="extra166ydist"
718 depends="extra166ydist-clean, extra166ydist-jar, extra166ydist-docs"
719 description="Puts all distributable products in single hierarchy"/>
720
721
722
723 <target name="extra166yclean"
724 description="Removes all build products">
725
726 <delete dir="${build.extra166y.dir}"/>
727 <delete dir="${build.extra166ylib.dir}"/>
728
729 </target>
730
731
732
733 <target name="extra166ydist-clean"
734 description="Removes all build and distribution products">
735
736 </target>
737
738 <target name="extra166ydist-docs"
739 description="Builds javadocs without custom tags to dist folder">
740
741 <delete dir="${dist.extra166yjavadocs.dir}"/>
742 <mkdir dir="${dist.extra166yjavadocs.dir}"/>
743
744 <javadoc destdir="${dist.extra166yjavadocs.dir}"
745 packagenames="extra166y"
746 link="http://download.oracle.com/javase/6/docs/api/"
747 source="${build.sourcelevel}"
748 sourcepath="${topsrc.dir}:${jdksrc.dir}" />
749
750 </target>
751
752 <target name="extra166ydist-jar"
753 depends="extra166yclean, extra166yjar">
754
755 <copy file="${extra166yproduct.jar}" todir="${dist.dir}"/>
756
757 </target>
758
759 </project>