ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.115
Committed: Sun Jan 20 06:11:07 2013 UTC (11 years, 3 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.114: +35 -3 lines
Log Message:
add "hermetic" jtreg support

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