ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.147
Committed: Sat Jul 20 17:21:45 2013 UTC (10 years, 9 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.146: +5 -0 lines
Log Message:
add target jsr166e-test

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