ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.117
Committed: Sun Jan 20 07:43:30 2013 UTC (11 years, 3 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.116: +4 -1 lines
Log Message:
make tck tests fail on error

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