ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.116
Committed: Sun Jan 20 07:24:52 2013 UTC (11 years, 3 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.115: +38 -31 lines
Log Message:
refactor run-tck-tests to compile and run tests

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