ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.72
Committed: Fri May 20 16:29:57 2005 UTC (18 years, 11 months ago) by dl
Content type: text/xml
Branch: MAIN
Changes since 1.71: +19 -9 lines
Log Message:
Committing some long lost change

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.j1.dir" location="${build.dir}/j1"/>
34 <property name="build.loops.dir" location="${build.dir}/loops"/>
35 <property name="build.lib.dir" location="${build.dir}/lib"/>
36 <property name="build.ant.dir" location="${build.dir}/ant"/>
37 <property name="build.javadocs.dir" location="${build.dir}/javadocs"/>
38 <property name="build.reports.dir" location="${build.dir}/reports"/>
39 <property name="build.checkstyle.dir" location="${build.dir}/checkstyle"/>
40 <property name="build.doccheck.dir" location="${build.dir}/doccheck"/>
41 <property name="build.filter.src.dir" location="${build.dir}/filtersrc"/>
42 <property name="build.dc-filter.dir" location="${build.dir}/filterdocchk"/>
43 <property name="build.jsr166x.dir" location="${build.dir}/jsr166x"/>
44 <property name="build.jsr166xlib.dir" location="${build.dir}/jsr166xlib"/>
45 <property name="build.jsr166xjavadocs.dir" location="${build.dir}/jsr166xjavadocs"/>
46
47 <!-- Source locations -->
48 <property name="src.dir" location="${basedir}/src/main"/>
49 <property name="test.src.dir" location="${basedir}/src/test"/>
50 <property name="j1.src.dir" location="${basedir}/src/javaone"/>
51 <property name="loops.src.dir" location="${basedir}/src/loops"/>
52 <property name="tck.src.dir" location="${test.src.dir}/tck"/>
53 <property name="jtreg.src.dir" location="${test.src.dir}/jtreg"/>
54 <property name="ant.src.dir" location="${basedir}/etc/ant"/>
55 <property name="stylesheet.dir" location="${basedir}/etc/xsl"/>
56 <property name="lib.dir" location="${basedir}/lib"/>
57 <property name="dist.dir" location="${basedir}/dist"/>
58 <property name="topsrc.dir" location="${basedir}/src"/>
59 <property name="jsr166xsrc.dir" location="${basedir}/src/jsr166x"/>
60
61 <!-- Distribution locations -->
62 <property name="dist.javadocs.dir" location="${dist.dir}/docs"/>
63 <property name="dist.jsr166xjavadocs.dir" location="${dist.dir}/jsr166xdocs"/>
64
65 <!-- Jar locations -->
66 <property name="product.jar" location="${build.lib.dir}/jsr166.jar"/>
67 <property name="jsr166xproduct.jar" location="${build.jsr166xlib.dir}/jsr166x.jar"/>
68 <property name="junit.jar" location="${lib.dir}/junit.jar"/>
69 <property name="concurrent.jar" location="${lib.dir}/concurrent.jar"/>
70
71 <!-- Bootclasspath argument -->
72 <property name="bootclasspath.args" value="-Xbootclasspath/p:${product.jar}"/>
73
74 <!-- Test classpath -->
75 <path id="test.classpath">
76 <pathelement location="${build.testcases.dir}"/>
77 <pathelement location="${junit.jar}"/>
78 </path>
79
80 <!-- ALoops classpath -->
81 <path id="loops.classpath">
82 <pathelement location="${build.loops.dir}"/>
83 </path>
84
85 <!-- J1 classpath -->
86 <path id="j1.classpath">
87 <pathelement location="${build.classes.dir}"/>
88 <pathelement location="${build.j1.dir}"/>
89 <pathelement location="${junit.jar}"/>
90
91 <!-- Include dl.u.c for BoundedBuffer comparison -->
92 <pathelement location="${concurrent.jar}"/>
93 </path>
94
95
96 <!-- Main targets -->
97
98
99 <target name="compile"
100 depends="init, configure-compiler"
101 description="Compiles main sources to build folder">
102
103 <mkdir dir="${build.classes.dir}"/>
104
105 <javac srcdir="${src.dir}"
106 destdir="${build.classes.dir}"
107 debug="${build.debug}"
108 debuglevel="${build.debuglevel}"
109 deprecation="${build.deprecation}"
110 source="${build.sourcelevel}"
111 fork="true">
112
113 <include name="**/*.java"/>
114 <!--
115 <exclude name="java/lang/**"/>
116 -->
117 <compilerarg line="${build.args}"/>
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://java.sun.com/j2se/1.5.0/docs/api"
153 overview="${src.dir}/intro.html"
154 sourcepath="${src.dir}:/home/dl/1.5.0/j2se/martin/j2se/src/share/classes"
155 >
156
157 <packageset dir="${src.dir}"/>
158
159 </javadoc>
160
161 </target>
162
163
164
165 <target name="doccheck"
166 depends="filter-doccheck"
167 description="Reports on javadoc style errors">
168
169 <delete dir="${build.doccheck.dir}"/>
170 <mkdir dir="${build.doccheck.dir}"/>
171
172 <javadoc doclet="com.sun.tools.doclets.doccheck.DocCheck"
173 docletpath="${lib.dir}/doccheck.jar"
174 destdir="${build.doccheck.dir}">
175 <packageset dir="${build.dc-filter.dir}"/>
176 </javadoc>
177
178 <echo>DocCheck output is in ${build.doccheck.dir}</echo>
179
180 </target>
181
182
183
184 <target name="checkstyle"
185 depends="filter-src"
186 description="Reports on style errors in Java source (verbose, mostly chaff)">
187
188 <taskdef resource="checkstyletask.properties"
189 classpath="${lib.dir}/checkstyle-all-3.1.jar"/>
190
191 <mkdir dir="${build.checkstyle.dir}"/>
192
193 <checkstyle config="etc/checkstyle/sun_checks.xml"
194 failOnViolation="false">
195 <formatter type="xml" toFile="${build.checkstyle.dir}/checkstyle-report.xml"/>
196 <fileset dir="${build.filter.src.dir}" includes="**/*.java"/>
197 </checkstyle>
198
199 <style in="${build.checkstyle.dir}/checkstyle-report.xml"
200 out="${build.checkstyle.dir}/checkstyle-report.html"
201 style="${stylesheet.dir}/checkstyle-frames.xsl"/>
202
203 </target>
204
205
206
207 <target name="dist"
208 depends="init, dist-clean, dist-jar, dist-docs"
209 description="Puts all distributable products in single hierarchy"/>
210
211
212
213 <target name="release"
214 depends="dist"
215 description="Puts entire CVS tree, plus distribution productions, in a jar">
216
217 <property name="release.jar" value="dist/jsr166-${version}-dist.jar"/>
218
219 <jar basedir="${basedir}" destfile="${release.jar}">
220 <!-- <exclude name="build/**"/> -->
221 <exclude name="${release.jar}"/>
222 <exclude name="user.properties"/>
223 <exclude name="etc/notes/**"/>
224 <exclude name="src/emulation/**"/>
225 <exclude name="**/SyntaxTest.java"/>
226 <exclude name="**/SuperfluousAbstract.java"/>
227 </jar>
228
229 </target>
230
231
232
233 <target name="clean"
234 description="Removes all build products">
235
236 <delete dir="${build.dir}"/>
237 <delete dir="${build.classes.dir}"/>
238 <delete dir="${build.lib.dir}"/>
239
240 </target>
241
242
243
244 <target name="dist-clean"
245 description="Removes all build and distribution products">
246
247 <delete dir="${dist.dir}"/>
248
249 </target>
250
251
252
253 <target name="dist-docs"
254 description="Builds javadocs without custom tags to dist folder">
255
256 <delete dir="${dist.javadocs.dir}"/>
257 <mkdir dir="${dist.javadocs.dir}"/>
258
259 <javadoc destdir="${dist.javadocs.dir}"
260 link="http://java.sun.com/j2se/1.5.0/docs/api"
261 overview="${src.dir}/intro.html"
262
263 sourcepath="${src.dir}:/home/dl/1.5.0/j2se/martin/j2se/src/share/classes"
264 >
265 <packageset dir="${src.dir}" defaultexcludes="yes">
266 <include name="java/util/concurrent"/>
267 <include name="java/util/concurrent/atomic"/>
268 <include name="java/util/concurrent/locks"/>
269 </packageset>
270 <fileset dir="${topsrc.dir}" defaultexcludes="yes">
271 <include name="main/java/util/*.java"/>
272 <!-- <include name="jsr166x/*.java"/> -->
273 </fileset>
274 </javadoc>
275
276 </target>
277
278
279
280 <!-- Internal targets -->
281
282
283 <target name="init">
284
285 <!-- Version is kept in a separate file -->
286 <loadfile property="version" srcFile="version.properties"/>
287 <echo>Building JSR-166 version ${version}</echo>
288 <echo>java.home is ${java.home}</echo>
289
290 </target>
291
292
293 <target name="dist-jar"
294 depends="clean, jar">
295
296 <copy file="${product.jar}" todir="${dist.dir}"/>
297
298 </target>
299
300
301 <target name="compile-ant-filter"
302 depends="init">
303
304 <mkdir dir="${build.ant.dir}"/>
305
306 <javac srcdir="${ant.src.dir}"
307 destdir="${build.ant.dir}"
308 source="1.4"/>
309
310 </target>
311
312
313 <target name="filter-src"
314 depends="compile-ant-filter">
315
316 <mkdir dir="${build.filter.src.dir}"/>
317
318 <copy todir="${build.filter.src.dir}">
319 <fileset dir="${src.dir}">
320 <include name="**/*.html"/>
321 </fileset>
322 </copy>
323
324 <copy todir="${build.filter.src.dir}">
325 <fileset dir="${src.dir}">
326 <exclude name="**/*.html"/>
327 <!-- Files excluded from dist-docs -->
328 <exclude name="java/util/Random.*"/>
329 <exclude name="sun/misc/Unsafe.*"/>
330 </fileset>
331 <!--
332 <filterchain>
333 -->
334
335 <!--
336 # This filter gets rid of angle-bracketed type parameters
337 # so that javadoc can run on the result. The following
338 # heuristic seems to work:
339 #
340 # For all lines not starting with space(s)-asterisk-space(s),
341 # replace <something> with a space, where there may be more
342 # than one right angle bracket at the end, and "something"
343 # must not contain parens or pipes. (This may need some
344 # tweaking.)
345 -->
346
347 <!--
348 <filterreader classname="jsr166.ant.filters.ReplaceFilter"
349 classpath="${build.ant.dir}">
350 <param name="notmatching" value="^\s+\*\s.*$"/>
351 <param name="pattern" value="&lt;[^|>()]+?>+"/>
352 <param name="replacement" value=" "/>
353 </filterreader>
354 -->
355
356 <!--
357 </filterchain>
358 -->
359 </copy>
360
361 </target>
362
363
364 <target name="filter-doccheck"
365 depends="filter-src">
366
367 <mkdir dir="${build.dc-filter.dir}"/>
368
369 <copy todir="${build.dc-filter.dir}">
370 <fileset dir="${build.filter.src.dir}">
371 <include name="**/*.html"/>
372 </fileset>
373 </copy>
374
375 <property name="generic.declarations"
376 value="/** Fake type parameter. */ public interface E {} /** Fake type parameter. */ public interface T {} /** Fake type parameter. */ public interface K {} /** Fake type parameter. */ public interface V {}"
377 />
378
379 <copy todir="${build.dc-filter.dir}">
380 <fileset dir="${build.filter.src.dir}">
381 <exclude name="**/*.html"/>
382 </fileset>
383 <filterchain>
384 <!--
385 # These two filters try to make the source look like
386 # something that doccheck can process. The first removes
387 # -source 1.4 assertions and the second adds in a bunch
388 # of single letter public nested marker interfaces so that
389 # the generic type parameters are recognized.
390 -->
391
392 <filterreader classname="jsr166.ant.filters.ReplaceFilter"
393 classpath="${build.ant.dir}">
394 <param name="matching" value="^\s*assert[\s ].*$"/>
395 <param name="pattern" value="assert"/>
396 <param name="replacement" value="//assert"/>
397 </filterreader>
398
399 <filterreader classname="jsr166.ant.filters.ReplaceFilter"
400 classpath="${build.ant.dir}">
401 <param name="matching" value="^([^*]*(class|interface|implements) .*|)\{.*$"/>
402 <param name="pattern" value="$"/>
403 <param name="replacement" value=" ${generic.declarations}"/>
404 </filterreader>
405
406 </filterchain>
407 </copy>
408
409 </target>
410
411
412 <target name="compile-tests"
413 depends="jar">
414
415 <mkdir dir="${build.testcases.dir}"/>
416
417 <javac srcdir="${tck.src.dir}"
418 destdir="${build.testcases.dir}"
419 debug="${build.debug}"
420 debuglevel="${build.debuglevel}"
421 deprecation="${build.deprecation}"
422 source="${build.sourcelevel}"
423 fork="true">
424
425 <compilerarg value="${bootclasspath.args}"/>
426 <compilerarg line="${build.args}"/>
427
428 <classpath refid="test.classpath"/>
429
430 </javac>
431
432 <javac srcdir="${test.src.dir}"
433 destdir="${build.testcases.dir}"
434 debug="${build.debug}"
435 debuglevel="${build.debuglevel}"
436 deprecation="${build.deprecation}"
437 source="${build.sourcelevel}"
438 fork="true">
439
440 <include name="jsr166/test/**"/>
441
442 <compilerarg value="${bootclasspath.args}"/>
443 <compilerarg line="${build.args}"/>
444
445 <classpath refid="test.classpath"/>
446
447 </javac>
448
449 <!--
450 <javac srcdir="${jtreg.src.dir}"
451 destdir="${build.testcases.dir}"
452 debug="${build.debug}"
453 debuglevel="${build.debuglevel}"
454 deprecation="${build.deprecation}"
455 source="${build.sourcelevel}"
456 fork="true">
457
458 <compilerarg value="${bootclasspath.args}"/>
459 <compilerarg line="${build.args}"/>
460
461 <classpath refid="test.classpath"/>
462
463 </javac>
464 -->
465
466 </target>
467
468
469 <target name="run-tests"
470 depends="compile-tests">
471
472 <!-- May be overridden by user.properties -->
473 <property name="testcase" value="*"/>
474
475 <mkdir dir="${build.reports.dir}"/>
476
477 <junit printsummary="true"
478 showoutput="true"
479 errorProperty="junit.failed"
480 failureProperty="junit.failed"
481 dir="${build.reports.dir}"
482 fork="true">
483
484 <jvmarg value="${bootclasspath.args}"/>
485 <jvmarg value="-server"/>
486 <jvmarg value="-showversion"/>
487
488 <classpath refid="test.classpath"/>
489
490 <formatter type="xml"/>
491
492 <batchtest todir="${build.reports.dir}" unless="no.test.tck">
493 <fileset dir="${tck.src.dir}">
494 <include name="**/${testcase}Test.java"/>
495 </fileset>
496 </batchtest>
497
498 <batchtest todir="${build.reports.dir}" if="do.test.old">
499 <fileset dir="${test.src.dir}">
500 <include name="jsr166/test/**/${testcase}Test.java"/>
501 </fileset>
502 </batchtest>
503
504 <!--
505 <batchtest todir="${build.reports.dir}" if="do.test.jtreg">
506 <fileset dir="${jtreg.src.dir}">
507 <include name="**/${testcase}Test.java"/>
508 </fileset>
509 </batchtest>
510 -->
511
512 </junit>
513
514 </target>
515
516
517 <target name="report-tests"
518 depends="run-tests">
519
520 <!-- Sets junit.report.format to frames if redirection is present,
521 otherwise sets it to noframes. -->
522 <available property="junit.report.format"
523 value="frames"
524 classname="org.apache.xalan.lib.Redirect"
525 />
526 <property name="junit.report.format" value="noframes"/>
527
528 <junitreport todir="${build.reports.dir}">
529 <fileset dir="${build.reports.dir}">
530 <include name="TEST-*.xml"/>
531 </fileset>
532 <report styledir="${stylesheet.dir}"
533 format="${junit.report.format}"
534 todir="${build.reports.dir}"
535 />
536 </junitreport>
537
538 <fail message="Test Cases Failed" if="junit.failed"/>
539
540 </target>
541
542
543 <target name="configure-compiler">
544
545 <property name="unchecked.option" value="-Xlint:unchecked"/>
546
547 <condition property="warnunchecked.arg" value="${unchecked.option}">
548 <istrue value="${build.warnunchecked}"/>
549 </condition>
550
551 <property name="warnunchecked.arg" value=""/>
552
553
554 <!-- Common options in javac invocations -->
555 <property name="build.args" value="${warnunchecked.arg}"/>
556
557 </target>
558
559
560 <target name="configure-tests"
561 depends="configure-compiler">
562
563 <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->
564 <available property="junit.available"
565 classname="junit.framework.Protectable"/>
566
567 <!-- Xalan -->
568 <available property="xalan.available"
569 classname="org.apache.xalan.Version"/>
570
571
572 <!-- Ant 1.6beta and later don't need or want this check -->
573 <!--
574 <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests"
575 unless="junit.available"/>
576
577 <fail message="Need Xalan 2.5.1 jar in ${ant.home}${file.separator}lib to run tests"
578 unless="xalan.available"/>
579 -->
580
581 </target>
582
583
584
585 <!-- Anthill targets -->
586
587 <target name="anthill-build">
588
589 <!-- Override this in user.properties -->
590 <property name="tiger.home" location="e:/j2sdk1.5.0"/>
591
592 <exec resultproperty="result.property" dir="${basedir}" executable="${tiger.home}/bin/java">
593 <arg value="-Xmx256000000"/>
594 <!-- classpath of new JVM -->
595 <arg value="-classpath"/> <arg path="${java.class.path}"/>
596 <!-- location of Ant home directory -->
597 <arg value="-Dant.home=${ant.home}"/>
598 <!-- the Ant main class -->
599 <arg value="org.apache.tools.ant.Main"/>
600 <!-- The build file -->
601 <arg value="-buildfile"/> <arg value="build.xml"/>
602 <!-- the target to build on the new Ant instance -->
603 <arg value="-DJAVA_HOME=${tiger.home}"/>
604 <arg value="do-anthill-build"/>
605 </exec>
606 </target>
607
608 <target name="do-anthill-build"
609 depends="jar, test, docs, dist-docs"/>
610
611 <target name="anthill-publish">
612
613 <copy todir="${deployDir}/docs/private">
614 <fileset dir="${build.javadocs.dir}"/>
615 </copy>
616
617 <copy todir="${deployDir}/docs/public">
618 <fileset dir="${dist.javadocs.dir}"/>
619 </copy>
620
621 <copy tofile="${deployDir}/index.html"
622 file="${basedir}/etc/anthill-index.html"/>
623
624 <copy todir="${deployDir}/notes">
625 <fileset dir="${basedir}/etc/notes"/>
626 </copy>
627
628 </target>
629
630
631
632 <!-- Various demos and test programs -->
633
634
635 <target name="sample" depends="init, configure-compiler"
636 description="Standalone demo program">
637
638 <mkdir dir="${build.testcases.dir}"/>
639
640 <javac srcdir="${test.src.dir}"
641 destdir="${build.testcases.dir}"
642 debug="${build.debug}"
643 debuglevel="${build.debuglevel}"
644 deprecation="${build.deprecation}"
645 source="${build.sourcelevel}"
646 fork="true">
647
648 <include name="jsr166/test/Sample.java"/>
649
650 </javac>
651
652 <copy todir="${build.testcases.dir}">
653 <fileset dir="${test.src.dir}">
654 <include name="**/*.properties"/>
655 </fileset>
656 </copy>
657
658
659 <java classname="jsr166.test.Sample" fork="true">
660 <classpath refid="test.classpath"/>
661 <!-- <jvmarg value="-ea"/> -->
662 <!-- <jvmarg value="-server"/> -->
663 <!-- <arg value="1000"/> -->
664 </java>
665 </target>
666
667
668 <target name="loops" depends="init, configure-compiler"
669 description="Benchmark from Doug Lea's AQS paper">
670
671 <mkdir dir="${build.loops.dir}"/>
672
673 <javac srcdir="${loops.src.dir}"
674 destdir="${build.loops.dir}"
675 debug="${build.debug}"
676 debuglevel="${build.debuglevel}"
677 deprecation="${build.deprecation}"
678 source="${build.sourcelevel}"
679 fork="true">
680
681 <compilerarg line="${build.args}"/>
682 <classpath refid="loops.classpath"/>
683
684 </javac>
685
686 <java classname="ALoops" fork="true">
687 <classpath refid="loops.classpath"/>
688 </java>
689
690 </target>
691
692
693 <target name="compile-j1" depends="init, configure-compiler, compile">
694
695 <mkdir dir="${build.j1.dir}"/>
696
697 <javac srcdir="${j1.src.dir}"
698 destdir="${build.j1.dir}"
699 debug="${build.debug}"
700 debuglevel="${build.debuglevel}"
701 deprecation="${build.deprecation}"
702 source="${build.sourcelevel}" >
703
704 <include name="**/*.java"/>
705 <exclude name="**/dijkstra/**"/>
706
707 <compilerarg line="${build.args}"/>
708 <classpath refid="j1.classpath"/>
709
710 </javac>
711
712 </target>
713
714
715 <target name="sw" depends="compile-j1"
716 description="Runs the SwingWorker demo">
717
718 <!--
719 <java classname="jsr166.swing.SwingWorkerDemo" fork="true">
720 <classpath refid="j1.classpath"/>
721 </java>
722 -->
723
724 <copy todir="${build.j1.dir}" file="${j1.src.dir}/jsr166/swing/SwingWorker.html"/>
725
726 <exec dir="${build.j1.dir}" executable="appletviewer.exe">
727 <arg value="${build.j1.dir}/SwingWorker.html"/>
728 </exec>
729
730 </target>
731
732 <target name="j1" depends="compile-j1"
733 description="Runs a standalone JavaOne program">
734
735 <java classname="${j1.test}" fork="true">
736 <classpath refid="j1.classpath"/>
737 <jvmarg value="-client"/>
738
739 <!-- TestPseudoRandom args -->
740 <arg value="2"/>
741 <arg value="25"/>
742 <arg value="100000"/>
743
744 <!-- WebCrawler args -->
745 <!--
746 <arg value="jsr166.webcrawler.WebCrawler3"/>
747 <arg value="http://www.priorartisans.com"/>
748 <arg value="25"/>
749 -->
750
751 </java>
752
753 </target>
754
755
756 <target name="test-j1" depends="compile-j1"
757 description="Runs testcases from the JavaOne source directories">
758
759 <junit printsummary="true"
760 showoutput="true"
761 errorProperty="junit.failed"
762 failureProperty="junit.failed"
763 dir="${build.j1.dir}"
764 fork="true">
765
766 <!-- <jvmarg value="-server"/> -->
767 <classpath refid="j1.classpath"/>
768 <formatter type="xml"/>
769
770 <batchtest todir="${build.j1.dir}">
771 <fileset dir="${j1.src.dir}">
772 <include name="**/*Test.java"/>
773 </fileset>
774 </batchtest>
775
776 </junit>
777
778 <available property="junit.report.format"
779 value="frames"
780 classname="org.apache.xalan.lib.Redirect"/>
781 <property name="junit.report.format" value="noframes"/>
782
783 <junitreport todir="${build.j1.dir}">
784 <fileset dir="${build.j1.dir}">
785 <include name="TEST-*.xml"/>
786 </fileset>
787 <report styledir="${stylesheet.dir}"
788 format="${junit.report.format}"
789 todir="${build.j1.dir}"
790 />
791 </junitreport>
792
793 <fail message="Test Cases Failed" if="junit.failed"/>
794
795 </target>
796
797
798
799 <!-- C++ and JNI definitions and demos -->
800
801 <target name="configure-cpp">
802
803 <!-- Define tasks and types -->
804
805 <path id="cpptasks.path">
806 <pathelement location="${lib.dir}/cpptasks.jar"/>
807 </path>
808 <taskdef resource="cpptasks.tasks" classpathref="cpptasks.path"/>
809 <typedef resource="cpptasks.types" classpathref="cpptasks.path"/>
810
811 <!-- Set platform property for JNI includes -->
812
813 <condition property="platform" value="linux">
814 <os name="Linux"/>
815 </condition>
816 <condition property="platform" value="win32">
817 <os family="windows"/>
818 </condition>
819 <condition property="platform" value="solaris">
820 <os name="SunOS"/>
821 </condition>
822
823 </target>
824
825
826 <target name="cppdemo" depends="configure-cpp">
827
828 <mkdir dir="${build.dir}"/>
829
830 <cc multithreaded="true"
831 name="g++"
832 objdir="${build.dir}"
833 outfile="${build.dir}/CppDemo">
834 <fileset dir="${test.src.dir}" includes="CppDemo.cpp"/>
835 <libset libs="stdc++"/>
836 </cc>
837
838 <exec executable="${build.dir}/CppDemo">
839 <arg line="count in word frequency of word in command line count"/>
840 </exec>
841
842 </target>
843
844
845 <target name="jnidemo" depends="init, configure-compiler, configure-cpp">
846
847 <mkdir dir="${build.testcases.dir}"/>
848
849 <javac srcdir="${test.src.dir}"
850 destdir="${build.testcases.dir}"
851 debug="${build.debug}"
852 debuglevel="${build.debuglevel}"
853 deprecation="${build.deprecation}"
854 source="${build.sourcelevel}"
855 fork="true">
856 <compilerarg value="${bootclasspath.args}"/>
857 <compilerarg line="${build.args}"/>
858 <classpath refid="test.classpath"/>
859 <include name="JniDemo.java"/>
860 </javac>
861
862 <javah destdir="${build.testcases.dir}"
863 classpathref="test.classpath">
864 <class name="JniDemo"/>
865 </javah>
866
867 <cc multithreaded="true"
868 name="g++"
869 objdir="${build.dir}"
870 outfile="${build.dir}/JniDemo"
871 outtype="shared">
872
873 <compiler>
874 <defineset>
875 <define name="__int64" value="long long"/>
876 </defineset>
877 <includepath location="${java.home}/../include"/>
878 <includepath location="${java.home}/../include/${platform}"/>
879 <compilerarg value="-mno-cygwin"/>
880 </compiler>
881
882 <linker>
883 <linkerarg value="--add-stdcall-alias"/>
884 </linker>
885
886 <includepath location="${build.testcases.dir}"/>
887
888 <fileset dir="${test.src.dir}" includes="JniDemo.cpp"/>
889
890 <libset libs="stdc++"/>
891
892 </cc>
893
894 <!-- Necessary if windows, harmless if not -->
895 <copy file="${build.dir}/libJniDemo.so" tofile="${build.dir}/JniDemo.dll"/>
896
897 <java classname="JniDemo" fork="true">
898 <!-- Watch out: path separator hardwired to semicolon here! -->
899 <sysproperty key="java.library.path" path="${java.library.path};${build.dir}"/>
900 <classpath refid="test.classpath"/>
901 <arg line="count in word frequency of word in command line count"/>
902 </java>
903
904 </target>
905
906
907
908 <!-- Backward compatibility, work in progress (some files not checked in) -->
909
910
911
912 <property name="pretiger.src.dir" location="${build.dir}/pretiger/src"/>
913 <property name="build.pretiger.dir" location="${build.dir}/pretiger/classes"/>
914 <property name="pretiger.jar" location="${build.lib.dir}/jsr166-pretiger.jar"/>
915 <property name="pretiger.sourcelevel" value="1.4"/>
916
917 <target name="defang"
918 depends="init"
919 description="Generates pre-Tiger compatible source">
920
921 <delete dir="${pretiger.src.dir}"/>
922 <mkdir dir="${pretiger.src.dir}"/>
923
924 <exec executable="perl">
925 <arg file="etc/defang.pl"/>
926 <!-- <arg value="-v"/> -->
927 <arg value="-s"/> <arg file="${src.dir}"/>
928 <arg value="-t"/> <arg file="${pretiger.src.dir}"/>
929 </exec>
930
931 </target>
932
933 <target name="compile-pretiger"
934 depends="init, configure-compiler, defang"
935 description="Compiles pre-Tiger sources to build folder">
936
937 <mkdir dir="${build.pretiger.dir}"/>
938
939 <javac srcdir="${pretiger.src.dir}"
940 destdir="${build.pretiger.dir}"
941 debug="${build.debug}"
942 debuglevel="${build.debuglevel}"
943 deprecation="${build.deprecation}"
944 source="${pretiger.sourcelevel}"
945 fork="true">
946
947 <compilerarg line="${build.args}"/>
948 <exclude name="**/Thread.java"/>
949
950 </javac>
951
952 </target>
953
954 <target name="pretiger" depends="compile-pretiger">
955
956 <mkdir dir="${build.lib.dir}"/>
957
958 <jar destfile="${pretiger.jar}">
959 <fileset dir="${build.pretiger.dir}">
960 </fileset>
961 </jar>
962
963 </target>
964
965 <!-- jsr166x -->
966
967
968 <target name="jsr166xcompile"
969 depends="init, configure-compiler"
970 description="Compiles jsr166x sources">
971
972 <mkdir dir="${build.jsr166x.dir}"/>
973
974 <javac srcdir="${jsr166xsrc.dir}"
975 destdir="${build.jsr166x.dir}"
976 debug="${build.debug}"
977 debuglevel="${build.debuglevel}"
978 deprecation="${build.deprecation}"
979 source="${build.sourcelevel}"
980 fork="true">
981
982 <include name="**/*.java"/>
983 <compilerarg line="${build.args}"/>
984
985 </javac>
986
987 </target>
988
989
990
991 <target name="jsr166xjar"
992 depends="jsr166xcompile"
993 description="Builds library jar from compiled sources">
994
995 <mkdir dir="${build.jsr166xlib.dir}"/>
996
997 <jar destfile="${jsr166xproduct.jar}">
998 <fileset dir="${build.jsr166x.dir}"/>
999 </jar>
1000
1001 </target>
1002
1003
1004
1005 <target name="jsr166xdocs"
1006 description="Builds javadocs with custom tags to build folder">
1007
1008 <delete dir="${build.jsr166xjavadocs.dir}"/>
1009 <mkdir dir="${build.jsr166xjavadocs.dir}"/>
1010
1011 <javadoc destdir="${build.jsr166xjavadocs.dir}"
1012 link="http://java.sun.com/j2se/1.5.0/docs/api/"
1013 sourcepath="${jsr166xsrc.dir}:/home/dl/1.5.0/j2se/martin/j2se/src/share/classes"
1014
1015 >
1016 <packageset dir="${topsrc.dir}" defaultexcludes="yes">
1017 <include name="jsr166x"/>
1018 </packageset>
1019
1020
1021 </javadoc>
1022
1023 </target>
1024
1025
1026 <target name="jsr166xdist"
1027 depends="jsr166xdist-clean, jsr166xdist-jar, jsr166xdist-docs"
1028 description="Puts all distributable products in single hierarchy"/>
1029
1030
1031
1032 <target name="jsr166xclean"
1033 description="Removes all build products">
1034
1035 <delete dir="${build.jsr166x.dir}"/>
1036 <delete dir="${build.jsr166xlib.dir}"/>
1037
1038 </target>
1039
1040
1041
1042 <target name="jsr166xdist-clean"
1043 description="Removes all build and distribution products">
1044
1045 </target>
1046
1047
1048
1049 <target name="jsr166xdist-docs"
1050 description="Builds javadocs without custom tags to dist folder">
1051
1052 <delete dir="${dist.jsr166xjavadocs.dir}"/>
1053 <mkdir dir="${dist.jsr166xjavadocs.dir}"/>
1054
1055 <javadoc destdir="${dist.jsr166xjavadocs.dir}"
1056 link="http://java.sun.com/j2se/1.5.0/docs/api/"
1057 source="${build.sourcelevel}">
1058
1059 <packageset dir="${topsrc.dir}" defaultexcludes="yes">
1060 <include name="jsr166x"/>
1061 </packageset>
1062
1063 </javadoc>
1064
1065 </target>
1066
1067 <target name="jsr166xdist-jar"
1068 depends="jsr166xclean, jsr166xjar">
1069
1070 <copy file="${jsr166xproduct.jar}" todir="${dist.dir}"/>
1071
1072 </target>
1073
1074 </project>