ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.118
Committed: Mon Jan 21 01:05:01 2013 UTC (11 years, 3 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.117: +113 -133 lines
Log Message:
yet another ant target reorg

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