ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
Revision: 1.144
Committed: Sun Jul 14 19:55:04 2013 UTC (10 years, 9 months ago) by jsr166
Content type: text/xml
Branch: MAIN
Changes since 1.143: +34 -7 lines
Log Message:
backport jsr166e to run on jdk6; backport all applicable tck tests from tck to tck-jsr166e

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 dl 1.73 <compilerarg line="${build.args}"/>
297 tim 1.1
298     </javac>
299     </target>
300    
301    
302 tim 1.28 <target name="jar"
303 tim 1.59 depends="compile"
304     description="Builds library jar from compiled sources">
305    
306     <jar destfile="${product.jar}">
307     <fileset dir="${build.classes.dir}"/>
308     </jar>
309     </target>
310    
311 tim 1.1
312 tim 1.59 <target name="docs"
313 jsr166 1.102 description="Builds javadocs for src/main to dist dir">
314 tim 1.59
315 jsr166 1.127 <delete dir="${docs.dir}"/>
316     <mkdir dir="${docs.dir}"/>
317 tim 1.59
318 jsr166 1.88 <!-- the packagenames="none" hack below prevents scanning the -->
319     <!-- sourcepath for packages -->
320    
321 jsr166 1.127 <javadoc destdir="${docs.dir}"
322 jsr166 1.88 packagenames="none"
323 jsr166 1.100 link="${jdkapi8docs.url}"
324 jsr166 1.88 overview="${src.dir}/intro.html"
325 jsr166 1.130 access="${build.javadoc.access}"
326 jsr166 1.119 sourcepath="${src.dir}:${jdk8src.dir}"
327 jsr166 1.100 classpath=""
328     executable="${javadoc8}">
329 jsr166 1.119 <fileset dir="${src.dir}" defaultexcludes="yes">
330     <include name="**/*.java"/>
331     </fileset>
332 jsr166 1.100 <arg value="-XDignore.symbol.file=true"/>
333     <arg value="-tag"/>
334     <arg value="${javadoc.jls.option}"/>
335 dl 1.143 <arg value="-tag"/>
336     <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>
337     <arg value="-tag"/>
338     <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
339     <arg value="-tag"/>
340 jsr166 1.144 <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
341 tim 1.59 </javadoc>
342     </target>
343    
344    
345 tim 1.28 <target name="dist"
346 jsr166 1.125 depends="dist-clean, dist-jar, dist-docs"
347 tim 1.16 description="Puts all distributable products in single hierarchy"/>
348 tim 1.1
349 tim 1.58
350 tim 1.42 <target name="release"
351     depends="dist"
352     description="Puts entire CVS tree, plus distribution productions, in a jar">
353    
354     <property name="release.jar" value="dist/jsr166-${version}-dist.jar"/>
355    
356     <jar basedir="${basedir}" destfile="${release.jar}">
357 tim 1.58 <!-- <exclude name="build/**"/> -->
358 tim 1.42 <exclude name="${release.jar}"/>
359     <exclude name="user.properties"/>
360     <exclude name="etc/notes/**"/>
361 tim 1.58 <exclude name="src/emulation/**"/>
362 tim 1.44 <exclude name="**/SyntaxTest.java"/>
363 tim 1.58 <exclude name="**/SuperfluousAbstract.java"/>
364 tim 1.42 </jar>
365     </target>
366 tim 1.1
367 tim 1.59
368 tim 1.11 <target name="clean"
369     description="Removes all build products">
370 tim 1.27
371 tim 1.11 <delete dir="${build.dir}"/>
372 tim 1.27
373 tim 1.1 </target>
374    
375    
376 tim 1.11 <target name="dist-clean"
377     description="Removes all build and distribution products">
378 tim 1.27
379 tim 1.11 <delete dir="${dist.dir}"/>
380 tim 1.27
381 tim 1.9 </target>
382 tim 1.10
383    
384 tim 1.28 <target name="dist-jar"
385     depends="clean, jar">
386 tim 1.11 <copy file="${product.jar}" todir="${dist.dir}"/>
387 jsr166 1.125 </target>
388 tim 1.27
389 jsr166 1.125 <target name="dist-docs"
390     depends="clean, docs">
391 jsr166 1.127 <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
392 tim 1.11 </target>
393    
394    
395 jsr166 1.131 <target name="test-tck"
396     depends="jar"
397     description="Runs tck tests for main directly">
398    
399     <run-tck-tests
400     target="8"
401     workdir="${build.dir}"
402     classes="${product.jar}"/>
403     </target>
404 tim 1.1
405 jsr166 1.135 <target name="test-jtreg"
406     depends="jar"
407     description="Runs jtreg tests for main using the jtreg ant task">
408     <run-jtreg-tests
409     target="8"
410     workdir="${build.dir}"
411     classes="${product.jar}"/>
412     </target>
413    
414 jsr166 1.142 <target name="test"
415 jsr166 1.135 depends="test-tck, test-jtreg"
416     description="Runs tck and jtreg tests for main">
417     </target>
418    
419 tim 1.18
420    
421 tim 1.32 <target name="configure-compiler">
422 tim 1.54
423     <property name="unchecked.option" value="-Xlint:unchecked"/>
424    
425     <condition property="warnunchecked.arg" value="${unchecked.option}">
426 tim 1.57 <istrue value="${build.warnunchecked}"/>
427 tim 1.32 </condition>
428    
429 tim 1.37 <property name="warnunchecked.arg" value=""/>
430 tim 1.34
431 tim 1.32
432     <!-- Common options in javac invocations -->
433 tim 1.57 <property name="build.args" value="${warnunchecked.arg}"/>
434 tim 1.33
435     </target>
436    
437    
438 tim 1.28
439 jsr166 1.65 <!-- Various demos and test programs -->
440    
441    
442 jsr166 1.103 <target name="loops" depends="configure-compiler"
443 jsr166 1.65 description="Benchmark from Doug Lea's AQS paper">
444    
445     <mkdir dir="${build.loops.dir}"/>
446    
447     <javac srcdir="${loops.src.dir}"
448     destdir="${build.loops.dir}"
449     debug="${build.debug}"
450     debuglevel="${build.debuglevel}"
451     deprecation="${build.deprecation}"
452     source="${build.sourcelevel}"
453     fork="true">
454    
455     <compilerarg line="${build.args}"/>
456     <classpath refid="loops.classpath"/>
457 dl 1.84 <compilerarg value="-XDignore.symbol.file=true"/>
458 jsr166 1.65
459     </javac>
460    
461     <java classname="ALoops" fork="true">
462     <classpath refid="loops.classpath"/>
463     </java>
464    
465     </target>
466    
467    
468 jsr166 1.99 <!-- jsr166 4jdk7 -->
469 jsr166 1.92
470 jsr166 1.99 <target name="4jdk7compile"
471 jsr166 1.92 depends="configure-compiler"
472 jsr166 1.99 description="Compiles src/jdk7 sources, targeting jdk7">
473 jsr166 1.92
474 jsr166 1.99 <mkdir dir="${build.4jdk7.classes.dir}"/>
475 jsr166 1.92
476 jsr166 1.99 <javac srcdir="${4jdk7src.dir}"
477     destdir="${build.4jdk7.classes.dir}"
478 jsr166 1.92 debug="${build.debug}"
479     debuglevel="${build.debuglevel}"
480     deprecation="${build.deprecation}"
481 jsr166 1.107 source="6"
482 jsr166 1.92 classpath=""
483 jsr166 1.119 bootclasspath="${bootclasspath6}"
484 jsr166 1.92 includeAntRuntime="false"
485     includeJavaRuntime="false"
486 jsr166 1.97 executable="${javac7}"
487 jsr166 1.92 fork="true">
488    
489     <include name="**/*.java"/>
490 jsr166 1.133 <compilerarg value="-Xprefer:source"/>
491 jsr166 1.92 <compilerarg value="-XDignore.symbol.file=true"/>
492     <compilerarg value="-Xlint:all"/>
493 jsr166 1.118 <compilerarg line="${build.args}"/>
494 jsr166 1.92
495     </javac>
496 jsr166 1.118 </target>
497 jsr166 1.92
498 jsr166 1.116
499 jsr166 1.128 <target name="4jdk7jar"
500 jsr166 1.116 depends="4jdk7compile"
501     description="Builds library jar from compiled sources">
502    
503     <jar destfile="${4jdk7product.jar}">
504 jsr166 1.99 <fileset dir="${build.4jdk7.classes.dir}"/>
505 jsr166 1.97 </jar>
506    
507 jsr166 1.92 </target>
508    
509    
510 jsr166 1.99 <target name="4jdk7-test-tck"
511 jsr166 1.128 depends="4jdk7jar"
512 jsr166 1.99 description="Runs tck tests for jsr166-4jdk7 directly">
513 jsr166 1.116
514 jsr166 1.97 <run-tck-tests
515 jsr166 1.116 target="7"
516     workdir="${build.4jdk7.dir}"
517 jsr166 1.132 classes="${4jdk7product.jar}">
518     <javac-elements>
519 jsr166 1.134 <!-- JDK8+ test classes -->
520 jsr166 1.137 <exclude name="*8Test.java"/>
521 jsr166 1.138 <exclude name="DoubleAccumulatorTest.java"/>
522     <exclude name="DoubleAdderTest.java"/>
523     <exclude name="LongAccumulatorTest.java"/>
524     <exclude name="LongAdderTest.java"/>
525 jsr166 1.137 <exclude name="CompletableFutureTest.java"/>
526 jsr166 1.132 <exclude name="StampedLockTest.java"/>
527     </javac-elements>
528     </run-tck-tests>
529 jsr166 1.97 </target>
530    
531    
532 jsr166 1.99 <target name="4jdk7-test-tck-junit"
533     depends="4jdk7compile"
534     description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">
535 jsr166 1.97
536     <junit printsummary="true"
537     showoutput="true"
538     errorProperty="junit.failed"
539     failureProperty="junit.failed"
540     includeantruntime="true"
541     jvm="${java7}"
542     fork="true">
543    
544 jsr166 1.99 <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
545 jsr166 1.97 <jvmarg value="-server"/>
546 jsr166 1.92
547 jsr166 1.97 <classpath>
548     <pathelement location="${junit.jar}"/>
549 jsr166 1.99 <pathelement location="${build.4jdk7.tck.classes.dir}"/>
550 jsr166 1.97 </classpath>
551 jsr166 1.92
552 jsr166 1.97 <formatter type="brief"/>
553 jsr166 1.92
554 jsr166 1.140 <test name="${jsr166.tckTestClass}" haltonfailure="no">
555 jsr166 1.97 </test>
556 jsr166 1.92
557 jsr166 1.97 </junit>
558 jsr166 1.92 </target>
559    
560 jsr166 1.115 <target name="4jdk7-test-jtreg"
561 jsr166 1.135 depends="4jdk7jar"
562 jsr166 1.115 description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">
563 jsr166 1.135 <run-jtreg-tests
564     target="7"
565     workdir="${build.4jdk7.dir}"
566 jsr166 1.141 classes="${4jdk7product.jar}"
567     jtregflags="-exclude:${jtreg.src.dir}/jdk8tests"/>
568 jsr166 1.115 </target>
569    
570    
571     <target name="4jdk7-test"
572     depends="4jdk7-test-tck, 4jdk7-test-jtreg"
573     description="Runs tck and jtreg tests for jsr166-4jdk7">
574     </target>
575    
576 jsr166 1.92
577 jsr166 1.99 <target name="4jdk7docs"
578 jsr166 1.102 description="Builds javadocs for src/jdk7 to dist dir">
579 jsr166 1.92
580 jsr166 1.127 <delete dir="${4jdk7docs.dir}"/>
581     <mkdir dir="${4jdk7docs.dir}"/>
582 jsr166 1.92
583 jsr166 1.127 <javadoc destdir="${4jdk7docs.dir}"
584 jsr166 1.92 packagenames="none"
585     link="${jdkapi7docs.url}"
586 jsr166 1.99 overview="${4jdk7src.dir}/intro.html"
587 jsr166 1.130 access="${build.javadoc.access}"
588 jsr166 1.119 sourcepath="${4jdk7src.dir}:${jdk7src.dir}"
589 jsr166 1.92 classpath=""
590 jsr166 1.99 executable="${javadoc7}">
591     <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
592 jsr166 1.92 <include name="**/*.java"/>
593     </fileset>
594 jsr166 1.119 <arg value="-XDignore.symbol.file=true"/>
595 jsr166 1.92 </javadoc>
596     </target>
597    
598    
599 jsr166 1.99 <target name="4jdk7dist"
600 jsr166 1.125 depends="4jdk7dist-jar, 4jdk7dist-docs"
601 jsr166 1.92 description="Puts all distributable products in single hierarchy"/>
602    
603    
604 jsr166 1.99 <target name="4jdk7clean"
605 jsr166 1.109 description="Removes all 4jdk7 build products">
606 jsr166 1.92
607 jsr166 1.99 <delete dir="${build.4jdk7.dir}"/>
608 jsr166 1.92
609     </target>
610    
611    
612 jsr166 1.99 <target name="4jdk7dist-clean"
613 jsr166 1.92 description="Removes all build and distribution products">
614    
615     </target>
616    
617 jsr166 1.99 <target name="4jdk7dist-jar"
618 jsr166 1.128 depends="4jdk7clean, 4jdk7jar">
619 jsr166 1.125 <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
620     </target>
621 jsr166 1.92
622    
623 jsr166 1.125 <target name="4jdk7dist-docs"
624     depends="4jdk7clean, 4jdk7docs">
625 jsr166 1.127 <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
626 jsr166 1.92 </target>
627    
628 jsr166 1.109
629 dl 1.70 <!-- jsr166x -->
630    
631     <target name="jsr166xcompile"
632 jsr166 1.103 depends="configure-compiler"
633 jsr166 1.105 description="Compiles jsr166x sources to build dir">
634 dl 1.70
635 jsr166 1.114 <mkdir dir="${build.jsr166x.classes.dir}"/>
636 dl 1.70
637 jsr166 1.105 <javac srcdir="${topsrc.dir}"
638 jsr166 1.114 destdir="${build.jsr166x.classes.dir}"
639 jsr166 1.105 debug="${build.debug}"
640     debuglevel="${build.debuglevel}"
641     deprecation="${build.deprecation}"
642     classpath=""
643 jsr166 1.119 bootclasspath="${bootclasspath6}"
644 jsr166 1.107 source="5"
645 jsr166 1.105 includeAntRuntime="false"
646     includeJavaRuntime="false"
647     executable="${javac7}"
648     fork="true">
649 dl 1.70
650 jsr166 1.105 <include name="jsr166x/**/*.java"/>
651 dl 1.84 <compilerarg value="-XDignore.symbol.file=true"/>
652 jsr166 1.105 <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
653 jsr166 1.118 <compilerarg line="${build.args}"/>
654 dl 1.70
655     </javac>
656     </target>
657    
658    
659 jsr166 1.128 <target name="jsr166xjar"
660 dl 1.70 depends="jsr166xcompile"
661     description="Builds library jar from compiled sources">
662    
663 jsr166 1.106 <jar destfile="${jsr166x.jar}">
664 jsr166 1.114 <fileset dir="${build.jsr166x.classes.dir}"/>
665 dl 1.70 </jar>
666    
667     </target>
668    
669    
670     <target name="jsr166xdocs"
671 jsr166 1.102 description="Builds javadocs to dist dir">
672 dl 1.70
673 jsr166 1.127 <delete dir="${jsr166xdocs.dir}"/>
674     <mkdir dir="${jsr166xdocs.dir}"/>
675 dl 1.70
676 jsr166 1.127 <javadoc destdir="${jsr166xdocs.dir}"
677 jsr166 1.107 packagenames="jsr166x.*"
678 jsr166 1.91 link="${jdkapidocs.url}"
679 jsr166 1.130 access="${build.javadoc.access}"
680 jsr166 1.119 sourcepath="${topsrc.dir}:${jdk6src.dir}"
681     bootclasspath="${bootclasspath6}"
682 jsr166 1.107 source="5"
683 jsr166 1.118 executable="${javadoc7}">
684     <arg value="-XDignore.symbol.file=true"/>
685 dl 1.70
686 jsr166 1.118 </javadoc>
687 dl 1.70 </target>
688    
689    
690     <target name="jsr166xdist"
691 jsr166 1.125 depends="jsr166xdist-jar, jsr166xdist-docs"
692 dl 1.70 description="Puts all distributable products in single hierarchy"/>
693    
694    
695     <target name="jsr166xclean"
696 jsr166 1.109 description="Removes all jsr166x build products">
697 dl 1.70
698     <delete dir="${build.jsr166x.dir}"/>
699    
700     </target>
701    
702    
703     <target name="jsr166xdist-clean"
704     description="Removes all build and distribution products">
705    
706     </target>
707    
708    
709     <target name="jsr166xdist-jar"
710 jsr166 1.128 depends="jsr166xclean, jsr166xjar">
711 jsr166 1.106 <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
712 jsr166 1.125 </target>
713 dl 1.70
714 jsr166 1.125 <target name="jsr166xdist-docs"
715     depends="jsr166xclean, jsr166xdocs">
716 jsr166 1.127 <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
717 dl 1.70 </target>
718    
719 dl 1.74 <!-- jsr166y -->
720    
721    
722     <target name="jsr166ycompile"
723 jsr166 1.103 depends="configure-compiler"
724 dl 1.74 description="Compiles jsr166y sources">
725    
726 jsr166 1.114 <mkdir dir="${build.jsr166y.classes.dir}"/>
727 dl 1.74
728 jsr166 1.103 <javac srcdir="${topsrc.dir}"
729 jsr166 1.114 destdir="${build.jsr166y.classes.dir}"
730 jsr166 1.103 debug="${build.debug}"
731     debuglevel="${build.debuglevel}"
732     deprecation="${build.deprecation}"
733 jsr166 1.107 source="6"
734 jsr166 1.103 classpath=""
735 jsr166 1.119 bootclasspath="${bootclasspath6}"
736 jsr166 1.103 includeAntRuntime="false"
737     includeJavaRuntime="false"
738     executable="${javac7}"
739     fork="true">
740 dl 1.74
741 jsr166 1.103 <include name="jsr166y/**/*.java"/>
742 dl 1.83 <compilerarg value="-XDignore.symbol.file=true"/>
743 jsr166 1.103 <compilerarg value="-Xlint:all"/>
744 jsr166 1.118 <compilerarg line="${build.args}"/>
745    
746 dl 1.74 </javac>
747     </target>
748    
749    
750 jsr166 1.128 <target name="jsr166yjar"
751 dl 1.74 depends="jsr166ycompile"
752     description="Builds library jar from compiled sources">
753    
754 jsr166 1.106 <jar destfile="${jsr166y.jar}" index="true">
755 jsr166 1.114 <fileset dir="${build.jsr166y.classes.dir}"/>
756 dl 1.74 </jar>
757    
758     </target>
759    
760    
761     <target name="jsr166ydocs"
762 jsr166 1.102 description="Builds javadocs to dist dir">
763 dl 1.74
764 jsr166 1.127 <delete dir="${jsr166ydocs.dir}"/>
765     <mkdir dir="${jsr166ydocs.dir}"/>
766 dl 1.74
767 jsr166 1.127 <javadoc destdir="${jsr166ydocs.dir}"
768 jsr166 1.107 packagenames="jsr166y.*"
769 jsr166 1.91 link="${jdkapidocs.url}"
770 jsr166 1.130 access="${build.javadoc.access}"
771 jsr166 1.119 sourcepath="${topsrc.dir}:${jdk6src.dir}"
772     bootclasspath="${bootclasspath6}"
773 jsr166 1.107 source="6"
774 jsr166 1.118 executable="${javadoc7}">
775     <arg value="-XDignore.symbol.file=true"/>
776 dl 1.74
777 jsr166 1.118 </javadoc>
778 dl 1.74 </target>
779    
780    
781     <target name="jsr166ydist"
782 jsr166 1.125 depends="jsr166ydist-jar, jsr166ydist-docs"
783 dl 1.74 description="Puts all distributable products in single hierarchy"/>
784    
785    
786     <target name="jsr166yclean"
787 jsr166 1.109 description="Removes all jsr166y build products">
788 dl 1.74
789     <delete dir="${build.jsr166y.dir}"/>
790    
791     </target>
792    
793    
794     <target name="jsr166ydist-clean"
795     description="Removes all build and distribution products">
796    
797     </target>
798    
799     <target name="jsr166ydist-jar"
800 jsr166 1.128 depends="jsr166yclean, jsr166yjar">
801 jsr166 1.106 <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
802 jsr166 1.125 </target>
803 dl 1.74
804 jsr166 1.125 <target name="jsr166ydist-docs"
805     depends="jsr166yclean, jsr166ydocs">
806 jsr166 1.127 <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
807 dl 1.74 </target>
808    
809 dl 1.90
810 dl 1.76 <!-- extra166y -->
811    
812    
813     <target name="extra166ycompile"
814 jsr166 1.128 depends="configure-compiler, jsr166yjar"
815 dl 1.76 description="Compiles extra166y sources">
816    
817 jsr166 1.114 <mkdir dir="${build.extra166y.classes.dir}"/>
818 dl 1.76
819 jsr166 1.103 <javac srcdir="${topsrc.dir}"
820 jsr166 1.114 destdir="${build.extra166y.classes.dir}"
821 jsr166 1.103 debug="${build.debug}"
822     debuglevel="${build.debuglevel}"
823     deprecation="${build.deprecation}"
824 jsr166 1.119 bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
825 jsr166 1.105 classpath=""
826 jsr166 1.107 source="6"
827 jsr166 1.103 includeAntRuntime="false"
828     includeJavaRuntime="false"
829     executable="${javac7}"
830     fork="true">
831 dl 1.76
832 jsr166 1.103 <include name="extra166y/**/*.java"/>
833 dl 1.83 <compilerarg value="-XDignore.symbol.file=true"/>
834 jsr166 1.103 <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
835 jsr166 1.118 <compilerarg line="${build.args}"/>
836 dl 1.76
837     </javac>
838     </target>
839    
840    
841 jsr166 1.128 <target name="extra166yjar"
842 dl 1.76 depends="extra166ycompile"
843     description="Builds library jar from compiled sources">
844    
845 jsr166 1.106 <jar destfile="${extra166y.jar}" index="true">
846 jsr166 1.114 <fileset dir="${build.extra166y.classes.dir}"/>
847 dl 1.76 </jar>
848    
849     </target>
850    
851    
852     <target name="extra166ydocs"
853 jsr166 1.107 description="Builds javadocs to build dir">
854 dl 1.76
855 jsr166 1.127 <delete dir="${extra166ydocs.dir}"/>
856     <mkdir dir="${extra166ydocs.dir}"/>
857 dl 1.76
858 jsr166 1.127 <javadoc destdir="${extra166ydocs.dir}"
859 jsr166 1.107 packagenames="extra166y.*"
860 jsr166 1.91 link="${jdkapidocs.url}"
861 jsr166 1.130 access="${build.javadoc.access}"
862 jsr166 1.119 sourcepath="${topsrc.dir}:${jdk6src.dir}"
863     bootclasspath="${bootclasspath6}"
864 jsr166 1.107 source="6"
865 jsr166 1.118 executable="${javadoc7}">
866     <arg value="-XDignore.symbol.file=true"/>
867 dl 1.76
868 jsr166 1.118 </javadoc>
869 dl 1.76 </target>
870    
871    
872     <target name="extra166ydist"
873 jsr166 1.125 depends="extra166ydist-jar, extra166ydist-docs"
874 dl 1.76 description="Puts all distributable products in single hierarchy"/>
875    
876    
877     <target name="extra166yclean"
878 jsr166 1.109 description="Removes all extra166y build products">
879 dl 1.76
880     <delete dir="${build.extra166y.dir}"/>
881    
882     </target>
883    
884    
885     <target name="extra166ydist-clean"
886     description="Removes all build and distribution products">
887    
888     </target>
889    
890     <target name="extra166ydist-jar"
891 jsr166 1.128 depends="extra166yclean, extra166yjar">
892 jsr166 1.106 <copy file="${extra166y.jar}" todir="${dist.dir}"/>
893 jsr166 1.125 </target>
894 dl 1.76
895 jsr166 1.125 <target name="extra166ydist-docs"
896     depends="extra166yclean, extra166ydocs">
897 jsr166 1.127 <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
898 dl 1.76 </target>
899    
900 dl 1.90 <!-- jsr166e -->
901    
902 jsr166 1.144 <property name="build.jsr166e.java.version" value="6"/>
903     <property name="build.jsr166e.javac" value="${javac6}"/>
904    
905 dl 1.90 <target name="jsr166ecompile"
906 jsr166 1.94 depends="configure-compiler"
907 dl 1.90 description="Compiles jsr166e sources">
908    
909 jsr166 1.114 <mkdir dir="${build.jsr166e.classes.dir}"/>
910 dl 1.90
911 jsr166 1.95 <javac srcdir="${topsrc.dir}"
912 jsr166 1.114 destdir="${build.jsr166e.classes.dir}"
913 jsr166 1.94 debug="${build.debug}"
914     debuglevel="${build.debuglevel}"
915     deprecation="${build.deprecation}"
916 jsr166 1.144 source="${build.jsr166e.java.version}"
917 jsr166 1.94 classpath=""
918     includeAntRuntime="false"
919     includeJavaRuntime="false"
920 jsr166 1.144 executable="${build.jsr166e.javac}"
921 jsr166 1.94 fork="true">
922 dl 1.90
923 jsr166 1.95 <include name="jsr166e/**/*.java"/>
924 dl 1.90 <compilerarg value="-XDignore.symbol.file=true"/>
925 jsr166 1.94 <compilerarg value="-Xlint:all"/>
926 jsr166 1.118 <compilerarg line="${build.args}"/>
927 dl 1.90
928     </javac>
929     </target>
930    
931    
932 jsr166 1.128 <target name="jsr166ejar"
933 dl 1.90 depends="jsr166ecompile"
934     description="Builds library jar from compiled sources">
935    
936 jsr166 1.106 <jar destfile="${jsr166e.jar}" index="true">
937 jsr166 1.114 <fileset dir="${build.jsr166e.classes.dir}"/>
938 dl 1.90 </jar>
939    
940     </target>
941    
942    
943     <target name="jsr166edocs"
944 jsr166 1.107 description="Builds javadocs to build dir">
945 dl 1.90
946 jsr166 1.127 <delete dir="${jsr166edocs.dir}"/>
947     <mkdir dir="${jsr166edocs.dir}"/>
948 dl 1.90
949 jsr166 1.127 <javadoc destdir="${jsr166edocs.dir}"
950 jsr166 1.107 packagenames="jsr166e.*"
951     link="${jdkapidocs.url}"
952 jsr166 1.130 access="${build.javadoc.access}"
953 jsr166 1.144 sourcepath="${topsrc.dir}:${jdk6src.dir}"
954     source="${build.jsr166e.java.version}"
955 jsr166 1.118 executable="${javadoc7}">
956     <arg value="-XDignore.symbol.file=true"/>
957    
958 jsr166 1.96 </javadoc>
959 dl 1.90 </target>
960    
961    
962 jsr166 1.144 <target name="jsr166e-test-tck-one-java-version"
963 jsr166 1.128 depends="jsr166ejar"
964 jsr166 1.122 description="Runs tck tests for jsr166e">
965    
966 jsr166 1.144 <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
967    
968 jsr166 1.122 <run-tck-tests
969     tck.src.dir="${test.src.dir}/tck-jsr166e"
970 jsr166 1.144 target="${build.jsr166e.java.version}"
971 jsr166 1.122 workdir="${build.jsr166e.dir}"
972     classes="${jsr166e.jar}"/>
973     </target>
974    
975 jsr166 1.144 <target name="jsr166e-test-tck"
976     description="Runs tck tests for jsr166e for multiple java versions">
977    
978     <!-- <antcall target="clean"/> -->
979     <!-- <antcall target="jsr166e-test-tck-one-java-version"> -->
980     <!-- <param name="build.jsr166e.java.version" value="8"/> -->
981     <!-- <param name="build.jsr166e.javac" value="${javac8}"/> -->
982     <!-- </antcall> -->
983    
984     <antcall target="clean"/>
985     <antcall target="jsr166e-test-tck-one-java-version">
986     <param name="build.jsr166e.java.version" value="7"/>
987     <param name="build.jsr166e.javac" value="${javac7}"/>
988     </antcall>
989    
990     <antcall target="clean"/>
991     <antcall target="jsr166e-test-tck-one-java-version">
992     <param name="build.jsr166e.java.version" value="6"/>
993     <param name="build.jsr166e.javac" value="${javac6}"/>
994     </antcall>
995     </target>
996    
997 jsr166 1.122
998 dl 1.90 <target name="jsr166edist"
999 jsr166 1.125 depends="jsr166edist-jar, jsr166edist-docs"
1000 dl 1.90 description="Puts all distributable products in single hierarchy"/>
1001    
1002    
1003     <target name="jsr166eclean"
1004 jsr166 1.109 description="Removes all jsr166e build products">
1005 dl 1.90 <delete dir="${build.jsr166e.dir}"/>
1006     </target>
1007    
1008    
1009     <target name="jsr166edist-clean"
1010     description="Removes all build and distribution products">
1011    
1012     </target>
1013    
1014     <target name="jsr166edist-jar"
1015 jsr166 1.128 depends="jsr166eclean, jsr166ejar">
1016 jsr166 1.106 <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1017 jsr166 1.125 </target>
1018 dl 1.90
1019 jsr166 1.125 <target name="jsr166edist-docs"
1020     depends="jsr166eclean, jsr166edocs">
1021 jsr166 1.127 <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1022 dl 1.90 </target>
1023    
1024 jsr166 1.130
1025     <!-- Find buglets that can be detected by static build tools -->
1026    
1027     <target name="lint">
1028     <antcall target="dists">
1029     <param name="build.javadoc.access" value="private"/>
1030     </antcall>
1031     </target>
1032    
1033    
1034 tim 1.1 </project>