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

# User Rev Content
1 tim 1.18 <project name="jsr166" default="usage">
2 tim 1.1
3     <description>
4 tim 1.29 ------------------------------------------------------------------------------
5     Build file for JSR-166
6 tim 1.18
7 tim 1.29 Usage: ant [target]
8    
9     User-specific settings are read from user.properties.
10 tim 1.32 See user.properties.sample for an explanation of some useful settings.
11 tim 1.29 ------------------------------------------------------------------------------
12 tim 1.18 </description>
13 tim 1.11
14 tim 1.29 <target name="usage" description="Advises user to run with -projecthelp">
15     <echo>Run "ant -projecthelp" for full usage information.</echo>
16     </target>
17 tim 1.3
18 tim 1.11
19 tim 1.27 <!-- User-specific settings -->
20 tim 1.23 <property file="user.properties"/>
21 tim 1.27
22 tim 1.1
23     <!-- Compilation options -->
24 tim 1.11 <property name="build.sourcelevel" value="1.5"/>
25 tim 1.1 <property name="build.debug" value="true"/>
26     <property name="build.debuglevel" value="source,lines,vars"/>
27 tim 1.13 <property name="build.deprecation" value="false"/>
28 tim 1.1
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 tim 1.64 <property name="build.j1.dir" location="${build.dir}/j1"/>
34 jsr166 1.65 <property name="build.loops.dir" location="${build.dir}/loops"/>
35 tim 1.1 <property name="build.lib.dir" location="${build.dir}/lib"/>
36     <property name="build.ant.dir" location="${build.dir}/ant"/>
37 tim 1.9 <property name="build.javadocs.dir" location="${build.dir}/javadocs"/>
38 tim 1.1 <property name="build.reports.dir" location="${build.dir}/reports"/>
39 tim 1.59 <property name="build.checkstyle.dir" location="${build.dir}/checkstyle"/>
40 tim 1.16 <property name="build.doccheck.dir" location="${build.dir}/doccheck"/>
41 tim 1.1 <property name="build.filter.src.dir" location="${build.dir}/filtersrc"/>
42 tim 1.58 <property name="build.dc-filter.dir" location="${build.dir}/filterdocchk"/>
43 dl 1.70 <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 tim 1.1
47     <!-- Source locations -->
48 tim 1.22 <property name="src.dir" location="${basedir}/src/main"/>
49     <property name="test.src.dir" location="${basedir}/src/test"/>
50 tim 1.64 <property name="j1.src.dir" location="${basedir}/src/javaone"/>
51 jsr166 1.65 <property name="loops.src.dir" location="${basedir}/src/loops"/>
52 tim 1.60 <property name="tck.src.dir" location="${test.src.dir}/tck"/>
53 tim 1.62 <property name="jtreg.src.dir" location="${test.src.dir}/jtreg"/>
54 tim 1.1 <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 tim 1.9 <property name="dist.dir" location="${basedir}/dist"/>
58 dl 1.70 <property name="topsrc.dir" location="${basedir}/src"/>
59     <property name="jsr166xsrc.dir" location="${basedir}/src/jsr166x"/>
60 tim 1.9
61     <!-- Distribution locations -->
62     <property name="dist.javadocs.dir" location="${dist.dir}/docs"/>
63 dl 1.70 <property name="dist.jsr166xjavadocs.dir" location="${dist.dir}/jsr166xdocs"/>
64 tim 1.1
65     <!-- Jar locations -->
66     <property name="product.jar" location="${build.lib.dir}/jsr166.jar"/>
67 dl 1.70 <property name="jsr166xproduct.jar" location="${build.jsr166xlib.dir}/jsr166x.jar"/>
68 tim 1.1 <property name="junit.jar" location="${lib.dir}/junit.jar"/>
69 jsr166 1.66 <property name="concurrent.jar" location="${lib.dir}/concurrent.jar"/>
70 jsr166 1.65
71 tim 1.59 <!-- Bootclasspath argument -->
72     <property name="bootclasspath.args" value="-Xbootclasspath/p:${product.jar}"/>
73 tim 1.27
74 tim 1.59 <!-- Test classpath -->
75     <path id="test.classpath">
76     <pathelement location="${build.testcases.dir}"/>
77     <pathelement location="${junit.jar}"/>
78     </path>
79 tim 1.28
80 jsr166 1.65 <!-- ALoops classpath -->
81     <path id="loops.classpath">
82     <pathelement location="${build.loops.dir}"/>
83     </path>
84    
85     <!-- J1 classpath -->
86 tim 1.64 <path id="j1.classpath">
87 peierls 1.71 <pathelement location="${build.classes.dir}"/>
88 tim 1.64 <pathelement location="${build.j1.dir}"/>
89     <pathelement location="${junit.jar}"/>
90 peierls 1.71
91     <!-- Include dl.u.c for BoundedBuffer comparison -->
92 jsr166 1.66 <pathelement location="${concurrent.jar}"/>
93 tim 1.64 </path>
94    
95 tim 1.28
96 tim 1.59 <!-- Main targets -->
97 tim 1.28
98 tim 1.11
99 tim 1.28 <target name="compile"
100 tim 1.60 depends="init, configure-compiler"
101 tim 1.27 description="Compiles main sources to build folder">
102    
103 tim 1.1 <mkdir dir="${build.classes.dir}"/>
104 tim 1.27
105 tim 1.60 <javac srcdir="${src.dir}"
106 tim 1.1 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 jsr166 1.68 <include name="**/*.java"/>
114 dl 1.72 <!--
115 jsr166 1.68 <exclude name="java/lang/**"/>
116 dl 1.72 -->
117 tim 1.58 <compilerarg line="${build.args}"/>
118 tim 1.1
119     </javac>
120 tim 1.27
121 tim 1.1 </target>
122    
123    
124 tim 1.59
125 tim 1.28 <target name="jar"
126 tim 1.59 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 tim 1.1
138    
139 tim 1.28 <target name="test"
140 tim 1.32 depends="init, configure-tests, report-tests"
141 tim 1.29 description="Runs all tests (requires JUnit 3.8.1 in ${ant.home}/lib)" />
142 tim 1.1
143    
144 tim 1.59
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 dl 1.72 link="http://java.sun.com/j2se/1.5.0/docs/api"
153 tim 1.59 overview="${src.dir}/intro.html"
154 dl 1.72 sourcepath="${src.dir}:/home/dl/1.5.0/j2se/martin/j2se/src/share/classes"
155     >
156 tim 1.59
157     <packageset dir="${src.dir}"/>
158    
159     </javadoc>
160    
161     </target>
162    
163    
164    
165 tim 1.60 <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 tim 1.28 <target name="checkstyle"
185     depends="filter-src"
186 tim 1.18 description="Reports on style errors in Java source (verbose, mostly chaff)">
187 tim 1.27
188 tim 1.15 <taskdef resource="checkstyletask.properties"
189 tim 1.58 classpath="${lib.dir}/checkstyle-all-3.1.jar"/>
190 tim 1.15
191 tim 1.58 <mkdir dir="${build.checkstyle.dir}"/>
192 jsr166 1.65
193 tim 1.58 <checkstyle config="etc/checkstyle/sun_checks.xml"
194     failOnViolation="false">
195 jsr166 1.65 <formatter type="xml" toFile="${build.checkstyle.dir}/checkstyle-report.xml"/>
196 tim 1.15 <fileset dir="${build.filter.src.dir}" includes="**/*.java"/>
197     </checkstyle>
198 jsr166 1.65
199     <style in="${build.checkstyle.dir}/checkstyle-report.xml"
200     out="${build.checkstyle.dir}/checkstyle-report.html"
201 tim 1.58 style="${stylesheet.dir}/checkstyle-frames.xsl"/>
202 tim 1.27
203 tim 1.15 </target>
204    
205 jsr166 1.65
206 tim 1.8
207 tim 1.28 <target name="dist"
208     depends="init, dist-clean, dist-jar, dist-docs"
209 tim 1.16 description="Puts all distributable products in single hierarchy"/>
210 tim 1.1
211 tim 1.58
212 tim 1.59
213 tim 1.42 <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 tim 1.58 <!-- <exclude name="build/**"/> -->
221 tim 1.42 <exclude name="${release.jar}"/>
222     <exclude name="user.properties"/>
223     <exclude name="etc/notes/**"/>
224 tim 1.58 <exclude name="src/emulation/**"/>
225 tim 1.44 <exclude name="**/SyntaxTest.java"/>
226 tim 1.58 <exclude name="**/SuperfluousAbstract.java"/>
227 tim 1.42 </jar>
228    
229     </target>
230 tim 1.1
231 tim 1.59
232    
233 tim 1.11 <target name="clean"
234     description="Removes all build products">
235 tim 1.27
236 tim 1.11 <delete dir="${build.dir}"/>
237     <delete dir="${build.classes.dir}"/>
238     <delete dir="${build.lib.dir}"/>
239 tim 1.27
240 tim 1.1 </target>
241    
242    
243 tim 1.59
244 tim 1.11 <target name="dist-clean"
245     description="Removes all build and distribution products">
246 tim 1.27
247 tim 1.11 <delete dir="${dist.dir}"/>
248 tim 1.27
249 tim 1.9 </target>
250 tim 1.10
251    
252 tim 1.59
253 tim 1.28 <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 dl 1.72 link="http://java.sun.com/j2se/1.5.0/docs/api"
261 tim 1.28 overview="${src.dir}/intro.html"
262 tim 1.14
263 dl 1.72 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 tim 1.28 </javadoc>
275 tim 1.14
276     </target>
277    
278    
279 tim 1.28
280 tim 1.11 <!-- Internal targets -->
281 tim 1.9
282 tim 1.16
283 tim 1.32 <target name="init">
284 tim 1.27
285 tim 1.11 <!-- Version is kept in a separate file -->
286     <loadfile property="version" srcFile="version.properties"/>
287     <echo>Building JSR-166 version ${version}</echo>
288 tim 1.54 <echo>java.home is ${java.home}</echo>
289 tim 1.27
290     </target>
291 jsr166 1.65
292    
293 tim 1.28 <target name="dist-jar"
294     depends="clean, jar">
295 tim 1.27
296 tim 1.11 <copy file="${product.jar}" todir="${dist.dir}"/>
297 tim 1.27
298 tim 1.11 </target>
299    
300    
301 tim 1.28 <target name="compile-ant-filter"
302     depends="init">
303 tim 1.27
304 tim 1.1 <mkdir dir="${build.ant.dir}"/>
305 tim 1.27
306 tim 1.1 <javac srcdir="${ant.src.dir}"
307     destdir="${build.ant.dir}"
308 jsr166 1.65 source="1.4"/>
309 tim 1.27
310 tim 1.1 </target>
311    
312    
313 tim 1.28 <target name="filter-src"
314     depends="compile-ant-filter">
315 tim 1.27
316 tim 1.1 <mkdir dir="${build.filter.src.dir}"/>
317 tim 1.27
318 tim 1.1 <copy todir="${build.filter.src.dir}">
319     <fileset dir="${src.dir}">
320 tim 1.31 <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 tim 1.59 <!-- Files excluded from dist-docs -->
328     <exclude name="java/util/Random.*"/>
329     <exclude name="sun/misc/Unsafe.*"/>
330 tim 1.1 </fileset>
331 tim 1.59 <!--
332 tim 1.1 <filterchain>
333 tim 1.59 -->
334 tim 1.36
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 tim 1.59 <!--
348 tim 1.1 <filterreader classname="jsr166.ant.filters.ReplaceFilter"
349     classpath="${build.ant.dir}">
350     <param name="notmatching" value="^\s+\*\s.*$"/>
351 tim 1.36 <param name="pattern" value="&lt;[^|>()]+?>+"/>
352 tim 1.1 <param name="replacement" value=" "/>
353     </filterreader>
354 tim 1.59 -->
355 tim 1.36
356 tim 1.59 <!--
357 tim 1.47 </filterchain>
358 tim 1.59 -->
359 tim 1.47 </copy>
360    
361     </target>
362    
363    
364     <target name="filter-doccheck"
365     depends="filter-src">
366 tim 1.36
367 tim 1.58 <mkdir dir="${build.dc-filter.dir}"/>
368 tim 1.36
369 tim 1.58 <copy todir="${build.dc-filter.dir}">
370 tim 1.47 <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 tim 1.58 <copy todir="${build.dc-filter.dir}">
380 tim 1.47 <fileset dir="${build.filter.src.dir}">
381     <exclude name="**/*.html"/>
382     </fileset>
383     <filterchain>
384 tim 1.36 <!--
385 tim 1.47 # These two filters try to make the source look like
386 tim 1.36 # 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 tim 1.47 <param name="matching" value="^([^*]*(class|interface|implements) .*|)\{.*$"/>
402 tim 1.36 <param name="pattern" value="$"/>
403     <param name="replacement" value=" ${generic.declarations}"/>
404     </filterreader>
405    
406 tim 1.1 </filterchain>
407     </copy>
408 tim 1.27
409 tim 1.1 </target>
410    
411    
412 tim 1.28 <target name="compile-tests"
413     depends="jar">
414 tim 1.27
415 tim 1.1 <mkdir dir="${build.testcases.dir}"/>
416 tim 1.37
417 tim 1.60 <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 jsr166 1.65
428 tim 1.60 <classpath refid="test.classpath"/>
429    
430     </javac>
431    
432     <javac srcdir="${test.src.dir}"
433 tim 1.1 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 tim 1.60 <include name="jsr166/test/**"/>
441 jsr166 1.65
442 tim 1.59 <compilerarg value="${bootclasspath.args}"/>
443 tim 1.57 <compilerarg line="${build.args}"/>
444 jsr166 1.65
445 tim 1.57 <classpath refid="test.classpath"/>
446 tim 1.1
447     </javac>
448 tim 1.27
449 tim 1.62 <!--
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 jsr166 1.65
461 tim 1.62 <classpath refid="test.classpath"/>
462    
463     </javac>
464     -->
465    
466 tim 1.1 </target>
467 tim 1.11
468 tim 1.1
469 tim 1.28 <target name="run-tests"
470     depends="compile-tests">
471 tim 1.27
472     <!-- May be overridden by user.properties -->
473     <property name="testcase" value="*"/>
474    
475 tim 1.1 <mkdir dir="${build.reports.dir}"/>
476 tim 1.27
477 tim 1.1 <junit printsummary="true"
478     showoutput="true"
479     errorProperty="junit.failed"
480     failureProperty="junit.failed"
481 tim 1.12 dir="${build.reports.dir}"
482     fork="true">
483    
484 tim 1.59 <jvmarg value="${bootclasspath.args}"/>
485 tim 1.64 <jvmarg value="-server"/>
486     <jvmarg value="-showversion"/>
487 jsr166 1.65
488 tim 1.59 <classpath refid="test.classpath"/>
489 tim 1.1
490     <formatter type="xml"/>
491    
492 tim 1.62 <batchtest todir="${build.reports.dir}" unless="no.test.tck">
493 tim 1.60 <fileset dir="${tck.src.dir}">
494     <include name="**/${testcase}Test.java"/>
495     </fileset>
496 tim 1.62 </batchtest>
497 jsr166 1.65
498 tim 1.62 <batchtest todir="${build.reports.dir}" if="do.test.old">
499 tim 1.60 <fileset dir="${test.src.dir}">
500     <include name="jsr166/test/**/${testcase}Test.java"/>
501 tim 1.1 </fileset>
502     </batchtest>
503 tim 1.62
504 jsr166 1.65 <!--
505 tim 1.62 <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 tim 1.1
512     </junit>
513 tim 1.27
514 tim 1.1 </target>
515    
516    
517 tim 1.28 <target name="report-tests"
518     depends="run-tests">
519    
520 tim 1.54 <!-- Sets junit.report.format to frames if redirection is present,
521 tim 1.1 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 tim 1.28
540 tim 1.18 </target>
541    
542    
543 tim 1.32 <target name="configure-compiler">
544 tim 1.54
545     <property name="unchecked.option" value="-Xlint:unchecked"/>
546    
547     <condition property="warnunchecked.arg" value="${unchecked.option}">
548 tim 1.57 <istrue value="${build.warnunchecked}"/>
549 tim 1.32 </condition>
550    
551 tim 1.37 <property name="warnunchecked.arg" value=""/>
552 tim 1.34
553 tim 1.32
554     <!-- Common options in javac invocations -->
555 tim 1.57 <property name="build.args" value="${warnunchecked.arg}"/>
556 tim 1.33
557     </target>
558    
559    
560 tim 1.37 <target name="configure-tests"
561     depends="configure-compiler">
562 tim 1.28
563     <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->
564 tim 1.18 <available property="junit.available"
565 tim 1.28 classname="junit.framework.Protectable"/>
566    
567 tim 1.54 <!-- Xalan -->
568     <available property="xalan.available"
569     classname="org.apache.xalan.Version"/>
570    
571 jsr166 1.65
572 tim 1.59 <!-- Ant 1.6beta and later don't need or want this check -->
573 jsr166 1.65 <!--
574 tim 1.59 <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests"
575     unless="junit.available"/>
576    
577 tim 1.54 <fail message="Need Xalan 2.5.1 jar in ${ant.home}${file.separator}lib to run tests"
578     unless="xalan.available"/>
579 tim 1.59 -->
580 tim 1.30
581 tim 1.28 </target>
582    
583    
584    
585     <!-- Anthill targets -->
586    
587 tim 1.54 <target name="anthill-build">
588 jsr166 1.65
589 tim 1.55 <!-- Override this in user.properties -->
590     <property name="tiger.home" location="e:/j2sdk1.5.0"/>
591 jsr166 1.65
592 tim 1.54 <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 jsr166 1.65
608 tim 1.54 <target name="do-anthill-build"
609 tim 1.28 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 tim 1.43 </target>
629    
630    
631 jsr166 1.65
632     <!-- Various demos and test programs -->
633    
634    
635     <target name="sample" depends="init, configure-compiler"
636     description="Standalone demo program">
637    
638 tim 1.59 <mkdir dir="${build.testcases.dir}"/>
639 jsr166 1.65
640 tim 1.59 <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 jsr166 1.65
648 tim 1.61 <include name="jsr166/test/Sample.java"/>
649 jsr166 1.65
650 tim 1.59 </javac>
651 jsr166 1.65
652 tim 1.64 <copy todir="${build.testcases.dir}">
653     <fileset dir="${test.src.dir}">
654     <include name="**/*.properties"/>
655     </fileset>
656     </copy>
657 jsr166 1.65
658    
659 tim 1.61 <java classname="jsr166.test.Sample" fork="true">
660 jsr166 1.65 <classpath refid="test.classpath"/>
661     <!-- <jvmarg value="-ea"/> -->
662 tim 1.64 <!-- <jvmarg value="-server"/> -->
663     <!-- <arg value="1000"/> -->
664     </java>
665     </target>
666    
667    
668 jsr166 1.65 <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 peierls 1.71 <target name="compile-j1" depends="init, configure-compiler, compile">
694 jsr166 1.65
695 tim 1.64 <mkdir dir="${build.j1.dir}"/>
696 jsr166 1.65
697 tim 1.64 <javac srcdir="${j1.src.dir}"
698     destdir="${build.j1.dir}"
699     debug="${build.debug}"
700     debuglevel="${build.debuglevel}"
701     deprecation="${build.deprecation}"
702 jsr166 1.66 source="${build.sourcelevel}" >
703    
704     <include name="**/*.java"/>
705     <exclude name="**/dijkstra/**"/>
706 jsr166 1.65
707 tim 1.64 <compilerarg line="${build.args}"/>
708     <classpath refid="j1.classpath"/>
709 jsr166 1.65
710 tim 1.64 </javac>
711 jsr166 1.65
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 jsr166 1.68 <java classname="${j1.test}" fork="true">
736 tim 1.64 <classpath refid="j1.classpath"/>
737 jsr166 1.67 <jvmarg value="-client"/>
738 jsr166 1.68
739 jsr166 1.69 <!-- TestPseudoRandom args -->
740     <arg value="2"/>
741     <arg value="25"/>
742     <arg value="100000"/>
743    
744 jsr166 1.68 <!-- WebCrawler args -->
745 jsr166 1.69 <!--
746 jsr166 1.68 <arg value="jsr166.webcrawler.WebCrawler3"/>
747     <arg value="http://www.priorartisans.com"/>
748     <arg value="25"/>
749 jsr166 1.69 -->
750 jsr166 1.68
751 tim 1.43 </java>
752 jsr166 1.65
753     </target>
754    
755    
756     <target name="test-j1" depends="compile-j1"
757     description="Runs testcases from the JavaOne source directories">
758 tim 1.64
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 jsr166 1.65 <!-- <jvmarg value="-server"/> -->
767 tim 1.64 <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 jsr166 1.65 classname="org.apache.xalan.lib.Redirect"/>
781 tim 1.64 <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 tim 1.63 </target>
796    
797 jsr166 1.65
798    
799 tim 1.63 <!-- C++ and JNI definitions and demos -->
800 jsr166 1.65
801 tim 1.63 <target name="configure-cpp">
802    
803     <!-- Define tasks and types -->
804 jsr166 1.65
805 tim 1.63 <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 jsr166 1.65
811 tim 1.63 <!-- Set platform property for JNI includes -->
812 jsr166 1.65
813 tim 1.63 <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 jsr166 1.65
823 tim 1.63 </target>
824 jsr166 1.65
825    
826 tim 1.63 <target name="cppdemo" depends="configure-cpp">
827 jsr166 1.65
828 tim 1.63 <mkdir dir="${build.dir}"/>
829 jsr166 1.65
830 tim 1.63 <cc multithreaded="true"
831 jsr166 1.65 name="g++"
832 tim 1.63 objdir="${build.dir}"
833     outfile="${build.dir}/CppDemo">
834     <fileset dir="${test.src.dir}" includes="CppDemo.cpp"/>
835     <libset libs="stdc++"/>
836     </cc>
837 jsr166 1.65
838 tim 1.63 <exec executable="${build.dir}/CppDemo">
839     <arg line="count in word frequency of word in command line count"/>
840     </exec>
841 jsr166 1.65
842 tim 1.63 </target>
843 jsr166 1.65
844    
845 tim 1.63 <target name="jnidemo" depends="init, configure-compiler, configure-cpp">
846 jsr166 1.65
847 tim 1.63 <mkdir dir="${build.testcases.dir}"/>
848 jsr166 1.65
849 tim 1.63 <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 jsr166 1.65
862 tim 1.63 <javah destdir="${build.testcases.dir}"
863     classpathref="test.classpath">
864     <class name="JniDemo"/>
865     </javah>
866 jsr166 1.65
867 tim 1.63 <cc multithreaded="true"
868 jsr166 1.65 name="g++"
869 tim 1.63 objdir="${build.dir}"
870     outfile="${build.dir}/JniDemo"
871     outtype="shared">
872 jsr166 1.65
873 tim 1.63 <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 jsr166 1.65
882 tim 1.63 <linker>
883     <linkerarg value="--add-stdcall-alias"/>
884     </linker>
885 jsr166 1.65
886 tim 1.63 <includepath location="${build.testcases.dir}"/>
887 jsr166 1.65
888 tim 1.63 <fileset dir="${test.src.dir}" includes="JniDemo.cpp"/>
889 jsr166 1.65
890 tim 1.63 <libset libs="stdc++"/>
891 jsr166 1.65
892 tim 1.63 </cc>
893 jsr166 1.65
894 tim 1.63 <!-- Necessary if windows, harmless if not -->
895     <copy file="${build.dir}/libJniDemo.so" tofile="${build.dir}/JniDemo.dll"/>
896 jsr166 1.65
897 tim 1.63 <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 tim 1.64 <arg line="count in word frequency of word in command line count"/>
902 tim 1.63 </java>
903 jsr166 1.65
904 tim 1.1 </target>
905 tim 1.61
906    
907    
908     <!-- Backward compatibility, work in progress (some files not checked in) -->
909 tim 1.1
910 tim 1.59
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 jsr166 1.65
917     <target name="defang"
918 tim 1.59 depends="init"
919     description="Generates pre-Tiger compatible source">
920 jsr166 1.65
921 tim 1.59 <delete dir="${pretiger.src.dir}"/>
922     <mkdir dir="${pretiger.src.dir}"/>
923 jsr166 1.65
924 tim 1.59 <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 jsr166 1.65
931 tim 1.59 </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 jsr166 1.65
954 tim 1.59 <target name="pretiger" depends="compile-pretiger">
955    
956     <mkdir dir="${build.lib.dir}"/>
957 jsr166 1.65
958 tim 1.59 <jar destfile="${pretiger.jar}">
959     <fileset dir="${build.pretiger.dir}">
960     </fileset>
961     </jar>
962 jsr166 1.65
963 tim 1.59 </target>
964 tim 1.1
965 dl 1.70 <!-- 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 dl 1.72 sourcepath="${jsr166xsrc.dir}:/home/dl/1.5.0/j2se/martin/j2se/src/share/classes"
1014    
1015 dl 1.70 >
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 tim 1.1 </project>