ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.75
Committed: Tue Sep 18 12:46:40 2007 UTC (16 years, 7 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.74: +1 -529 lines
Log Message:
Removed obsolete targets and sources.

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