ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.129
Committed: Wed Jan 23 07:17:13 2013 UTC (11 years, 3 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.128: +4 -2 lines
Log Message:
make usage target actually print projecthelp

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 jsr166 1.98
12     The repository contains all dependencies except for ant and the JDK
13     itself. Because the JDK version matters and because different
14     targets require different JDKs, we assume that users have created a
15     hierarchy containing:
16     $HOME/jdk/jdk6
17     $HOME/jdk/jdk7
18     $HOME/jdk/jdk8
19 jsr166 1.99 where each of the above is a JDK or a symlink to same, and
20     $HOME/jdk/src/jdk6
21     $HOME/jdk/src/jdk7
22     $HOME/jdk/src/jdk8
23     where each of the above is a complete JDK source tree
24     (e.g. mercurial forest) or a symlink to same.
25 tim 1.29 ------------------------------------------------------------------------------
26 tim 1.18 </description>
27 tim 1.11
28 jsr166 1.129 <target name="usage" description="Display main targets by running 'ant -projecthelp'">
29     <java classname="org.apache.tools.ant.Main">
30     <arg value="-projecthelp" />
31     </java>
32 tim 1.29 </target>
33 tim 1.3
34 tim 1.11
35 tim 1.27 <!-- User-specific settings -->
36 tim 1.23 <property file="user.properties"/>
37 tim 1.27
38 tim 1.1
39     <!-- Compilation options -->
40 jsr166 1.114 <property name="build.sourcelevel" value="6"/>
41 tim 1.1 <property name="build.debug" value="true"/>
42     <property name="build.debuglevel" value="source,lines,vars"/>
43 tim 1.13 <property name="build.deprecation" value="false"/>
44 tim 1.1
45     <!-- Build locations -->
46 jsr166 1.79 <property name="build.dir" location="build"/>
47     <property name="build.classes.dir" location="${build.dir}/classes"/>
48     <property name="build.testcases.dir" location="${build.dir}/testcases"/>
49     <property name="build.loops.dir" location="${build.dir}/loops"/>
50     <property name="build.reports.dir" location="${build.dir}/reports"/>
51 jsr166 1.92
52 jsr166 1.109 <property name="build.4jdk7.dir" location="${build.dir}/jsr166-4jdk7"/>
53     <property name="build.4jdk7.classes.dir" location="${build.4jdk7.dir}/classes"/>
54 jsr166 1.113 <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/>
55 jsr166 1.109 <property name="build.4jdk7.docs.dir" location="${build.4jdk7.dir}/docs"/>
56 jsr166 1.92
57 jsr166 1.79 <property name="build.jsr166x.dir" location="${build.dir}/jsr166x"/>
58     <property name="build.jsr166y.dir" location="${build.dir}/jsr166y"/>
59 dl 1.90 <property name="build.jsr166e.dir" location="${build.dir}/jsr166e"/>
60 jsr166 1.79 <property name="build.extra166y.dir" location="${build.dir}/extra166y"/>
61 dl 1.76
62 jsr166 1.126 <property name="build.jsr166x.classes.dir" location="${build.jsr166x.dir}/classes"/>
63     <property name="build.jsr166y.classes.dir" location="${build.jsr166y.dir}/classes"/>
64     <property name="build.jsr166e.classes.dir" location="${build.jsr166e.dir}/classes"/>
65     <property name="build.extra166y.classes.dir" location="${build.extra166y.dir}/classes"/>
66 jsr166 1.114
67 jsr166 1.118 <!-- JDK locations -->
68 jsr166 1.92 <property name="jdks.home" location="${user.home}/jdk"/>
69 jsr166 1.93
70     <macrodef name="defjdklocations">
71     <attribute name="v"/>
72     <sequential>
73 jsr166 1.99 <property name="jdk@{v}.home" location="${jdks.home}/jdk@{v}"/>
74     <property name="java@{v}" location="${jdk@{v}.home}/bin/java"/>
75     <property name="javac@{v}" location="${jdk@{v}.home}/bin/javac"/>
76     <property name="javadoc@{v}" location="${jdk@{v}.home}/bin/javadoc"/>
77     <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/share/classes"/>
78 jsr166 1.118 <local name="boot.jar.dir"/>
79     <property name="boot.jar.dir" location="${jdk@{v}.home}/jre/lib"/>
80     <path id="bootclasspath@{v}">
81     <pathelement path="${boot.jar.dir}/resources.jar"/>
82     <pathelement path="${boot.jar.dir}/rt.jar"/>
83     <pathelement path="${boot.jar.dir}/jsse.jar"/>
84     <pathelement path="${boot.jar.dir}/jce.jar"/>
85     <pathelement path="${boot.jar.dir}/charsets.jar"/>
86     </path>
87     <property name="bootclasspath@{v}" value="${toString:bootclasspath@{v}}"/>
88 jsr166 1.93 </sequential>
89     </macrodef>
90    
91 jsr166 1.125 <macrodef name="mirror-dir">
92     <attribute name="src"/>
93     <attribute name="dst"/>
94     <sequential>
95     <delete dir="@{dst}"/>
96     <mkdir dir="@{dst}"/>
97     <copy todir="@{dst}" preservelastmodified="true">
98     <fileset dir="@{src}"/>
99     </copy>
100     </sequential>
101     </macrodef>
102    
103 jsr166 1.93 <defjdklocations v="6"/>
104     <defjdklocations v="7"/>
105     <defjdklocations v="8"/>
106 jsr166 1.92
107 tim 1.1 <!-- Source locations -->
108 tim 1.22 <property name="src.dir" location="${basedir}/src/main"/>
109     <property name="test.src.dir" location="${basedir}/src/test"/>
110 jsr166 1.65 <property name="loops.src.dir" location="${basedir}/src/loops"/>
111 tim 1.60 <property name="tck.src.dir" location="${test.src.dir}/tck"/>
112 tim 1.62 <property name="jtreg.src.dir" location="${test.src.dir}/jtreg"/>
113 tim 1.1 <property name="lib.dir" location="${basedir}/lib"/>
114 tim 1.9 <property name="dist.dir" location="${basedir}/dist"/>
115 dl 1.70 <property name="topsrc.dir" location="${basedir}/src"/>
116 jsr166 1.99 <property name="4jdk7src.dir" location="${topsrc.dir}/jdk7"/>
117 jsr166 1.92 <property name="jsr166xsrc.dir" location="${topsrc.dir}/jsr166x"/>
118     <property name="jsr166ysrc.dir" location="${topsrc.dir}/jsr166y"/>
119     <property name="jsr166esrc.dir" location="${topsrc.dir}/jsr166e"/>
120     <property name="extra166ysrc.dir" location="${topsrc.dir}/extra166y"/>
121 jsr166 1.91
122 jsr166 1.125 <!-- Javadoc locations -->
123 jsr166 1.127 <property name="docs.dir" location="${build.dir}/docs"/>
124     <property name="4jdk7docs.dir" location="${build.4jdk7.dir}/docs"/>
125     <property name="jsr166xdocs.dir" location="${build.jsr166x.dir}/docs"/>
126     <property name="jsr166ydocs.dir" location="${build.jsr166y.dir}/docs"/>
127     <property name="jsr166edocs.dir" location="${build.jsr166e.dir}/docs"/>
128     <property name="extra166ydocs.dir" location="${build.extra166y.dir}/docs"/>
129    
130     <property name="dist.docs.dir" location="${dist.dir}/docs"/>
131     <property name="dist.4jdk7docs.dir" location="${dist.dir}/jsr166-4jdk7docs"/>
132     <property name="dist.jsr166xdocs.dir" location="${dist.dir}/jsr166xdocs"/>
133     <property name="dist.jsr166ydocs.dir" location="${dist.dir}/jsr166ydocs"/>
134     <property name="dist.jsr166edocs.dir" location="${dist.dir}/jsr166edocs"/>
135     <property name="dist.extra166ydocs.dir" location="${dist.dir}/extra166ydocs"/>
136 tim 1.1
137     <!-- Jar locations -->
138 jsr166 1.109 <property name="product.jar" location="${build.dir}/jsr166.jar"/>
139     <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>
140     <property name="jsr166x.jar" location="${build.jsr166x.dir}/jsr166x.jar"/>
141     <property name="jsr166y.jar" location="${build.jsr166y.dir}/jsr166y.jar"/>
142     <property name="jsr166e.jar" location="${build.jsr166e.dir}/jsr166e.jar"/>
143     <property name="extra166y.jar" location="${build.extra166y.dir}/extra166y.jar"/>
144 jsr166 1.106 <property name="junit.jar" location="${lib.dir}/junit.jar"/>
145 jsr166 1.65
146 jsr166 1.91 <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
147     <property name="jdkapi5docs.url" value="http://docs.oracle.com/javase/1.5.0/docs/api/"/>
148     <property name="jdkapi6docs.url" value="http://docs.oracle.com/javase/6/docs/api/"/>
149     <property name="jdkapi7docs.url" value="http://docs.oracle.com/javase/7/docs/api/"/>
150    
151     <property name="jdkapi8docs.url" value="http://download.java.net/jdk8/docs/api/"/>
152 jsr166 1.123 <!-- The below does not yet exist as of 2013-01 -->
153 jsr166 1.91 <!-- <property name="jdkapi8docs.url" value="http://docs.oracle.com/javase/8/docs/api/"/> -->
154 jsr166 1.107
155     <!-- Default jdk api doc location (latest stable release seems best) -->
156 jsr166 1.91 <property name="jdkapidocs.url" value="${jdkapi7docs.url}"/>
157    
158 jsr166 1.115 <!-- Define the "jtreg" task -->
159     <!-- See the docs in "jtreg -onlineHelp" -->
160     <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant"
161     classpath="${lib.dir}/jtreg.jar" />
162    
163 tim 1.59 <!-- Test classpath -->
164     <path id="test.classpath">
165     <pathelement location="${build.testcases.dir}"/>
166     <pathelement location="${junit.jar}"/>
167     </path>
168 tim 1.28
169 jsr166 1.118 <macrodef name="run-tck-tests">
170 jsr166 1.122 <attribute name="tck.src.dir" default="${tck.src.dir}"/>
171     <attribute name="source" default="6"/>
172 jsr166 1.118 <attribute name="target"/>
173     <attribute name="workdir"/>
174 jsr166 1.122 <attribute name="classes"/>
175 jsr166 1.118 <attribute name="jvmflags" default=""/>
176     <sequential>
177    
178     <mkdir dir="@{workdir}/tck-classes"/>
179    
180 jsr166 1.122 <javac srcdir="@{tck.src.dir}"
181 jsr166 1.118 destdir="@{workdir}/tck-classes"
182     debug="${build.debug}"
183     debuglevel="${build.debuglevel}"
184     deprecation="${build.deprecation}"
185 jsr166 1.122 source="@{source}"
186 jsr166 1.118 classpath="${junit.jar}"
187 jsr166 1.122 bootclasspath="@{classes}:${bootclasspath@{source}}"
188 jsr166 1.118 includeAntRuntime="false"
189     includeJavaRuntime="false"
190     executable="${javac@{target}}"
191     fork="true">
192    
193 jsr166 1.121 <include name="*.java"/>
194 jsr166 1.118 <compilerarg value="-XDignore.symbol.file=true"/>
195     <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
196     <compilerarg line="${build.args}"/>
197    
198     </javac>
199    
200     <java classname="JSR166TestCase"
201     failonerror="true"
202     jvm="${java@{target}}"
203     fork="true">
204 jsr166 1.122 <jvmarg value="-Xbootclasspath/p:@{classes}"/>
205 jsr166 1.118 <jvmarg line="@{jvmflags}"/>
206     <classpath>
207     <pathelement location="${junit.jar}"/>
208     <pathelement location="@{workdir}/tck-classes"/>
209     </classpath>
210     </java>
211    
212     </sequential>
213     </macrodef>
214    
215 jsr166 1.65 <!-- ALoops classpath -->
216     <path id="loops.classpath">
217     <pathelement location="${build.loops.dir}"/>
218     </path>
219    
220 jsr166 1.100 <!-- Support @jls tag, used in jdk8+ javadoc -->
221 jsr166 1.120 <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
222 jsr166 1.100 <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
223 tim 1.28
224 tim 1.59 <!-- Main targets -->
225 tim 1.28
226 dl 1.80 <target name="dists"
227 jsr166 1.107 depends="dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
228 dl 1.80 description="Builds all public jars and docs"/>
229 tim 1.11
230 tim 1.28 <target name="compile"
231 jsr166 1.100 depends="configure-compiler"
232 jsr166 1.102 description="Compiles src/main sources to build dir">
233 tim 1.27
234 tim 1.1 <mkdir dir="${build.classes.dir}"/>
235 tim 1.27
236 tim 1.60 <javac srcdir="${src.dir}"
237 jsr166 1.100 destdir="${build.classes.dir}"
238     debug="${build.debug}"
239     debuglevel="${build.debuglevel}"
240     deprecation="${build.deprecation}"
241     classpath=""
242     includeAntRuntime="false"
243     includeJavaRuntime="false"
244     executable="${javac8}"
245     fork="true">
246 tim 1.1
247 jsr166 1.68 <include name="**/*.java"/>
248 dl 1.83 <compilerarg value="-XDignore.symbol.file=true"/>
249 jsr166 1.100 <compilerarg value="-Xlint:all"/>
250 dl 1.73 <compilerarg line="${build.args}"/>
251 tim 1.1
252     </javac>
253     </target>
254    
255    
256 tim 1.28 <target name="jar"
257 tim 1.59 depends="compile"
258     description="Builds library jar from compiled sources">
259    
260     <jar destfile="${product.jar}">
261     <fileset dir="${build.classes.dir}"/>
262     </jar>
263     </target>
264    
265 tim 1.1
266 tim 1.28 <target name="test"
267 jsr166 1.103 depends="configure-tests, report-tests"
268 tim 1.29 description="Runs all tests (requires JUnit 3.8.1 in ${ant.home}/lib)" />
269 tim 1.1
270    
271 tim 1.59 <target name="docs"
272 jsr166 1.102 description="Builds javadocs for src/main to dist dir">
273 tim 1.59
274 jsr166 1.127 <delete dir="${docs.dir}"/>
275     <mkdir dir="${docs.dir}"/>
276 tim 1.59
277 jsr166 1.88 <!-- the packagenames="none" hack below prevents scanning the -->
278     <!-- sourcepath for packages -->
279    
280 jsr166 1.127 <javadoc destdir="${docs.dir}"
281 jsr166 1.88 packagenames="none"
282 jsr166 1.100 link="${jdkapi8docs.url}"
283 jsr166 1.88 overview="${src.dir}/intro.html"
284 jsr166 1.119 sourcepath="${src.dir}:${jdk8src.dir}"
285 jsr166 1.100 classpath=""
286     executable="${javadoc8}">
287 jsr166 1.119 <fileset dir="${src.dir}" defaultexcludes="yes">
288     <include name="**/*.java"/>
289     </fileset>
290 jsr166 1.100 <arg value="-XDignore.symbol.file=true"/>
291     <arg value="-tag"/>
292     <arg value="${javadoc.jls.option}"/>
293 tim 1.59 </javadoc>
294     </target>
295    
296    
297 tim 1.28 <target name="dist"
298 jsr166 1.125 depends="dist-clean, dist-jar, dist-docs"
299 tim 1.16 description="Puts all distributable products in single hierarchy"/>
300 tim 1.1
301 tim 1.58
302 tim 1.42 <target name="release"
303     depends="dist"
304     description="Puts entire CVS tree, plus distribution productions, in a jar">
305    
306     <property name="release.jar" value="dist/jsr166-${version}-dist.jar"/>
307    
308     <jar basedir="${basedir}" destfile="${release.jar}">
309 tim 1.58 <!-- <exclude name="build/**"/> -->
310 tim 1.42 <exclude name="${release.jar}"/>
311     <exclude name="user.properties"/>
312     <exclude name="etc/notes/**"/>
313 tim 1.58 <exclude name="src/emulation/**"/>
314 tim 1.44 <exclude name="**/SyntaxTest.java"/>
315 tim 1.58 <exclude name="**/SuperfluousAbstract.java"/>
316 tim 1.42 </jar>
317     </target>
318 tim 1.1
319 tim 1.59
320 tim 1.11 <target name="clean"
321     description="Removes all build products">
322 tim 1.27
323 tim 1.11 <delete dir="${build.dir}"/>
324 tim 1.27
325 tim 1.1 </target>
326    
327    
328 tim 1.11 <target name="dist-clean"
329     description="Removes all build and distribution products">
330 tim 1.27
331 tim 1.11 <delete dir="${dist.dir}"/>
332 tim 1.27
333 tim 1.9 </target>
334 tim 1.10
335    
336 tim 1.11 <!-- Internal targets -->
337 tim 1.9
338 tim 1.16
339 tim 1.28 <target name="dist-jar"
340     depends="clean, jar">
341 tim 1.11 <copy file="${product.jar}" todir="${dist.dir}"/>
342 jsr166 1.125 </target>
343 tim 1.27
344 jsr166 1.125 <target name="dist-docs"
345     depends="clean, docs">
346 jsr166 1.127 <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
347 tim 1.11 </target>
348    
349    
350 tim 1.28 <target name="compile-tests"
351     depends="jar">
352 tim 1.27
353 tim 1.1 <mkdir dir="${build.testcases.dir}"/>
354 tim 1.37
355 tim 1.60 <javac srcdir="${tck.src.dir}"
356 jsr166 1.111 destdir="${build.testcases.dir}"
357     debug="${build.debug}"
358     debuglevel="${build.debuglevel}"
359     deprecation="${build.deprecation}"
360     source="6"
361     classpath="${junit.jar}"
362 jsr166 1.119 bootclasspath="@{product.jar}:${bootclasspath6}"
363 jsr166 1.111 includeAntRuntime="false"
364     includeJavaRuntime="false"
365     executable="${javac8}"
366     fork="true">
367 tim 1.60
368 jsr166 1.111 <include name="**/*.java"/>
369 dl 1.84 <compilerarg value="-XDignore.symbol.file=true"/>
370 jsr166 1.111 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
371 jsr166 1.118 <compilerarg line="${build.args}"/>
372 jsr166 1.65
373 tim 1.60 </javac>
374    
375     <javac srcdir="${test.src.dir}"
376 jsr166 1.111 destdir="${build.testcases.dir}"
377     debug="${build.debug}"
378     debuglevel="${build.debuglevel}"
379     deprecation="${build.deprecation}"
380     source="6"
381 jsr166 1.112 classpath=""
382 jsr166 1.119 bootclasspath="@{product.jar}:${bootclasspath6}"
383 jsr166 1.111 includeAntRuntime="false"
384     includeJavaRuntime="false"
385     executable="${javac8}"
386     fork="true">
387 tim 1.1
388 jsr166 1.111 <include name="jsr166/test/**/*.java"/>
389 dl 1.84 <compilerarg value="-XDignore.symbol.file=true"/>
390 jsr166 1.111 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
391 jsr166 1.118 <compilerarg line="${build.args}"/>
392 jsr166 1.65
393 tim 1.1 </javac>
394 tim 1.27
395 tim 1.62 <!--
396     <javac srcdir="${jtreg.src.dir}"
397     destdir="${build.testcases.dir}"
398     debug="${build.debug}"
399     debuglevel="${build.debuglevel}"
400     deprecation="${build.deprecation}"
401     source="${build.sourcelevel}"
402     fork="true">
403    
404 jsr166 1.118 <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
405     <compilerarg value="-XDignore.symbol.file=true"/>
406 tim 1.62 <compilerarg line="${build.args}"/>
407 jsr166 1.65
408 tim 1.62 </javac>
409     -->
410    
411 tim 1.1 </target>
412 tim 1.11
413 tim 1.1
414 tim 1.28 <target name="run-tests"
415     depends="compile-tests">
416 tim 1.27
417     <!-- May be overridden by user.properties -->
418     <property name="testcase" value="*"/>
419    
420 tim 1.1 <mkdir dir="${build.reports.dir}"/>
421 tim 1.27
422 tim 1.1 <junit printsummary="true"
423     showoutput="true"
424     errorProperty="junit.failed"
425     failureProperty="junit.failed"
426 tim 1.12 dir="${build.reports.dir}"
427 jsr166 1.111 jvm="${java8}"
428 tim 1.12 fork="true">
429    
430 jsr166 1.111 <jvmarg value="-Xbootclasspath/p:${product.jar}"/>
431 tim 1.64 <jvmarg value="-server"/>
432     <jvmarg value="-showversion"/>
433 jsr166 1.65
434 tim 1.59 <classpath refid="test.classpath"/>
435 tim 1.1
436     <formatter type="xml"/>
437    
438 tim 1.62 <batchtest todir="${build.reports.dir}" unless="no.test.tck">
439 tim 1.60 <fileset dir="${tck.src.dir}">
440     <include name="**/${testcase}Test.java"/>
441     </fileset>
442 tim 1.62 </batchtest>
443 jsr166 1.65
444 tim 1.62 <batchtest todir="${build.reports.dir}" if="do.test.old">
445 tim 1.60 <fileset dir="${test.src.dir}">
446     <include name="jsr166/test/**/${testcase}Test.java"/>
447 tim 1.1 </fileset>
448     </batchtest>
449 tim 1.62
450 jsr166 1.65 <!--
451 tim 1.62 <batchtest todir="${build.reports.dir}" if="do.test.jtreg">
452     <fileset dir="${jtreg.src.dir}">
453     <include name="**/${testcase}Test.java"/>
454     </fileset>
455     </batchtest>
456     -->
457 tim 1.1
458     </junit>
459 tim 1.27
460 tim 1.1 </target>
461    
462    
463 tim 1.28 <target name="report-tests"
464     depends="run-tests">
465    
466 tim 1.54 <!-- Sets junit.report.format to frames if redirection is present,
467 tim 1.1 otherwise sets it to noframes. -->
468     <available property="junit.report.format"
469     value="frames"
470     classname="org.apache.xalan.lib.Redirect"
471     />
472     <property name="junit.report.format" value="noframes"/>
473    
474     <junitreport todir="${build.reports.dir}">
475     <fileset dir="${build.reports.dir}">
476     <include name="TEST-*.xml"/>
477     </fileset>
478 jsr166 1.75 <report format="${junit.report.format}" todir="${build.reports.dir}"
479 tim 1.1 />
480     </junitreport>
481    
482     <fail message="Test Cases Failed" if="junit.failed"/>
483 tim 1.28
484 tim 1.18 </target>
485    
486    
487 tim 1.32 <target name="configure-compiler">
488 tim 1.54
489     <property name="unchecked.option" value="-Xlint:unchecked"/>
490    
491     <condition property="warnunchecked.arg" value="${unchecked.option}">
492 tim 1.57 <istrue value="${build.warnunchecked}"/>
493 tim 1.32 </condition>
494    
495 tim 1.37 <property name="warnunchecked.arg" value=""/>
496 tim 1.34
497 tim 1.32
498     <!-- Common options in javac invocations -->
499 tim 1.57 <property name="build.args" value="${warnunchecked.arg}"/>
500 tim 1.33
501     </target>
502    
503    
504 tim 1.37 <target name="configure-tests"
505     depends="configure-compiler">
506 tim 1.28
507     <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->
508 tim 1.18 <available property="junit.available"
509 tim 1.28 classname="junit.framework.Protectable"/>
510    
511 tim 1.54 <!-- Xalan -->
512     <available property="xalan.available"
513     classname="org.apache.xalan.Version"/>
514    
515 jsr166 1.65
516 tim 1.59 <!-- Ant 1.6beta and later don't need or want this check -->
517 jsr166 1.65 <!--
518 tim 1.59 <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests"
519     unless="junit.available"/>
520    
521 tim 1.54 <fail message="Need Xalan 2.5.1 jar in ${ant.home}${file.separator}lib to run tests"
522     unless="xalan.available"/>
523 tim 1.59 -->
524 tim 1.30
525 tim 1.28 </target>
526    
527    
528 jsr166 1.65 <!-- Various demos and test programs -->
529    
530    
531 jsr166 1.103 <target name="loops" depends="configure-compiler"
532 jsr166 1.65 description="Benchmark from Doug Lea's AQS paper">
533    
534     <mkdir dir="${build.loops.dir}"/>
535    
536     <javac srcdir="${loops.src.dir}"
537     destdir="${build.loops.dir}"
538     debug="${build.debug}"
539     debuglevel="${build.debuglevel}"
540     deprecation="${build.deprecation}"
541     source="${build.sourcelevel}"
542     fork="true">
543    
544     <compilerarg line="${build.args}"/>
545     <classpath refid="loops.classpath"/>
546 dl 1.84 <compilerarg value="-XDignore.symbol.file=true"/>
547 jsr166 1.65
548     </javac>
549    
550     <java classname="ALoops" fork="true">
551     <classpath refid="loops.classpath"/>
552     </java>
553    
554     </target>
555    
556    
557 jsr166 1.99 <!-- jsr166 4jdk7 -->
558 jsr166 1.92
559 jsr166 1.99 <target name="4jdk7compile"
560 jsr166 1.92 depends="configure-compiler"
561 jsr166 1.99 description="Compiles src/jdk7 sources, targeting jdk7">
562 jsr166 1.92
563 jsr166 1.99 <mkdir dir="${build.4jdk7.classes.dir}"/>
564 jsr166 1.92
565 jsr166 1.99 <javac srcdir="${4jdk7src.dir}"
566     destdir="${build.4jdk7.classes.dir}"
567 jsr166 1.92 debug="${build.debug}"
568     debuglevel="${build.debuglevel}"
569     deprecation="${build.deprecation}"
570 jsr166 1.107 source="6"
571 jsr166 1.92 classpath=""
572 jsr166 1.119 bootclasspath="${bootclasspath6}"
573 jsr166 1.92 includeAntRuntime="false"
574     includeJavaRuntime="false"
575 jsr166 1.97 executable="${javac7}"
576 jsr166 1.92 fork="true">
577    
578     <include name="**/*.java"/>
579     <compilerarg value="-XDignore.symbol.file=true"/>
580     <compilerarg value="-Xlint:all"/>
581 jsr166 1.118 <compilerarg line="${build.args}"/>
582 jsr166 1.92
583     </javac>
584 jsr166 1.118 </target>
585 jsr166 1.92
586 jsr166 1.116
587 jsr166 1.128 <target name="4jdk7jar"
588 jsr166 1.116 depends="4jdk7compile"
589     description="Builds library jar from compiled sources">
590    
591     <jar destfile="${4jdk7product.jar}">
592 jsr166 1.99 <fileset dir="${build.4jdk7.classes.dir}"/>
593 jsr166 1.97 </jar>
594    
595 jsr166 1.92 </target>
596    
597    
598 jsr166 1.99 <target name="4jdk7-test-tck"
599 jsr166 1.128 depends="4jdk7jar"
600 jsr166 1.99 description="Runs tck tests for jsr166-4jdk7 directly">
601 jsr166 1.116
602 jsr166 1.97 <run-tck-tests
603 jsr166 1.116 target="7"
604     workdir="${build.4jdk7.dir}"
605 jsr166 1.122 classes="${4jdk7product.jar}"/>
606 jsr166 1.97 </target>
607    
608    
609 jsr166 1.99 <target name="4jdk7-test-tck-junit"
610     depends="4jdk7compile"
611     description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">
612 jsr166 1.97
613     <junit printsummary="true"
614     showoutput="true"
615     errorProperty="junit.failed"
616     failureProperty="junit.failed"
617     includeantruntime="true"
618     jvm="${java7}"
619     fork="true">
620    
621 jsr166 1.99 <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
622 jsr166 1.97 <jvmarg value="-server"/>
623 jsr166 1.92
624 jsr166 1.97 <classpath>
625     <pathelement location="${junit.jar}"/>
626 jsr166 1.99 <pathelement location="${build.4jdk7.tck.classes.dir}"/>
627 jsr166 1.97 </classpath>
628 jsr166 1.92
629 jsr166 1.97 <formatter type="brief"/>
630 jsr166 1.92
631 jsr166 1.97 <test name="JSR166TestCase" haltonfailure="no">
632     </test>
633 jsr166 1.92
634 jsr166 1.97 </junit>
635 jsr166 1.92 </target>
636    
637 jsr166 1.115 <target name="4jdk7-test-jtreg"
638     depends="4jdk7compile"
639     description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">
640     <delete dir="${build.4jdk7.dir}/JTwork" quiet="true"/>
641     <delete dir="${build.4jdk7.dir}/JTreport" quiet="true"/>
642     <mkdir dir="${build.4jdk7.dir}/JTwork/scratch"/>
643     <mkdir dir="${build.4jdk7.dir}/JTreport"/>
644     <jtreg dir="${jtreg.src.dir}"
645     jdk="${jdk7.home}"
646     workDir="${build.4jdk7.dir}/JTwork"
647     reportDir="${build.4jdk7.dir}/JTreport">
648    
649     <arg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
650     <arg value="-agentvm"/>
651     <arg value="-v:nopass,fail"/>
652     <arg value="-vmoptions:-esa -ea"/>
653     <arg value="-automatic"/>
654     <arg value="-k:!ignore"/>
655     </jtreg>
656     </target>
657    
658    
659     <target name="4jdk7-test"
660     depends="4jdk7-test-tck, 4jdk7-test-jtreg"
661     description="Runs tck and jtreg tests for jsr166-4jdk7">
662     </target>
663    
664 jsr166 1.92
665 jsr166 1.99 <target name="4jdk7docs"
666 jsr166 1.102 description="Builds javadocs for src/jdk7 to dist dir">
667 jsr166 1.92
668 jsr166 1.127 <delete dir="${4jdk7docs.dir}"/>
669     <mkdir dir="${4jdk7docs.dir}"/>
670 jsr166 1.92
671 jsr166 1.127 <javadoc destdir="${4jdk7docs.dir}"
672 jsr166 1.92 packagenames="none"
673     link="${jdkapi7docs.url}"
674 jsr166 1.99 overview="${4jdk7src.dir}/intro.html"
675 jsr166 1.119 sourcepath="${4jdk7src.dir}:${jdk7src.dir}"
676 jsr166 1.92 classpath=""
677 jsr166 1.99 executable="${javadoc7}">
678     <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
679 jsr166 1.92 <include name="**/*.java"/>
680     </fileset>
681 jsr166 1.119 <arg value="-XDignore.symbol.file=true"/>
682 jsr166 1.92 </javadoc>
683     </target>
684    
685    
686 jsr166 1.99 <target name="4jdk7dist"
687 jsr166 1.125 depends="4jdk7dist-jar, 4jdk7dist-docs"
688 jsr166 1.92 description="Puts all distributable products in single hierarchy"/>
689    
690    
691 jsr166 1.99 <target name="4jdk7clean"
692 jsr166 1.109 description="Removes all 4jdk7 build products">
693 jsr166 1.92
694 jsr166 1.99 <delete dir="${build.4jdk7.dir}"/>
695 jsr166 1.92
696     </target>
697    
698    
699 jsr166 1.99 <target name="4jdk7dist-clean"
700 jsr166 1.92 description="Removes all build and distribution products">
701    
702     </target>
703    
704 jsr166 1.99 <target name="4jdk7dist-jar"
705 jsr166 1.128 depends="4jdk7clean, 4jdk7jar">
706 jsr166 1.125 <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
707     </target>
708 jsr166 1.92
709    
710 jsr166 1.125 <target name="4jdk7dist-docs"
711     depends="4jdk7clean, 4jdk7docs">
712 jsr166 1.127 <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
713 jsr166 1.92 </target>
714    
715 jsr166 1.109
716 dl 1.70 <!-- jsr166x -->
717    
718     <target name="jsr166xcompile"
719 jsr166 1.103 depends="configure-compiler"
720 jsr166 1.105 description="Compiles jsr166x sources to build dir">
721 dl 1.70
722 jsr166 1.114 <mkdir dir="${build.jsr166x.classes.dir}"/>
723 dl 1.70
724 jsr166 1.105 <javac srcdir="${topsrc.dir}"
725 jsr166 1.114 destdir="${build.jsr166x.classes.dir}"
726 jsr166 1.105 debug="${build.debug}"
727     debuglevel="${build.debuglevel}"
728     deprecation="${build.deprecation}"
729     classpath=""
730 jsr166 1.119 bootclasspath="${bootclasspath6}"
731 jsr166 1.107 source="5"
732 jsr166 1.105 includeAntRuntime="false"
733     includeJavaRuntime="false"
734     executable="${javac7}"
735     fork="true">
736 dl 1.70
737 jsr166 1.105 <include name="jsr166x/**/*.java"/>
738 dl 1.84 <compilerarg value="-XDignore.symbol.file=true"/>
739 jsr166 1.105 <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
740 jsr166 1.118 <compilerarg line="${build.args}"/>
741 dl 1.70
742     </javac>
743     </target>
744    
745    
746 jsr166 1.128 <target name="jsr166xjar"
747 dl 1.70 depends="jsr166xcompile"
748     description="Builds library jar from compiled sources">
749    
750 jsr166 1.106 <jar destfile="${jsr166x.jar}">
751 jsr166 1.114 <fileset dir="${build.jsr166x.classes.dir}"/>
752 dl 1.70 </jar>
753    
754     </target>
755    
756    
757     <target name="jsr166xdocs"
758 jsr166 1.102 description="Builds javadocs to dist dir">
759 dl 1.70
760 jsr166 1.127 <delete dir="${jsr166xdocs.dir}"/>
761     <mkdir dir="${jsr166xdocs.dir}"/>
762 dl 1.70
763 jsr166 1.127 <javadoc destdir="${jsr166xdocs.dir}"
764 jsr166 1.107 packagenames="jsr166x.*"
765 jsr166 1.91 link="${jdkapidocs.url}"
766 jsr166 1.119 sourcepath="${topsrc.dir}:${jdk6src.dir}"
767     bootclasspath="${bootclasspath6}"
768 jsr166 1.107 source="5"
769 jsr166 1.118 executable="${javadoc7}">
770     <arg value="-XDignore.symbol.file=true"/>
771 dl 1.70
772 jsr166 1.118 </javadoc>
773 dl 1.70 </target>
774    
775    
776     <target name="jsr166xdist"
777 jsr166 1.125 depends="jsr166xdist-jar, jsr166xdist-docs"
778 dl 1.70 description="Puts all distributable products in single hierarchy"/>
779    
780    
781     <target name="jsr166xclean"
782 jsr166 1.109 description="Removes all jsr166x build products">
783 dl 1.70
784     <delete dir="${build.jsr166x.dir}"/>
785    
786     </target>
787    
788    
789     <target name="jsr166xdist-clean"
790     description="Removes all build and distribution products">
791    
792     </target>
793    
794    
795     <target name="jsr166xdist-jar"
796 jsr166 1.128 depends="jsr166xclean, jsr166xjar">
797 jsr166 1.106 <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
798 jsr166 1.125 </target>
799 dl 1.70
800 jsr166 1.125 <target name="jsr166xdist-docs"
801     depends="jsr166xclean, jsr166xdocs">
802 jsr166 1.127 <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
803 dl 1.70 </target>
804    
805 dl 1.74 <!-- jsr166y -->
806    
807    
808     <target name="jsr166ycompile"
809 jsr166 1.103 depends="configure-compiler"
810 dl 1.74 description="Compiles jsr166y sources">
811    
812 jsr166 1.114 <mkdir dir="${build.jsr166y.classes.dir}"/>
813 dl 1.74
814 jsr166 1.103 <javac srcdir="${topsrc.dir}"
815 jsr166 1.114 destdir="${build.jsr166y.classes.dir}"
816 jsr166 1.103 debug="${build.debug}"
817     debuglevel="${build.debuglevel}"
818     deprecation="${build.deprecation}"
819 jsr166 1.107 source="6"
820 jsr166 1.103 classpath=""
821 jsr166 1.119 bootclasspath="${bootclasspath6}"
822 jsr166 1.103 includeAntRuntime="false"
823     includeJavaRuntime="false"
824     executable="${javac7}"
825     fork="true">
826 dl 1.74
827 jsr166 1.103 <include name="jsr166y/**/*.java"/>
828 dl 1.83 <compilerarg value="-XDignore.symbol.file=true"/>
829 jsr166 1.103 <compilerarg value="-Xlint:all"/>
830 jsr166 1.118 <compilerarg line="${build.args}"/>
831    
832 dl 1.74 </javac>
833     </target>
834    
835    
836 jsr166 1.128 <target name="jsr166yjar"
837 dl 1.74 depends="jsr166ycompile"
838     description="Builds library jar from compiled sources">
839    
840 jsr166 1.106 <jar destfile="${jsr166y.jar}" index="true">
841 jsr166 1.114 <fileset dir="${build.jsr166y.classes.dir}"/>
842 dl 1.74 </jar>
843    
844     </target>
845    
846    
847     <target name="jsr166ydocs"
848 jsr166 1.102 description="Builds javadocs to dist dir">
849 dl 1.74
850 jsr166 1.127 <delete dir="${jsr166ydocs.dir}"/>
851     <mkdir dir="${jsr166ydocs.dir}"/>
852 dl 1.74
853 jsr166 1.127 <javadoc destdir="${jsr166ydocs.dir}"
854 jsr166 1.107 packagenames="jsr166y.*"
855 jsr166 1.91 link="${jdkapidocs.url}"
856 jsr166 1.119 sourcepath="${topsrc.dir}:${jdk6src.dir}"
857     bootclasspath="${bootclasspath6}"
858 jsr166 1.107 source="6"
859 jsr166 1.118 executable="${javadoc7}">
860     <arg value="-XDignore.symbol.file=true"/>
861 dl 1.74
862 jsr166 1.118 </javadoc>
863 dl 1.74 </target>
864    
865    
866     <target name="jsr166ydist"
867 jsr166 1.125 depends="jsr166ydist-jar, jsr166ydist-docs"
868 dl 1.74 description="Puts all distributable products in single hierarchy"/>
869    
870    
871     <target name="jsr166yclean"
872 jsr166 1.109 description="Removes all jsr166y build products">
873 dl 1.74
874     <delete dir="${build.jsr166y.dir}"/>
875    
876     </target>
877    
878    
879     <target name="jsr166ydist-clean"
880     description="Removes all build and distribution products">
881    
882     </target>
883    
884     <target name="jsr166ydist-jar"
885 jsr166 1.128 depends="jsr166yclean, jsr166yjar">
886 jsr166 1.106 <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
887 jsr166 1.125 </target>
888 dl 1.74
889 jsr166 1.125 <target name="jsr166ydist-docs"
890     depends="jsr166yclean, jsr166ydocs">
891 jsr166 1.127 <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
892 dl 1.74 </target>
893    
894 dl 1.90
895 dl 1.76 <!-- extra166y -->
896    
897    
898     <target name="extra166ycompile"
899 jsr166 1.128 depends="configure-compiler, jsr166yjar"
900 dl 1.76 description="Compiles extra166y sources">
901    
902 jsr166 1.114 <mkdir dir="${build.extra166y.classes.dir}"/>
903 dl 1.76
904 jsr166 1.103 <javac srcdir="${topsrc.dir}"
905 jsr166 1.114 destdir="${build.extra166y.classes.dir}"
906 jsr166 1.103 debug="${build.debug}"
907     debuglevel="${build.debuglevel}"
908     deprecation="${build.deprecation}"
909 jsr166 1.119 bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
910 jsr166 1.105 classpath=""
911 jsr166 1.107 source="6"
912 jsr166 1.103 includeAntRuntime="false"
913     includeJavaRuntime="false"
914     executable="${javac7}"
915     fork="true">
916 dl 1.76
917 jsr166 1.103 <include name="extra166y/**/*.java"/>
918 dl 1.83 <compilerarg value="-XDignore.symbol.file=true"/>
919 jsr166 1.103 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
920 jsr166 1.118 <compilerarg line="${build.args}"/>
921 dl 1.76
922     </javac>
923     </target>
924    
925    
926 jsr166 1.128 <target name="extra166yjar"
927 dl 1.76 depends="extra166ycompile"
928     description="Builds library jar from compiled sources">
929    
930 jsr166 1.106 <jar destfile="${extra166y.jar}" index="true">
931 jsr166 1.114 <fileset dir="${build.extra166y.classes.dir}"/>
932 dl 1.76 </jar>
933    
934     </target>
935    
936    
937     <target name="extra166ydocs"
938 jsr166 1.107 description="Builds javadocs to build dir">
939 dl 1.76
940 jsr166 1.127 <delete dir="${extra166ydocs.dir}"/>
941     <mkdir dir="${extra166ydocs.dir}"/>
942 dl 1.76
943 jsr166 1.127 <javadoc destdir="${extra166ydocs.dir}"
944 jsr166 1.107 packagenames="extra166y.*"
945 jsr166 1.91 link="${jdkapidocs.url}"
946 jsr166 1.119 sourcepath="${topsrc.dir}:${jdk6src.dir}"
947     bootclasspath="${bootclasspath6}"
948 jsr166 1.107 source="6"
949 jsr166 1.118 executable="${javadoc7}">
950     <arg value="-XDignore.symbol.file=true"/>
951 dl 1.76
952 jsr166 1.118 </javadoc>
953 dl 1.76 </target>
954    
955    
956     <target name="extra166ydist"
957 jsr166 1.125 depends="extra166ydist-jar, extra166ydist-docs"
958 dl 1.76 description="Puts all distributable products in single hierarchy"/>
959    
960    
961     <target name="extra166yclean"
962 jsr166 1.109 description="Removes all extra166y build products">
963 dl 1.76
964     <delete dir="${build.extra166y.dir}"/>
965    
966     </target>
967    
968    
969     <target name="extra166ydist-clean"
970     description="Removes all build and distribution products">
971    
972     </target>
973    
974     <target name="extra166ydist-jar"
975 jsr166 1.128 depends="extra166yclean, extra166yjar">
976 jsr166 1.106 <copy file="${extra166y.jar}" todir="${dist.dir}"/>
977 jsr166 1.125 </target>
978 dl 1.76
979 jsr166 1.125 <target name="extra166ydist-docs"
980     depends="extra166yclean, extra166ydocs">
981 jsr166 1.127 <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
982 dl 1.76 </target>
983    
984 dl 1.90 <!-- jsr166e -->
985    
986     <target name="jsr166ecompile"
987 jsr166 1.94 depends="configure-compiler"
988 dl 1.90 description="Compiles jsr166e sources">
989    
990 jsr166 1.114 <mkdir dir="${build.jsr166e.classes.dir}"/>
991 dl 1.90
992 jsr166 1.95 <javac srcdir="${topsrc.dir}"
993 jsr166 1.114 destdir="${build.jsr166e.classes.dir}"
994 jsr166 1.94 debug="${build.debug}"
995     debuglevel="${build.debuglevel}"
996     deprecation="${build.deprecation}"
997 jsr166 1.107 source="7"
998 jsr166 1.94 classpath=""
999     includeAntRuntime="false"
1000     includeJavaRuntime="false"
1001     executable="${javac7}"
1002     fork="true">
1003 dl 1.90
1004 jsr166 1.95 <include name="jsr166e/**/*.java"/>
1005 dl 1.90 <compilerarg value="-XDignore.symbol.file=true"/>
1006 jsr166 1.94 <compilerarg value="-Xlint:all"/>
1007 jsr166 1.118 <compilerarg line="${build.args}"/>
1008 dl 1.90
1009     </javac>
1010     </target>
1011    
1012    
1013 jsr166 1.128 <target name="jsr166ejar"
1014 dl 1.90 depends="jsr166ecompile"
1015     description="Builds library jar from compiled sources">
1016    
1017 jsr166 1.106 <jar destfile="${jsr166e.jar}" index="true">
1018 jsr166 1.114 <fileset dir="${build.jsr166e.classes.dir}"/>
1019 dl 1.90 </jar>
1020    
1021     </target>
1022    
1023    
1024     <target name="jsr166edocs"
1025 jsr166 1.107 description="Builds javadocs to build dir">
1026 dl 1.90
1027 jsr166 1.127 <delete dir="${jsr166edocs.dir}"/>
1028     <mkdir dir="${jsr166edocs.dir}"/>
1029 dl 1.90
1030 jsr166 1.127 <javadoc destdir="${jsr166edocs.dir}"
1031 jsr166 1.107 packagenames="jsr166e.*"
1032     link="${jdkapidocs.url}"
1033 jsr166 1.119 sourcepath="${topsrc.dir}:${jdk7src.dir}"
1034 jsr166 1.107 source="7"
1035 jsr166 1.118 executable="${javadoc7}">
1036     <arg value="-XDignore.symbol.file=true"/>
1037    
1038 jsr166 1.96 </javadoc>
1039 dl 1.90 </target>
1040    
1041    
1042 jsr166 1.122 <target name="jsr166e-test-tck"
1043 jsr166 1.128 depends="jsr166ejar"
1044 jsr166 1.122 description="Runs tck tests for jsr166e">
1045    
1046     <run-tck-tests
1047     tck.src.dir="${test.src.dir}/tck-jsr166e"
1048     source="7"
1049     target="8"
1050     workdir="${build.jsr166e.dir}"
1051     classes="${jsr166e.jar}"/>
1052     </target>
1053    
1054    
1055 dl 1.90 <target name="jsr166edist"
1056 jsr166 1.125 depends="jsr166edist-jar, jsr166edist-docs"
1057 dl 1.90 description="Puts all distributable products in single hierarchy"/>
1058    
1059    
1060     <target name="jsr166eclean"
1061 jsr166 1.109 description="Removes all jsr166e build products">
1062 dl 1.90 <delete dir="${build.jsr166e.dir}"/>
1063     </target>
1064    
1065    
1066     <target name="jsr166edist-clean"
1067     description="Removes all build and distribution products">
1068    
1069     </target>
1070    
1071     <target name="jsr166edist-jar"
1072 jsr166 1.128 depends="jsr166eclean, jsr166ejar">
1073 jsr166 1.106 <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1074 jsr166 1.125 </target>
1075 dl 1.90
1076 jsr166 1.125 <target name="jsr166edist-docs"
1077     depends="jsr166eclean, jsr166edocs">
1078 jsr166 1.127 <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1079 dl 1.90 </target>
1080    
1081 tim 1.1 </project>