ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.74
Committed: Thu Sep 13 11:19:25 2007 UTC (16 years, 7 months ago) by dl
Content type: text/xml
Branch: MAIN
Changes since 1.73: +133 -4 lines
Log Message:
update jsr166y targets

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