[cvs] / jsr166 / build.xml Repository:
ViewVC logotype

Diff of /jsr166/build.xml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.74, Thu Sep 13 11:19:25 2007 UTC revision 1.197, Fri Mar 4 21:00:45 2016 UTC
# Line 1  Line 1 
1  <project name="jsr166" default="usage">  <project name="jsr166" default="usage"
2      xmlns:if="ant:if" xmlns:unless="ant:unless">
3    
4    <description>    <description>
5  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
# Line 8  Line 9 
9    
10    User-specific settings are read from user.properties.    User-specific settings are read from user.properties.
11    See user.properties.sample for an explanation of some useful settings.    See user.properties.sample for an explanation of some useful settings.
12    
13      The repository contains all dependencies except for ant and the JDK
14      itself.  Because the JDK version matters and because different
15      targets require different JDKs, we assume that users have created a
16      hierarchy containing:
17      $HOME/jdk/jdk6
18      $HOME/jdk/jdk7
19      $HOME/jdk/jdk8
20      $HOME/jdk/jdk9
21      where each of the above is a JDK or a symlink to same, and
22      $HOME/jdk/src/jdk6
23      $HOME/jdk/src/jdk7
24      $HOME/jdk/src/jdk8
25      $HOME/jdk/src/jdk9
26      where each of the above is a complete JDK source tree
27      (e.g. mercurial forest) or a symlink to same.
28    
29      Alternatively, define ant variables thus:
30      ant -Djdk$N.home=...
31      for $N in 6 7 8 9 ...
32    
33      As of 2015-09, there is incomplete hacky support for jigsaw
34      Build for jigsaw using something like:
35      ant -Djdk9.home="$HOME/jdk/jigsaw" -Djdk9.src.dir="$HOME/jdk/src/jigsaw" clean test dist
36      "docs" target is still broken.
37  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
38    </description>    </description>
39    
40    <target name="usage" description="Advises user to run with -projecthelp">    <!-- Display main targets by running 'ant -projecthelp' -->
41      <echo>Run "ant -projecthelp" for full usage information.</echo>    <target name="usage">
42        <java classname="org.apache.tools.ant.Main">
43          <arg value="-projecthelp" />
44        </java>
45    </target>    </target>
46    
47      <!-- HOWTO printf debug: <echo message="prop=${prop}"/> -->
48    
49    <!-- User-specific settings -->    <!-- User-specific settings -->
50    <property file="user.properties"/>    <property file="user.properties"/>
51    
52    
53    <!-- Compilation options -->    <!-- Compilation options -->
54    <property name="build.sourcelevel"    value="1.5"/>    <property name="build.sourcelevel"    value="6"/>
55    <property name="build.debug"          value="true"/>    <property name="build.debug"          value="true"/>
56    <property name="build.debuglevel"     value="source,lines,vars"/>    <property name="build.debuglevel"     value="source,lines,vars"/>
57    <property name="build.deprecation"    value="false"/>    <property name="build.deprecation"    value="false"/>
58      <property name="build.javadoc.access" value="protected"/>
59    
60    <!-- Build locations -->    <!-- Build locations -->
61    <property name="build.dir"            location="build"/>    <property name="build.dir"            location="build"/>
62    <property name="build.classes.dir"    location="${build.dir}/classes"/>    <property name="build.classes.dir"    location="${build.dir}/classes"/>
63    <property name="build.testcases.dir"  location="${build.dir}/testcases"/>    <property name="build.testcases.dir"  location="${build.dir}/testcases"/>
   <property name="build.j1.dir"         location="${build.dir}/j1"/>  
64    <property name="build.loops.dir"      location="${build.dir}/loops"/>    <property name="build.loops.dir"      location="${build.dir}/loops"/>
   <property name="build.lib.dir"        location="${build.dir}/lib"/>  
   <property name="build.ant.dir"        location="${build.dir}/ant"/>  
   <property name="build.javadocs.dir"   location="${build.dir}/javadocs"/>  
65    <property name="build.reports.dir"    location="${build.dir}/reports"/>    <property name="build.reports.dir"    location="${build.dir}/reports"/>
   <property name="build.checkstyle.dir" location="${build.dir}/checkstyle"/>  
   <property name="build.doccheck.dir"   location="${build.dir}/doccheck"/>  
   <property name="build.filter.src.dir" location="${build.dir}/filtersrc"/>  
   <property name="build.dc-filter.dir"  location="${build.dir}/filterdocchk"/>  
   <property name="build.jsr166x.dir"    location="${build.dir}/jsr166x"/>  
   <property name="build.jsr166xlib.dir"        location="${build.dir}/jsr166xlib"/>  
   <property name="build.jsr166xjavadocs.dir"   location="${build.dir}/jsr166xjavadocs"/>  
66    
67      <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
68      <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>
69      <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/>
70      <property name="build.4jdk7.docs.dir"        location="${build.4jdk7.dir}/docs"/>
71    
72      <property name="build.jsr166x.dir"           location="${build.dir}/jsr166x"/>
73    <property name="build.jsr166y.dir"    location="${build.dir}/jsr166y"/>    <property name="build.jsr166y.dir"    location="${build.dir}/jsr166y"/>
74    <property name="build.jsr166ylib.dir"        location="${build.dir}/jsr166ylib"/>    <property name="build.jsr166e.dir"           location="${build.dir}/jsr166e"/>
75    <property name="build.jsr166yjavadocs.dir"   location="${build.dir}/jsr166yjavadocs"/>    <property name="build.extra166y.dir"         location="${build.dir}/extra166y"/>
76    
77      <property name="build.jsr166x.classes.dir"   location="${build.jsr166x.dir}/classes"/>
78      <property name="build.jsr166y.classes.dir"   location="${build.jsr166y.dir}/classes"/>
79      <property name="build.jsr166e.classes.dir"   location="${build.jsr166e.dir}/classes"/>
80      <property name="build.extra166y.classes.dir" location="${build.extra166y.dir}/classes"/>
81    
82      <!-- JDK locations -->
83      <property name="jdks.home"  location="${user.home}/jdk"/>
84    
85      <macrodef name="defjdklocations">
86        <attribute name="v"/>
87        <sequential>
88        <property name="jdk@{v}.home"   location="${jdks.home}/jdk@{v}"/>
89        <property name="java@{v}"       location="${jdk@{v}.home}/bin/java"/>
90        <property name="javac@{v}"      location="${jdk@{v}.home}/bin/javac"/>
91        <property name="javadoc@{v}"    location="${jdk@{v}.home}/bin/javadoc"/>
92        <local name="have.java.base"/>
93        <available property="have.java.base"
94          file="${jdks.home}/src/jdk@{v}/jdk/src/java.base/share/classes" type="dir"/>
95        <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/java.base/share/classes"
96          if:set="have.java.base"/>
97        <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/share/classes"
98          unless:set="have.java.base"/>
99        <local name="modules"/>
100        <available property="modules" file="${jdk@{v}.home}/jmods" type="dir"/>
101        <local name="boot.jar.dir"/>
102        <property name="boot.jar.dir"   location="${jdk@{v}.home}/jre/lib" unless:set="modules"/>
103        <path id="bootclasspath@{v}" unless:set="modules">
104          <pathelement path="${boot.jar.dir}/resources.jar"/>
105          <pathelement path="${boot.jar.dir}/rt.jar"/>
106          <pathelement path="${boot.jar.dir}/jsse.jar"/>
107          <pathelement path="${boot.jar.dir}/jce.jar"/>
108          <pathelement path="${boot.jar.dir}/charsets.jar"/>
109        </path>
110        <property name="bootclasspath@{v}" value="${toString:bootclasspath@{v}}" unless:set="modules"/>
111        </sequential>
112      </macrodef>
113    
114      <macrodef name="mirror-dir">
115        <attribute name="src"/>
116        <attribute name="dst"/>
117        <sequential>
118        <delete dir="@{dst}"/>
119        <mkdir dir="@{dst}"/>
120        <copy todir="@{dst}" preservelastmodified="true">
121          <fileset dir="@{src}"/>
122        </copy>
123        </sequential>
124      </macrodef>
125    
126      <defjdklocations v="6"/>
127      <defjdklocations v="7"/>
128      <defjdklocations v="8"/>
129      <defjdklocations v="9"/>
130    
131    <!-- Source locations -->    <!-- Source locations -->
132    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
133    <property name="test.src.dir"         location="${basedir}/src/test"/>    <property name="test.src.dir"         location="${basedir}/src/test"/>
   <property name="j1.src.dir"           location="${basedir}/src/javaone"/>  
134    <property name="loops.src.dir"        location="${basedir}/src/loops"/>    <property name="loops.src.dir"        location="${basedir}/src/loops"/>
135    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>
136    <property name="jtreg.src.dir"        location="${test.src.dir}/jtreg"/>    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>
137    <property name="ant.src.dir"          location="${basedir}/etc/ant"/>    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg"/>
138    <property name="stylesheet.dir"       location="${basedir}/etc/xsl"/>    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>
139      <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>
140    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
141    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
142    <property name="topsrc.dir"           location="${basedir}/src"/>    <property name="topsrc.dir"           location="${basedir}/src"/>
143    <property name="jsr166xsrc.dir"       location="${basedir}/src/jsr166x"/>    <property name="4jdk7src.dir"         location="${topsrc.dir}/jdk7"/>
144    <property name="jsr166ysrc.dir"       location="${basedir}/src/jsr166y"/>    <property name="jsr166xsrc.dir"       location="${topsrc.dir}/jsr166x"/>
145      <property name="jsr166ysrc.dir"       location="${topsrc.dir}/jsr166y"/>
146    <!-- Distribution locations -->    <property name="jsr166esrc.dir"       location="${topsrc.dir}/jsr166e"/>
147    <property name="dist.javadocs.dir"    location="${dist.dir}/docs"/>    <property name="extra166ysrc.dir"     location="${topsrc.dir}/extra166y"/>
148    <property name="dist.jsr166xjavadocs.dir"    location="${dist.dir}/jsr166xdocs"/>  
149    <property name="dist.jsr166yjavadocs.dir"    location="${dist.dir}/jsr166ydocs"/>    <!-- Javadoc locations -->
150      <property name="docs.dir"          location="${build.dir}/docs"/>
151      <property name="4jdk7docs.dir"     location="${build.4jdk7.dir}/docs"/>
152      <property name="jsr166xdocs.dir"   location="${build.jsr166x.dir}/docs"/>
153      <property name="jsr166ydocs.dir"   location="${build.jsr166y.dir}/docs"/>
154      <property name="jsr166edocs.dir"   location="${build.jsr166e.dir}/docs"/>
155      <property name="extra166ydocs.dir" location="${build.extra166y.dir}/docs"/>
156    
157      <property name="dist.docs.dir"          location="${dist.dir}/docs"/>
158      <property name="dist.4jdk7docs.dir"     location="${dist.dir}/jsr166-4jdk7docs"/>
159      <property name="dist.jsr166xdocs.dir"   location="${dist.dir}/jsr166xdocs"/>
160      <property name="dist.jsr166ydocs.dir"   location="${dist.dir}/jsr166ydocs"/>
161      <property name="dist.jsr166edocs.dir"   location="${dist.dir}/jsr166edocs"/>
162      <property name="dist.extra166ydocs.dir" location="${dist.dir}/extra166ydocs"/>
163    
164    <!-- Jar locations -->    <!-- Jar locations -->
165    <property name="product.jar"          location="${build.lib.dir}/jsr166.jar"/>    <property name="product.jar"      location="${build.dir}/jsr166.jar"/>
166    <property name="jsr166xproduct.jar"   location="${build.jsr166xlib.dir}/jsr166x.jar"/>    <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>
167    <property name="jsr166yproduct.jar"   location="${build.jsr166ylib.dir}/jsr166y.jar"/>    <property name="jsr166x.jar"      location="${build.jsr166x.dir}/jsr166x.jar"/>
168      <property name="jsr166y.jar"      location="${build.jsr166y.dir}/jsr166y.jar"/>
169      <property name="jsr166e.jar"      location="${build.jsr166e.dir}/jsr166e.jar"/>
170      <property name="extra166y.jar"    location="${build.extra166y.dir}/extra166y.jar"/>
171    <property name="junit.jar"            location="${lib.dir}/junit.jar"/>    <property name="junit.jar"            location="${lib.dir}/junit.jar"/>
   <property name="concurrent.jar"       location="${lib.dir}/concurrent.jar"/>  
172    
173    <!-- Bootclasspath argument -->    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
174    <property name="bootclasspath.args"   value="-Xbootclasspath/p:${product.jar}"/>    <property name="java5.docroot.url"      value="http://docs.oracle.com/javase/1.5.0/docs"/>
175      <property name="java6.docroot.url"      value="http://docs.oracle.com/javase/6/docs"/>
176      <property name="java7.docroot.url"      value="http://docs.oracle.com/javase/7/docs"/>
177      <property name="java8.docroot.url"      value="http://docs.oracle.com/javase/8/docs"/>
178      <!-- The expected canonical location does not yet exist as of 2015-11 -->
179      <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->
180      <property name="java9.docroot.url"      value="http://download.java.net/jdk9/docs"/>
181      <!-- Default jdk doc location (latest stable release seems best) -->
182      <property name="java.docroot.url"       value="${java8.docroot.url}"/>
183    
184      <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
185      <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>
186      <property name="java6.api.url"      value="${java6.docroot.url}/api/"/>
187      <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>
188      <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>
189      <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>
190      <property name="java.api.url"       value="${java.docroot.url}/api/"/>
191    
192      <!-- Define the "jtreg" task -->
193      <!-- See the docs in "jtreg -onlineHelp" -->
194      <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant"
195               classpath="${lib.dir}/jtreg.jar" />
196    
197      <!-- Tck options; see JSR166TestCase.java
198       To profile a single tck test class:
199       ant -Djsr166.profileTests=true -Djsr166.profileThreshold=10 -Djsr166.tckTestClass=CompletableFutureTest tck
200       To stress test a single tck test class:
201       ant -Djsr166.tckTestClass=CountedCompleterTest -Djsr166.runsPerTest=100 tck
202       To stress test a single tck test method:
203       ant -Djsr166.tckTestClass=RecursiveTaskTest -Djsr166.runsPerTest=1000 -Djsr166.methodFilter=testAbnormalInvokeAll3 tck
204      -->
205      <property name="jsr166.tckTestClass"     value="JSR166TestCase"/>
206      <macrodef name="run-tck-tests">
207        <attribute name="tck.src.dir" default="${tck.src.dir}"/>
208        <attribute name="target"/>
209        <attribute name="compile-target" default="@{target}"/>
210        <attribute name="workdir"/>
211        <attribute name="classes"/>
212        <attribute name="jvmflags" default="-ea -esa -Djsr166.testImplementationDetails=true"/>
213        <element name="javac-elements" optional="true"/>
214    
215        <sequential>
216    
217        <local name="modules"/>
218        <condition property="modules">
219          <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>
220        </condition>
221    
222        <mkdir dir="@{workdir}/tck-classes"/>
223    
224    <!-- Test classpath -->      <javac srcdir="@{tck.src.dir}"
225    <path id="test.classpath">             destdir="@{workdir}/tck-classes"
226      <pathelement location="${build.testcases.dir}"/>             debug="${build.debug}"
227               debuglevel="${build.debuglevel}"
228               deprecation="${build.deprecation}"
229               source="@{compile-target}"
230               target="@{compile-target}"
231               classpath="${junit.jar}"
232               includeAntRuntime="false"
233               includeJavaRuntime="false"
234               executable="${javac@{compile-target}}"
235               fork="true">
236    
237          <include name="*.java"/>
238          <compilerarg value="-XDignore.symbol.file=true"/>
239          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
240          <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
241          <compilerarg value="-Xpatch:${build.classes.dir}" if:set="modules"/>
242          <compilerarg line="${build.args}"/>
243          <javac-elements/>
244    
245        </javac>
246    
247        <java classname="${jsr166.tckTestClass}"
248              failonerror="true"
249              jvm="${java@{target}}"
250              fork="true">
251            <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
252            <jvmarg value="-Xpatch:${build.classes.dir}" if:set="modules"/>
253            <jvmarg line="@{jvmflags}"/>
254    
255            <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
256            <syspropertyset id="system-properties-used-by-tck">
257              <propertyref prefix="java.util.concurrent.ForkJoinPool"/>
258              <propertyref prefix="jsr166."/>
259              <propertyref name="test.timeout.factor"/>
260            </syspropertyset>
261    
262            <classpath>
263      <pathelement location="${junit.jar}"/>      <pathelement location="${junit.jar}"/>
264    </path>            <pathelement location="@{workdir}/tck-classes"/>
265            </classpath>
266        </java>
267    
268        </sequential>
269      </macrodef>
270    
271      <!-- Define jtreg test sets for different jdk versions -->
272      <fileset dir="${jtreg9.src.dir}">
273        <patternset id="jdk9.jtreg.tests">
274          <include name="**/*.java"/>
275        </patternset>
276      </fileset>
277    
278      <fileset dir="${jtreg8.src.dir}">
279        <patternset id="jdk8.jtreg.tests">
280          <include name="**/*.java"/>
281          <exclude name="**/SpliteratorCharacteristics.java"/>
282          <!-- https://bugs.openjdk.java.net/browse/JDK-6842353 -->
283          <exclude name="**/GCDuringIteration.java"/>
284        </patternset>
285      </fileset>
286    
287      <fileset dir="${jtreg7.src.dir}">
288        <patternset id="jdk7.jtreg.tests">
289          <include name="**/*.java"/>
290        </patternset>
291      </fileset>
292    
293      <!-- ant -Djtreg.flags=-timeoutFactor:4 -->
294      <property name="jtreg.flags" value=""/>
295    
296      <macrodef name="run-jtreg-tests">
297        <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->
298        <attribute name="source" default="7"/>
299        <attribute name="target"/>
300        <attribute name="workdir"/>
301        <attribute name="classes"/>
302        <attribute name="jtregflags" default=""/>
303    
304        <sequential>
305    
306        <!-- ant -Djtreg.verbose=time,fail,error jtreg -->
307        <property name="jtreg.verbose" value="nopass,fail,error"/>
308    
309        <local name="modules"/>
310        <condition property="modules">
311          <available file="${jdk@{target}.home}/jmods" type="dir"/>
312        </condition>
313    
314        <delete dir="@{workdir}/JTwork"   quiet="true"/>
315        <delete dir="@{workdir}/JTreport" quiet="true"/>
316        <mkdir dir="@{workdir}/JTwork/scratch"/>
317        <!-- workaround for https://bugs.openjdk.java.net/browse/CODETOOLS-7901571 -->
318        <mkdir dir="@{workdir}/JTreport/html"/>
319        <mkdir dir="@{workdir}/JTreport/text"/>
320        <jtreg dir="${jtreg@{target}.src.dir}"
321               jdk="${jdk@{target}.home}"
322               workDir="@{workdir}/JTwork"
323               reportDir="@{workdir}/JTreport">
324          <patternset refid="jdk@{target}.jtreg.tests"/>
325          <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
326          <arg value="-Xpatch:${build.classes.dir}" if:set="modules"/>
327          <arg value="-agentvm"/>
328          <arg value="-verbose:${jtreg.verbose}"/>
329          <arg value="-vmoptions:-esa -ea"/>
330          <arg value="-automatic"/>
331          <arg value="-k:!ignore"/>
332          <arg line="@{jtregflags}"/>
333          <arg line="${jtreg.flags}"/>
334        </jtreg>
335        </sequential>
336      </macrodef>
337    
338    <!-- ALoops classpath -->    <!-- ALoops classpath -->
339    <path id="loops.classpath">    <path id="loops.classpath">
340      <pathelement location="${build.loops.dir}"/>      <pathelement location="${build.loops.dir}"/>
341    </path>    </path>
342    
343    <!-- J1 classpath -->    <!-- Support @jls tag, used in jdk8+ javadoc -->
344    <path id="j1.classpath">    <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
345      <pathelement location="${build.classes.dir}"/>    <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
     <pathelement location="${build.j1.dir}"/>  
     <pathelement location="${junit.jar}"/>  
   
     <!-- Include dl.u.c for BoundedBuffer comparison -->  
     <pathelement location="${concurrent.jar}"/>  
   </path>  
   
346    
347    <!-- Main targets -->    <!-- Main targets -->
348    
349      <property name="build.main.java.version" value="9"/>
350      <property name="build.main.javac" value="${javac9}"/>
351    
352      <target name="dists"
353              depends="dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
354              description="Builds all public jars and docs"/>
355    
356    <target name="compile"    <target name="compile"
357            depends="init, configure-compiler"            depends="configure-compiler"
358            description="Compiles main sources to build folder">            description="Compiles src/main sources to build dir">
359    
360        <local name="modules"/>
361        <condition property="modules">
362          <and>
363            <available file="${jdk9.home}/jmods" type="dir"/>
364            <equals arg1="9" arg2="${build.main.java.version}"/>
365          </and>
366        </condition>
367    
368        <local name="destdir"/>
369        <property name="destdir" value="${build.classes.dir}/java.base" if:set="modules"/>
370        <property name="destdir" value="${build.classes.dir}" unless:set="modules"/>
371    
372      <mkdir dir="${build.classes.dir}"/>      <mkdir dir="${destdir}"/>
373    
374      <javac srcdir="${src.dir}"      <javac srcdir="${src.dir}"
375            destdir="${build.classes.dir}"             destdir="${destdir}"
376              debug="${build.debug}"              debug="${build.debug}"
377         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
378        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
379             source="${build.sourcelevel}"             classpath=""
380               includeAntRuntime="false"
381               includeJavaRuntime="false"
382               executable="${build.main.javac}"
383               fork="true">               fork="true">
384    
385        <include name="**/*.java"/>        <include name="**/*.java"/>
386        <compilerarg value="-XDignore.symbol.file"/>        <compilerarg value="-Xmodule:java.base" if:set="modules"/>
387          <compilerarg value="-Xprefer:source"/>
388  <!--        <compilerarg value="-XDignore.symbol.file=true"/>
389        <exclude name="java/lang/**"/>        <compilerarg value="-Xlint:all"/>
390          <compilerarg value="-Werror"/>
391          <compilerarg value="-Xdoclint:all/protected"/>
392          <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
393        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
       <compilerarg line="-Xlint -Xmaxwarns 1000"/>  
 -->  
394    
395      </javac>      </javac>
396    
397        <!-- We need jdk9's Contended annotation, but at compile time only -->
398        <delete file="${destdir}/jdk/internal/vm/annotation/Contended.class"/>
399    </target>    </target>
400    
401    
   
402    <target name="jar"    <target name="jar"
403            depends="compile"            depends="compile"
404            description="Builds library jar from compiled sources">            description="Builds library jar from compiled sources">
405    
     <mkdir dir="${build.lib.dir}"/>  
   
406      <jar destfile="${product.jar}">      <jar destfile="${product.jar}">
407        <fileset dir="${build.classes.dir}"/>        <fileset dir="${build.classes.dir}"/>
408          <manifest>
409            <attribute name="Built-By" value="${user.name}"/>
410            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
411          </manifest>
412      </jar>      </jar>
   
413    </target>    </target>
414    
415    
   
   <target name="test"  
           depends="init, configure-tests, report-tests"  
           description="Runs all tests (requires JUnit 3.8.1 in ${ant.home}/lib)" />  
   
   
   
416    <target name="docs"    <target name="docs"
417            description="Builds javadocs with custom tags to build folder">            description="Builds javadocs for src/main to dist dir">
   
     <delete dir="${build.javadocs.dir}"/>  
     <mkdir dir="${build.javadocs.dir}"/>  
   
     <javadoc destdir="${build.javadocs.dir}"  
                 link="http://java.sun.com/javase/6/docs/api/"  
             overview="${src.dir}/intro.html"  
             sourcepath="${src.dir}:/home/dl/1.6.0/j2se/martin/j2se/src/share/classes"  
     >  
   
       <packageset dir="${src.dir}"/>  
418    
419      </javadoc>      <delete dir="${docs.dir}"/>
420        <mkdir dir="${docs.dir}"/>
421    
422    </target>      <!-- the packagenames="none" hack below prevents scanning the -->
423        <!-- sourcepath for packages -->
424    
425        <javadoc destdir="${docs.dir}"
426                 packagenames="none"
427    <target name="doccheck"               link="${java9.api.url}"
428            depends="filter-doccheck"               overview="${src.dir}/intro.html"
429            description="Reports on javadoc style errors">               access="${build.javadoc.access}"
430                 sourcepath="${src.dir}:${jdk9src.dir}"
431      <delete dir="${build.doccheck.dir}"/>               classpath=""
432      <mkdir dir="${build.doccheck.dir}"/>               executable="${javadoc9}">
433          <fileset dir="${src.dir}" defaultexcludes="yes">
434      <javadoc doclet="com.sun.tools.doclets.doccheck.DocCheck"          <include name="**/*.java"/>
435           docletpath="${lib.dir}/doccheck.jar"        </fileset>
436              destdir="${build.doccheck.dir}">        <arg line="-Xdocrootparent ${java9.docroot.url}"/>
437        <packageset dir="${build.dc-filter.dir}"/>        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
438          <arg value="-XDignore.symbol.file=true"/>
439    <!--  TODO     <arg value="-Xmodule:java.base"/> -->
440          <arg value="-tag"/>
441          <arg value="${javadoc.jls.option}"/>
442          <arg value="-tag"/>
443          <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>
444          <arg value="-tag"/>
445          <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
446          <arg value="-tag"/>
447          <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
448      </javadoc>      </javadoc>
   
     <echo>DocCheck output is in ${build.doccheck.dir}</echo>  
   
   </target>  
   
   
   
   <target name="checkstyle"  
           depends="filter-src"  
           description="Reports on style errors in Java source (verbose, mostly chaff)">  
   
     <taskdef resource="checkstyletask.properties"  
             classpath="${lib.dir}/checkstyle-all-3.1.jar"/>  
   
     <mkdir dir="${build.checkstyle.dir}"/>  
   
     <checkstyle config="etc/checkstyle/sun_checks.xml"  
        failOnViolation="false">  
       <formatter type="xml" toFile="${build.checkstyle.dir}/checkstyle-report.xml"/>  
       <fileset dir="${build.filter.src.dir}" includes="**/*.java"/>  
     </checkstyle>  
   
     <style in="${build.checkstyle.dir}/checkstyle-report.xml"  
           out="${build.checkstyle.dir}/checkstyle-report.html"  
         style="${stylesheet.dir}/checkstyle-frames.xsl"/>  
   
449    </target>    </target>
450    
451    
   
452    <target name="dist"    <target name="dist"
453            depends="init, dist-clean, dist-jar, dist-docs"            depends="dist-clean, dist-jar, dist-docs"
454            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
455    
456    
   
457    <target name="release"    <target name="release"
458            depends="dist"            depends="dist"
459            description="Puts entire CVS tree, plus distribution productions, in a jar">            description="Puts entire CVS tree, plus distribution productions, in a jar">
# Line 234  Line 468 
468        <exclude name="src/emulation/**"/>        <exclude name="src/emulation/**"/>
469        <exclude name="**/SyntaxTest.java"/>        <exclude name="**/SyntaxTest.java"/>
470        <exclude name="**/SuperfluousAbstract.java"/>        <exclude name="**/SuperfluousAbstract.java"/>
471          <manifest>
472            <attribute name="Built-By" value="${user.name}"/>
473            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
474          </manifest>
475      </jar>      </jar>
   
476    </target>    </target>
477    
478    
   
479    <target name="clean"    <target name="clean"
480            description="Removes all build products">            description="Removes all build products">
481    
482      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
     <delete dir="${build.classes.dir}"/>  
     <delete dir="${build.lib.dir}"/>  
483    
484    </target>    </target>
485    
486    
   
487    <target name="dist-clean"    <target name="dist-clean"
488            description="Removes all build and distribution products">            description="Removes all build and distribution products">
489    
490        <delete dir="${build.dir}"/>
491      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
492    
493    </target>    </target>
494    
495    
496      <target name="dist-jar"
497              depends="clean, jar">
498        <copy file="${product.jar}" todir="${dist.dir}"/>
499      </target>
500    
501    <target name="dist-docs"    <target name="dist-docs"
502            description="Builds javadocs without custom tags to dist folder">            depends="clean, docs">
503        <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
     <delete dir="${dist.javadocs.dir}"/>  
     <mkdir dir="${dist.javadocs.dir}"/>  
   
     <javadoc destdir="${dist.javadocs.dir}"  
             link="http://java.sun.com/javase/6/docs/api/"  
             overview="${src.dir}/intro.html"  
   
             sourcepath="${src.dir}:/home/dl/1.6.0/j2se/martin/j2se/src/share/classes"  
      >  
 <!--  
       <packageset dir="${src.dir}" defaultexcludes="yes">  
       <include name="java/util/concurrent"/>  
       <include name="java/util/concurrent/atomic"/>  
       <include name="java/util/concurrent/locks"/>  
       </packageset>  
 -->  
       <fileset dir="${topsrc.dir}" defaultexcludes="yes">  
       <include name="main/java/util/concurrent/*.java"/>  
       <include name="main/java/util/concurrent/atomic/*.java"/>  
       <include name="main/java/util/concurrent/locks/*.java"/>  
       <include name="main/java/util/*.java"/>  
 <!--  
       <include name="main/java/util/concurrent/*.html"/>  
       <include name="main/java/util/concurrent/atomic/*.html"/>  
       <include name="main/java/util/concurrent/locks/*.html"/>  
       <include name="main/java/util/*.html"/>  
 -->  
 <!--      <include name="jsr166x/*.java"/> -->  
       </fileset>  
     </javadoc>  
   
504    </target>    </target>
505    
506      <target name="tck"
507              depends="jar"
508              description="Runs tck tests for main directly">
509    
510        <run-tck-tests
511          target="${build.main.java.version}"
512          workdir="${build.dir}"
513          classes="${product.jar}"/>
514      </target>
515    
516    <!-- Internal targets -->    <target name="tck-parallelism-1"
517              description="Runs tck with given common pool parallelism">
518        <antcall target="tck">
519          <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
520        </antcall>
521      </target>
522    
523    <target name="init">    <target name="tck-parallelism-0"
524              description="Runs tck with given common pool parallelism">
525        <antcall target="tck">
526          <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
527        </antcall>
528      </target>
529    
530      <!-- Version is kept in a separate file -->    <target name="jtreg"
531      <loadfile property="version" srcFile="version.properties"/>            depends="jar"
532      <echo>Building JSR-166 version ${version}</echo>            description="Runs jtreg tests for main using the jtreg ant task">
533      <echo>java.home is ${java.home}</echo>      <run-jtreg-tests
534           target="${build.main.java.version}"
535           workdir="${build.dir}"
536           classes="${product.jar}"/>
537      </target>
538    
539      <target name="test"
540              depends="tck, tck-parallelism-1, jtreg"
541              description="Runs tck and jtreg tests for main">
542    </target>    </target>
543    
544      <target name="jtreg8" description="Runs jtreg tests with jdk8">
545    
546    <target name="dist-jar"      <antcall target="jtreg">
547            depends="clean, jar">        <param name="build.main.java.version" value="8"/>
548          <param name="build.main.javac" value="${javac8}"/>
549      <copy file="${product.jar}" todir="${dist.dir}"/>      </antcall>
550    
551    </target>    </target>
552    
553      <target name="test89"
554              description="Runs tck and jtreg tests for main for multiple java versions">
555    
556    <target name="compile-ant-filter"      <antcall target="clean"/>
557            depends="init">      <antcall target="test">
558          <param name="build.main.java.version" value="8"/>
559      <mkdir dir="${build.ant.dir}"/>        <param name="build.main.javac" value="${javac8}"/>
560        </antcall>
561    
562      <javac srcdir="${ant.src.dir}"      <antcall target="clean"/>
563            destdir="${build.ant.dir}"      <antcall target="test">
564             source="1.4"/>        <param name="build.main.java.version" value="9"/>
565          <param name="build.main.javac" value="${javac9}"/>
566        </antcall>
567    
568    </target>    </target>
569    
570    
   <target name="filter-src"  
           depends="compile-ant-filter">  
571    
572      <mkdir dir="${build.filter.src.dir}"/>    <target name="configure-compiler">
573        <fail message="ant version too old">
574          <condition>
575            <not> <antversion atleast="1.9.1"/> </not>
576          </condition>
577        </fail>
578    
579      <copy todir="${build.filter.src.dir}">      <property name="unchecked.option" value="-Xlint:unchecked"/>
       <fileset dir="${src.dir}">  
         <include name="**/*.html"/>  
       </fileset>  
     </copy>  
580    
581      <copy todir="${build.filter.src.dir}">      <condition property="warnunchecked.arg" value="${unchecked.option}">
582        <fileset dir="${src.dir}">        <istrue value="${build.warnunchecked}"/>
583          <exclude name="**/*.html"/>      </condition>
         <!-- Files excluded from dist-docs -->  
         <exclude name="java/util/Random.*"/>  
         <exclude name="sun/misc/Unsafe.*"/>  
       </fileset>  
       <!--  
       <filterchain>  
       -->  
584    
585          <!--      <property name="warnunchecked.arg" value=""/>
          # This filter gets rid of angle-bracketed type parameters  
          # so that javadoc can run on the result. The following  
          # heuristic seems to work:  
          #  
          # For all lines not starting with space(s)-asterisk-space(s),  
          #   replace <something> with a space, where there may be more  
          #   than one right angle bracket at the end, and "something"  
          #   must not contain parens or pipes. (This may need some  
          #   tweaking.)  
          -->  
586    
         <!--  
         <filterreader classname="jsr166.ant.filters.ReplaceFilter"  
                       classpath="${build.ant.dir}">  
           <param name="notmatching" value="^\s+\*\s.*$"/>  
           <param name="pattern"     value="&lt;[^|>()]+?>+"/>  
           <param name="replacement" value=" "/>  
         </filterreader>  
         -->  
587    
588        <!--      <!-- Common options in javac invocations -->
589        </filterchain>      <property name="build.args" value="${warnunchecked.arg}"/>
       -->  
     </copy>  
590    
591    </target>    </target>
592    
593    
   <target name="filter-doccheck"  
           depends="filter-src">  
594    
595      <mkdir dir="${build.dc-filter.dir}"/>    <!-- Various demos and test programs -->
   
     <copy todir="${build.dc-filter.dir}">  
       <fileset dir="${build.filter.src.dir}">  
         <include name="**/*.html"/>  
       </fileset>  
     </copy>  
   
     <property name="generic.declarations"  
              value="/** Fake type parameter. */ public interface E {} /** Fake type parameter. */ public interface T {} /** Fake type parameter. */ public interface K {} /** Fake type parameter. */ public interface V {}"  
     />  
   
     <copy todir="${build.dc-filter.dir}">  
       <fileset dir="${build.filter.src.dir}">  
         <exclude name="**/*.html"/>  
       </fileset>  
       <filterchain>  
         <!--  
          # These two filters try to make the source look like  
          # something that doccheck can process. The first removes  
          # -source 1.4 assertions and the second adds in a bunch  
          # of single letter public nested marker interfaces so that  
          # the generic type parameters are recognized.  
          -->  
   
         <filterreader classname="jsr166.ant.filters.ReplaceFilter"  
                       classpath="${build.ant.dir}">  
           <param name="matching"    value="^\s*assert[\s ].*$"/>  
           <param name="pattern"     value="assert"/>  
           <param name="replacement" value="//assert"/>  
         </filterreader>  
   
         <filterreader classname="jsr166.ant.filters.ReplaceFilter"  
                       classpath="${build.ant.dir}">  
           <param name="matching"    value="^([^*]*(class|interface|implements) .*|)\{.*$"/>  
           <param name="pattern"     value="$"/>  
           <param name="replacement" value=" ${generic.declarations}"/>  
         </filterreader>  
   
       </filterchain>  
     </copy>  
   
   </target>  
596    
597    
598    <target name="compile-tests"    <target name="loops" depends="configure-compiler"
599            depends="jar">            description="Benchmark from Doug Lea's AQS paper">
600    
601      <mkdir dir="${build.testcases.dir}"/>      <mkdir dir="${build.loops.dir}"/>
602    
603      <javac srcdir="${tck.src.dir}"      <javac srcdir="${loops.src.dir}"
604            destdir="${build.testcases.dir}"            destdir="${build.loops.dir}"
605              debug="${build.debug}"              debug="${build.debug}"
606         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
607        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
608             source="${build.sourcelevel}"             source="${build.sourcelevel}"
609               target="${build.sourcelevel}"
610               fork="true">               fork="true">
611    
       <compilerarg value="${bootclasspath.args}"/>  
612        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
613          <classpath refid="loops.classpath"/>
614        <classpath refid="test.classpath"/>        <compilerarg value="-XDignore.symbol.file=true"/>
615    
616      </javac>      </javac>
617    
618      <javac srcdir="${test.src.dir}"      <java classname="ALoops" fork="true">
619            destdir="${build.testcases.dir}"        <classpath refid="loops.classpath"/>
620              debug="${build.debug}"      </java>
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
621    
622        <include name="jsr166/test/**"/>    </target>
623    
       <compilerarg value="${bootclasspath.args}"/>  
       <compilerarg line="${build.args}"/>  
624    
625        <classpath refid="test.classpath"/>    <target name="compile-test-loops" depends="jar"
626              description="compile all the perf tests in src/test/loops">
627    
628      </javac>      <mkdir dir="${build.dir}/test/loops"/>
629    
630  <!--      <javac srcdir="${basedir}/src/test/loops"
631      <javac srcdir="${jtreg.src.dir}"             destdir="${build.dir}/test/loops"
           destdir="${build.testcases.dir}"  
632              debug="${build.debug}"              debug="${build.debug}"
633         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
634        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
635             source="${build.sourcelevel}"             includeAntRuntime="false"
636               includeJavaRuntime="false"
637               executable="${javac9}"
638               fork="true">               fork="true">
639    
640        <compilerarg value="${bootclasspath.args}"/>        <include name="*.java"/>
641          <compilerarg value="-XDignore.symbol.file=true"/>
642          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
643          <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
644        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
645    
       <classpath refid="test.classpath"/>  
   
646      </javac>      </javac>
 -->  
647    
648    </target>    </target>
649    
650    
651    <target name="run-tests"    <!-- jsr166 4jdk7 -->
           depends="compile-tests">  
652    
653      <!-- May be overridden by user.properties -->    <target name="4jdk7compile"
654      <property name="testcase" value="*"/>            depends="configure-compiler"
655              description="Compiles src/jdk7 sources, targeting jdk7">
656    
657      <mkdir dir="${build.reports.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
658    
659      <junit printsummary="true"      <javac srcdir="${4jdk7src.dir}"
660               showoutput="true"             destdir="${build.4jdk7.classes.dir}"
661            errorProperty="junit.failed"             debug="${build.debug}"
662          failureProperty="junit.failed"             debuglevel="${build.debuglevel}"
663                      dir="${build.reports.dir}"             deprecation="${build.deprecation}"
664               source="6"
665               target="6"
666               classpath=""
667               bootclasspath="${bootclasspath6}"
668               includeAntRuntime="false"
669               includeJavaRuntime="false"
670               executable="${javac7}"
671                     fork="true">                     fork="true">
672    
673        <jvmarg value="${bootclasspath.args}"/>        <include name="**/*.java"/>
674        <jvmarg value="-server"/>        <compilerarg value="-Xprefer:source"/>
675        <jvmarg value="-showversion"/>        <compilerarg value="-XDignore.symbol.file=true"/>
676          <compilerarg value="-Xlint:all"/>
677        <classpath refid="test.classpath"/>        <compilerarg value="-Werror"/>
678          <compilerarg line="${build.args}"/>
       <formatter type="xml"/>  
   
       <batchtest todir="${build.reports.dir}" unless="no.test.tck">  
         <fileset dir="${tck.src.dir}">  
           <include name="**/${testcase}Test.java"/>  
         </fileset>  
       </batchtest>  
   
       <batchtest todir="${build.reports.dir}" if="do.test.old">  
         <fileset dir="${test.src.dir}">  
           <include name="jsr166/test/**/${testcase}Test.java"/>  
         </fileset>  
       </batchtest>  
   
 <!--  
       <batchtest todir="${build.reports.dir}" if="do.test.jtreg">  
         <fileset dir="${jtreg.src.dir}">  
           <include name="**/${testcase}Test.java"/>  
         </fileset>  
       </batchtest>  
 -->  
   
     </junit>  
679    
680        </javac>
681    </target>    </target>
682    
683      <target name="4jdk7doclint"
684              depends="configure-compiler"
685              description="Finds doclint warnings">
686    
687    <target name="report-tests"      <mkdir dir="${build.4jdk7.classes.dir}"/>
           depends="run-tests">  
688    
689      <!-- Sets junit.report.format to frames if redirection is present,      <javac srcdir="${4jdk7src.dir}"
690           otherwise sets it to noframes. -->             destdir="${build.4jdk7.classes.dir}"
691      <available property="junit.report.format"             debug="${build.debug}"
692                    value="frames"             debuglevel="${build.debuglevel}"
693                classname="org.apache.xalan.lib.Redirect"             deprecation="${build.deprecation}"
694      />             source="6"
695      <property name="junit.report.format" value="noframes"/>             target="6"
696               classpath=""
697      <junitreport todir="${build.reports.dir}">             bootclasspath="${bootclasspath6}"
698        <fileset dir="${build.reports.dir}">             includeAntRuntime="false"
699          <include name="TEST-*.xml"/>             includeJavaRuntime="false"
700        </fileset>             executable="${javac8}"
701        <report styledir="${stylesheet.dir}"             fork="true">
                 format="${junit.report.format}"  
                  todir="${build.reports.dir}"  
       />  
     </junitreport>  
702    
703      <fail message="Test Cases Failed" if="junit.failed"/>        <include name="**/*.java"/>
704          <compilerarg value="-Xprefer:source"/>
705          <compilerarg value="-XDignore.symbol.file=true"/>
706          <compilerarg value="-Xlint:all"/>
707          <compilerarg value="-Xdoclint:all/protected"/>
708          <compilerarg line="${build.args}"/>
709    
710        </javac>
711    </target>    </target>
712    
713    
714    <target name="configure-compiler">    <target name="4jdk7jar"
715              depends="4jdk7compile"
716      <property name="unchecked.option" value="-Xlint:unchecked"/>            description="Builds library jar from compiled sources">
   
     <condition property="warnunchecked.arg" value="${unchecked.option}">  
       <istrue value="${build.warnunchecked}"/>  
     </condition>  
717    
718      <property name="warnunchecked.arg" value=""/>      <jar destfile="${4jdk7product.jar}">
719          <fileset dir="${build.4jdk7.classes.dir}"/>
720          <manifest>
721            <attribute name="Built-By" value="${user.name}"/>
722            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
723          </manifest>
724        </jar>
725    
726      </target>
727    
     <!-- Common options in javac invocations -->  
     <property name="build.args" value="${warnunchecked.arg}"/>  
728    
729      <target name="4jdk7-tck"
730              depends="4jdk7jar"
731              description="Runs tck tests for jsr166-4jdk7 directly">
732    
733        <run-tck-tests
734          target="7"
735          workdir="${build.4jdk7.dir}"
736          classes="${4jdk7product.jar}">
737          <javac-elements>
738            <!-- JDK8+ test classes -->
739            <exclude name="*8Test.java"/>
740            <exclude name="*9Test.java"/>
741            <exclude name="*10Test.java"/>
742            <exclude name="DoubleAccumulatorTest.java"/>
743            <exclude name="DoubleAdderTest.java"/>
744            <exclude name="LongAccumulatorTest.java"/>
745            <exclude name="LongAdderTest.java"/>
746            <exclude name="CompletableFutureTest.java"/>
747            <exclude name="SplittableRandomTest.java"/>
748            <exclude name="StampedLockTest.java"/>
749            <exclude name="SubmissionPublisherTest.java"/>
750          </javac-elements>
751        </run-tck-tests>
752    </target>    </target>
753    
754    
755    <target name="configure-tests"    <target name="4jdk7-tck-junit"
756         depends="configure-compiler">            depends="4jdk7compile"
757              description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">
758    
759      <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->      <junit printsummary="true"
760      <available property="junit.available"             showoutput="true"
761                 classname="junit.framework.Protectable"/>             errorProperty="junit.failed"
762               failureProperty="junit.failed"
763               includeantruntime="true"
764               jvm="${java7}"
765               fork="true">
766    
767      <!-- Xalan -->        <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
768      <available property="xalan.available"        <jvmarg value="-server"/>
                classname="org.apache.xalan.Version"/>  
769    
770          <classpath>
771            <pathelement location="${junit.jar}"/>
772            <pathelement location="${build.4jdk7.tck.classes.dir}"/>
773          </classpath>
774    
775      <!-- Ant 1.6beta and later don't need or want this check -->        <formatter type="brief"/>
     <!--  
     <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests"  
           unless="junit.available"/>  
776    
777      <fail message="Need Xalan 2.5.1 jar in ${ant.home}${file.separator}lib to run tests"        <test name="${jsr166.tckTestClass}" haltonfailure="no">
778            unless="xalan.available"/>        </test>
     -->  
779    
780        </junit>
781    </target>    </target>
782    
783      <target name="4jdk7-jtreg"
784              depends="4jdk7jar"
785    <!-- Anthill targets -->            description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">
786        <run-jtreg-tests
787    <target name="anthill-build">         target="7"
788           workdir="${build.4jdk7.dir}"
789      <!-- Override this in user.properties -->         classes="${4jdk7product.jar}"/>
     <property name="tiger.home" location="e:/j2sdk1.5.0"/>  
   
     <exec resultproperty="result.property" dir="${basedir}" executable="${tiger.home}/bin/java">  
       <arg value="-Xmx256000000"/>  
       <!-- classpath of new JVM -->  
       <arg value="-classpath"/> <arg path="${java.class.path}"/>  
       <!-- location of Ant home directory -->  
       <arg value="-Dant.home=${ant.home}"/>  
       <!-- the Ant main class -->  
       <arg value="org.apache.tools.ant.Main"/>  
       <!-- The build file -->  
       <arg value="-buildfile"/>  <arg value="build.xml"/>  
       <!-- the target to build on the new Ant instance -->  
       <arg value="-DJAVA_HOME=${tiger.home}"/>  
       <arg value="do-anthill-build"/>  
     </exec>  
790    </target>    </target>
791    
   <target name="do-anthill-build"  
           depends="jar, test, docs, dist-docs"/>  
792    
793    <target name="anthill-publish">    <target name="4jdk7-test"
794              depends="4jdk7-tck, 4jdk7-jtreg"
795      <copy todir="${deployDir}/docs/private">            description="Runs tck and jtreg tests for jsr166-4jdk7">
796        <fileset dir="${build.javadocs.dir}"/>    </target>
     </copy>  
797    
     <copy todir="${deployDir}/docs/public">  
       <fileset dir="${dist.javadocs.dir}"/>  
     </copy>  
798    
799      <copy tofile="${deployDir}/index.html"    <target name="4jdk7docs"
800            file="${basedir}/etc/anthill-index.html"/>            description="Builds javadocs for src/jdk7 to dist dir">
801    
802      <copy todir="${deployDir}/notes">      <delete dir="${4jdk7docs.dir}"/>
803        <fileset dir="${basedir}/etc/notes"/>      <mkdir dir="${4jdk7docs.dir}"/>
     </copy>  
804    
805        <javadoc destdir="${4jdk7docs.dir}"
806                 packagenames="none"
807                 link="${java7.api.url}"
808                 overview="${4jdk7src.dir}/intro.html"
809                 access="${build.javadoc.access}"
810                 sourcepath="${4jdk7src.dir}:${jdk7src.dir}"
811                 classpath=""
812                 executable="${javadoc7}">
813          <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
814            <include name="**/*.java"/>
815          </fileset>
816          <arg line="-Xdocrootparent ${java7.docroot.url}"/>
817          <arg value="-XDignore.symbol.file=true"/>
818        </javadoc>
819    </target>    </target>
820    
821    
822      <target name="4jdk7dist"
823              depends="4jdk7dist-jar, 4jdk7dist-docs"
824              description="Puts all distributable products in single hierarchy"/>
825    
   <!-- Various demos and test programs -->  
   
   
   <target name="sample" depends="init, configure-compiler"  
           description="Standalone demo program">  
826    
827      <mkdir dir="${build.testcases.dir}"/>    <target name="4jdk7clean"
828              description="Removes all 4jdk7 build products">
829    
830      <javac srcdir="${test.src.dir}"      <delete dir="${build.4jdk7.dir}"/>
           destdir="${build.testcases.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
831    
832        <include name="jsr166/test/Sample.java"/>    </target>
833    
     </javac>  
834    
835      <copy todir="${build.testcases.dir}">    <target name="4jdk7dist-jar"
836        <fileset dir="${test.src.dir}">            depends="4jdk7clean, 4jdk7jar">
837          <include name="**/*.properties"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
838        </fileset>    </target>
     </copy>  
839    
840    
841      <java classname="jsr166.test.Sample" fork="true">    <target name="4jdk7dist-docs"
842        <classpath refid="test.classpath"/>            depends="4jdk7clean, 4jdk7docs">
843        <!-- <jvmarg value="-ea"/> -->      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
       <!-- <jvmarg value="-server"/> -->  
       <!-- <arg value="1000"/> -->  
     </java>  
844    </target>    </target>
845    
846    
847    <target name="loops" depends="init, configure-compiler"    <!-- jsr166x -->
           description="Benchmark from Doug Lea's AQS paper">  
848    
849      <mkdir dir="${build.loops.dir}"/>    <target name="jsr166xcompile"
850              depends="configure-compiler"
851              description="Compiles jsr166x sources to build dir">
852    
853      <javac srcdir="${loops.src.dir}"      <mkdir dir="${build.jsr166x.classes.dir}"/>
854            destdir="${build.loops.dir}"  
855        <javac srcdir="${topsrc.dir}"
856               destdir="${build.jsr166x.classes.dir}"
857              debug="${build.debug}"              debug="${build.debug}"
858         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
859        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
860             source="${build.sourcelevel}"             classpath=""
861               bootclasspath="${bootclasspath6}"
862               source="5"
863               target="5"
864               includeAntRuntime="false"
865               includeJavaRuntime="false"
866               executable="${javac7}"
867               fork="true">               fork="true">
868    
869          <include name="jsr166x/**/*.java"/>
870          <compilerarg value="-XDignore.symbol.file=true"/>
871          <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
872          <compilerarg value="-Werror"/>
873        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
       <classpath refid="loops.classpath"/>  
874    
875      </javac>      </javac>
   
     <java classname="ALoops" fork="true">  
       <classpath refid="loops.classpath"/>  
     </java>  
   
876    </target>    </target>
877    
878    
879    <target name="compile-j1" depends="init, configure-compiler, compile">    <target name="jsr166xjar"
880              depends="jsr166xcompile"
881      <mkdir dir="${build.j1.dir}"/>            description="Builds library jar from compiled sources">
   
     <javac srcdir="${j1.src.dir}"  
           destdir="${build.j1.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}" >  
   
       <include name="**/*.java"/>  
       <exclude name="**/dijkstra/**"/>  
   
       <compilerarg line="${build.args}"/>  
       <classpath refid="j1.classpath"/>  
882    
883      </javac>      <jar destfile="${jsr166x.jar}">
884          <fileset dir="${build.jsr166x.classes.dir}"/>
885          <manifest>
886            <attribute name="Built-By" value="${user.name}"/>
887            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
888          </manifest>
889        </jar>
890    
891    </target>    </target>
892    
893    
894    <target name="sw" depends="compile-j1"    <target name="jsr166xdocs"
895            description="Runs the SwingWorker demo">            description="Builds javadocs to dist dir">
   
     <!--  
     <java classname="jsr166.swing.SwingWorkerDemo" fork="true">  
       <classpath refid="j1.classpath"/>  
     </java>  
     -->  
896    
897      <copy todir="${build.j1.dir}" file="${j1.src.dir}/jsr166/swing/SwingWorker.html"/>      <delete dir="${jsr166xdocs.dir}"/>
898        <mkdir dir="${jsr166xdocs.dir}"/>
899    
900      <exec dir="${build.j1.dir}" executable="appletviewer.exe">      <javadoc destdir="${jsr166xdocs.dir}"
901        <arg value="${build.j1.dir}/SwingWorker.html"/>               packagenames="jsr166x.*"
902      </exec>               link="${java.api.url}"
903                 access="${build.javadoc.access}"
904                 sourcepath="${topsrc.dir}:${jdk6src.dir}"
905                 bootclasspath="${bootclasspath6}"
906                 source="5"
907                 executable="${javadoc7}">
908          <arg line="-Xdocrootparent ${java.docroot.url}"/>
909          <arg value="-XDignore.symbol.file=true"/>
910    
911        </javadoc>
912    </target>    </target>
913    
   <target name="j1" depends="compile-j1"  
           description="Runs a standalone JavaOne program">  
914    
915      <java classname="${j1.test}" fork="true">    <target name="jsr166xdist"
916        <classpath refid="j1.classpath"/>            depends="jsr166xdist-jar, jsr166xdist-docs"
917        <jvmarg value="-client"/>            description="Puts all distributable products in single hierarchy"/>
918    
       <!-- TestPseudoRandom args -->  
       <arg value="2"/>  
       <arg value="25"/>  
       <arg value="100000"/>  
919    
920        <!-- WebCrawler args -->    <target name="jsr166xclean"
921        <!--            description="Removes all jsr166x build products">
       <arg value="jsr166.webcrawler.WebCrawler3"/>  
       <arg value="http://www.priorartisans.com"/>  
       <arg value="25"/>  
       -->  
922    
923      </java>      <delete dir="${build.jsr166x.dir}"/>
924    
925    </target>    </target>
926    
927    
928    <target name="test-j1" depends="compile-j1"    <target name="jsr166xdist-jar"
929            description="Runs testcases from the JavaOne source directories">            depends="jsr166xclean, jsr166xjar">
930        <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
     <junit printsummary="true"  
              showoutput="true"  
           errorProperty="junit.failed"  
         failureProperty="junit.failed"  
                     dir="${build.j1.dir}"  
                    fork="true">  
   
       <!-- <jvmarg value="-server"/> -->  
       <classpath refid="j1.classpath"/>  
       <formatter type="xml"/>  
   
       <batchtest todir="${build.j1.dir}">  
         <fileset dir="${j1.src.dir}">  
           <include name="**/*Test.java"/>  
         </fileset>  
       </batchtest>  
   
     </junit>  
   
     <available property="junit.report.format"  
                   value="frames"  
               classname="org.apache.xalan.lib.Redirect"/>  
     <property name="junit.report.format" value="noframes"/>  
   
     <junitreport todir="${build.j1.dir}">  
       <fileset dir="${build.j1.dir}">  
         <include name="TEST-*.xml"/>  
       </fileset>  
       <report styledir="${stylesheet.dir}"  
                 format="${junit.report.format}"  
                  todir="${build.j1.dir}"  
       />  
     </junitreport>  
   
     <fail message="Test Cases Failed" if="junit.failed"/>  
   
931    </target>    </target>
932    
933      <target name="jsr166xdist-docs"
934              depends="jsr166xclean, jsr166xdocs">
935    <!-- C++ and JNI definitions and demos -->      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
   
   <target name="configure-cpp">  
   
     <!-- Define tasks and types -->  
   
     <path id="cpptasks.path">  
       <pathelement location="${lib.dir}/cpptasks.jar"/>  
     </path>  
     <taskdef resource="cpptasks.tasks" classpathref="cpptasks.path"/>  
     <typedef resource="cpptasks.types" classpathref="cpptasks.path"/>  
   
     <!-- Set platform property for JNI includes -->  
   
     <condition property="platform" value="linux">  
       <os name="Linux"/>  
     </condition>  
     <condition property="platform" value="win32">  
       <os family="windows"/>  
     </condition>  
     <condition property="platform" value="solaris">  
       <os name="SunOS"/>  
     </condition>  
   
936    </target>    </target>
937    
938      <!-- jsr166y -->
   <target name="cppdemo" depends="configure-cpp">  
   
     <mkdir dir="${build.dir}"/>  
   
     <cc multithreaded="true"  
                  name="g++"  
                objdir="${build.dir}"  
               outfile="${build.dir}/CppDemo">  
       <fileset dir="${test.src.dir}" includes="CppDemo.cpp"/>  
       <libset libs="stdc++"/>  
     </cc>  
   
     <exec executable="${build.dir}/CppDemo">  
       <arg line="count in word frequency of word in command line count"/>  
     </exec>  
   
   </target>  
939    
940    
941    <target name="jnidemo" depends="init, configure-compiler, configure-cpp">    <target name="jsr166ycompile"
942              depends="configure-compiler"
943              description="Compiles jsr166y sources">
944    
945      <mkdir dir="${build.testcases.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
946    
947      <javac srcdir="${test.src.dir}"      <javac srcdir="${topsrc.dir}"
948            destdir="${build.testcases.dir}"             destdir="${build.jsr166y.classes.dir}"
949              debug="${build.debug}"              debug="${build.debug}"
950         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
951        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
952             source="${build.sourcelevel}"             source="6"
953               target="6"
954               classpath=""
955               bootclasspath="${bootclasspath6}"
956               includeAntRuntime="false"
957               includeJavaRuntime="false"
958               executable="${javac7}"
959               fork="true">               fork="true">
       <compilerarg value="${bootclasspath.args}"/>  
       <compilerarg line="${build.args}"/>  
       <classpath refid="test.classpath"/>  
       <include name="JniDemo.java"/>  
     </javac>  
960    
961      <javah destdir="${build.testcases.dir}"        <include name="jsr166y/**/*.java"/>
962        classpathref="test.classpath">        <compilerarg value="-XDignore.symbol.file=true"/>
963        <class name="JniDemo"/>        <compilerarg value="-Xlint:all"/>
964      </javah>        <compilerarg value="-Werror"/>
965          <compilerarg line="${build.args}"/>
     <cc multithreaded="true"  
                  name="g++"  
                objdir="${build.dir}"  
               outfile="${build.dir}/JniDemo"  
               outtype="shared">  
   
       <compiler>  
         <defineset>  
           <define name="__int64" value="long long"/>  
         </defineset>  
         <includepath location="${java.home}/../include"/>  
         <includepath location="${java.home}/../include/${platform}"/>  
         <compilerarg value="-mno-cygwin"/>  
       </compiler>  
   
       <linker>  
         <linkerarg value="--add-stdcall-alias"/>  
       </linker>  
   
       <includepath location="${build.testcases.dir}"/>  
   
       <fileset dir="${test.src.dir}" includes="JniDemo.cpp"/>  
   
       <libset libs="stdc++"/>  
   
     </cc>  
   
     <!-- Necessary if windows, harmless if not -->  
     <copy file="${build.dir}/libJniDemo.so" tofile="${build.dir}/JniDemo.dll"/>  
   
     <java classname="JniDemo" fork="true">  
       <!-- Watch out: path separator hardwired to semicolon here! -->  
       <sysproperty key="java.library.path" path="${java.library.path};${build.dir}"/>  
       <classpath refid="test.classpath"/>  
       <arg line="count in word frequency of word in command line count"/>  
     </java>  
966    
967        </javac>
968    </target>    </target>
969    
970    
971      <target name="jsr166yjar"
972              depends="jsr166ycompile"
973              description="Builds library jar from compiled sources">
974    
975    <!-- Backward compatibility, work in progress (some files not checked in) -->      <jar destfile="${jsr166y.jar}" index="true">
976          <fileset dir="${build.jsr166y.classes.dir}"/>
977          <manifest>
978            <attribute name="Built-By" value="${user.name}"/>
979            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
980          </manifest>
981        </jar>
982    
983      </target>
984    
   <property name="pretiger.src.dir"     location="${build.dir}/pretiger/src"/>  
   <property name="build.pretiger.dir"   location="${build.dir}/pretiger/classes"/>  
   <property name="pretiger.jar"         location="${build.lib.dir}/jsr166-pretiger.jar"/>  
   <property name="pretiger.sourcelevel" value="1.4"/>  
985    
986    <target name="defang"    <target name="jsr166ydocs"
987         depends="init"            description="Builds javadocs to dist dir">
    description="Generates pre-Tiger compatible source">  
988    
989      <delete dir="${pretiger.src.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
990      <mkdir dir="${pretiger.src.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
991    
992      <exec executable="perl">      <javadoc destdir="${jsr166ydocs.dir}"
993        <arg file="etc/defang.pl"/>               packagenames="jsr166y.*"
994        <!-- <arg value="-v"/> -->               link="${java.api.url}"
995        <arg value="-s"/> <arg file="${src.dir}"/>               access="${build.javadoc.access}"
996        <arg value="-t"/> <arg file="${pretiger.src.dir}"/>               sourcepath="${topsrc.dir}:${jdk6src.dir}"
997      </exec>               bootclasspath="${bootclasspath6}"
998                 source="6"
999                 executable="${javadoc7}">
1000          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1001          <arg value="-XDignore.symbol.file=true"/>
1002    
1003        </javadoc>
1004    </target>    </target>
1005    
   <target name="compile-pretiger"  
           depends="init, configure-compiler, defang"  
           description="Compiles pre-Tiger sources to build folder">  
1006    
1007      <mkdir dir="${build.pretiger.dir}"/>    <target name="jsr166ydist"
1008              depends="jsr166ydist-jar, jsr166ydist-docs"
1009              description="Puts all distributable products in single hierarchy"/>
1010    
     <javac srcdir="${pretiger.src.dir}"  
           destdir="${build.pretiger.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${pretiger.sourcelevel}"  
              fork="true">  
1011    
1012        <compilerarg line="${build.args}"/>    <target name="jsr166yclean"
1013        <exclude name="**/Thread.java"/>            description="Removes all jsr166y build products">
1014    
1015      </javac>      <delete dir="${build.jsr166y.dir}"/>
1016    
1017    </target>    </target>
1018    
   <target name="pretiger" depends="compile-pretiger">  
   
     <mkdir dir="${build.lib.dir}"/>  
1019    
1020      <jar destfile="${pretiger.jar}">    <target name="jsr166ydist-jar"
1021        <fileset dir="${build.pretiger.dir}">            depends="jsr166yclean, jsr166yjar">
1022        </fileset>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1023      </jar>    </target>
1024    
1025      <target name="jsr166ydist-docs"
1026              depends="jsr166yclean, jsr166ydocs">
1027        <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1028    </target>    </target>
1029    
   <!-- jsr166x -->  
1030    
1031      <!-- extra166y -->
1032    
   <target name="jsr166xcompile"  
           depends="init, configure-compiler"  
           description="Compiles jsr166x sources">  
1033    
1034      <mkdir dir="${build.jsr166x.dir}"/>    <target name="extra166ycompile"
1035              depends="configure-compiler, jsr166yjar"
1036              description="Compiles extra166y sources">
1037    
1038      <javac srcdir="${jsr166xsrc.dir}"      <mkdir dir="${build.extra166y.classes.dir}"/>
1039            destdir="${build.jsr166x.dir}"  
1040        <javac srcdir="${topsrc.dir}"
1041               destdir="${build.extra166y.classes.dir}"
1042              debug="${build.debug}"              debug="${build.debug}"
1043         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
1044        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
1045             source="${build.sourcelevel}"             bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
1046               classpath=""
1047               source="6"
1048               target="6"
1049               includeAntRuntime="false"
1050               includeJavaRuntime="false"
1051               executable="${javac7}"
1052               fork="true">               fork="true">
1053    
1054        <include name="**/*.java"/>        <include name="extra166y/**/*.java"/>
1055          <compilerarg value="-XDignore.symbol.file=true"/>
1056          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1057          <compilerarg value="-Werror"/>
1058        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
1059    
1060      </javac>      </javac>
   
1061    </target>    </target>
1062    
1063    
1064      <target name="extra166yjar"
1065    <target name="jsr166xjar"            depends="extra166ycompile"
           depends="jsr166xcompile"  
1066            description="Builds library jar from compiled sources">            description="Builds library jar from compiled sources">
1067    
1068      <mkdir dir="${build.jsr166xlib.dir}"/>      <jar destfile="${extra166y.jar}" index="true">
1069          <fileset dir="${build.extra166y.classes.dir}"/>
1070      <jar destfile="${jsr166xproduct.jar}">        <manifest>
1071        <fileset dir="${build.jsr166x.dir}"/>          <attribute name="Built-By" value="${user.name}"/>
1072            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1073          </manifest>
1074      </jar>      </jar>
1075    
1076    </target>    </target>
1077    
1078    
1079      <target name="extra166ydocs"
1080              description="Builds javadocs to build dir">
1081    
1082    <target name="jsr166xdocs"      <delete dir="${extra166ydocs.dir}"/>
1083            description="Builds javadocs with custom tags to build folder">      <mkdir dir="${extra166ydocs.dir}"/>
   
     <delete dir="${build.jsr166xjavadocs.dir}"/>  
     <mkdir dir="${build.jsr166xjavadocs.dir}"/>  
   
     <javadoc destdir="${build.jsr166xjavadocs.dir}"  
              link="http://java.sun.com/javase/6/docs/api/"  
   
             sourcepath="${jsr166xsrc.dir}:/home/dl/1.5.0/j2se/martin/j2se/src/share/classes"  
   
     >  
       <packageset dir="${topsrc.dir}" defaultexcludes="yes">  
       <include name="jsr166x"/>  
       </packageset>  
1084    
1085        <javadoc destdir="${extra166ydocs.dir}"
1086                 packagenames="extra166y.*"
1087                 link="${java.api.url}"
1088                 access="${build.javadoc.access}"
1089                 sourcepath="${topsrc.dir}:${jdk6src.dir}"
1090                 bootclasspath="${bootclasspath6}"
1091                 source="6"
1092                 executable="${javadoc7}">
1093          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1094          <arg value="-XDignore.symbol.file=true"/>
1095    
1096      </javadoc>      </javadoc>
   
1097    </target>    </target>
1098    
1099    
1100    <target name="jsr166xdist"    <target name="extra166ydist"
1101            depends="jsr166xdist-clean, jsr166xdist-jar, jsr166xdist-docs"            depends="extra166ydist-jar, extra166ydist-docs"
1102            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
1103    
1104    
1105      <target name="extra166yclean"
1106              description="Removes all extra166y build products">
1107    
1108    <target name="jsr166xclean"      <delete dir="${build.extra166y.dir}"/>
           description="Removes all build products">  
   
     <delete dir="${build.jsr166x.dir}"/>  
     <delete dir="${build.jsr166xlib.dir}"/>  
1109    
1110    </target>    </target>
1111    
1112    
1113      <target name="extra166ydist-jar"
1114    <target name="jsr166xdist-clean"            depends="extra166yclean, extra166yjar">
1115            description="Removes all build and distribution products">      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
   
1116    </target>    </target>
1117    
1118      <target name="extra166ydist-docs"
1119              depends="extra166yclean, extra166ydocs">
1120        <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1121      </target>
1122    
1123      <!-- jsr166e -->
1124    
1125    <target name="jsr166xdist-docs"    <property name="build.jsr166e.java.version" value="6"/>
1126            description="Builds javadocs without custom tags to dist folder">    <property name="build.jsr166e.javac" value="${javac6}"/>
   
     <delete dir="${dist.jsr166xjavadocs.dir}"/>  
     <mkdir dir="${dist.jsr166xjavadocs.dir}"/>  
1127    
1128      <javadoc destdir="${dist.jsr166xjavadocs.dir}"    <target name="jsr166ecompile"
1129                  link="http://java.sun.com/javase/6/docs/api/"            depends="configure-compiler"
1130                source="${build.sourcelevel}">            description="Compiles jsr166e sources">
   
       <packageset dir="${topsrc.dir}" defaultexcludes="yes">  
       <include name="jsr166x"/>  
       </packageset>  
1131    
1132      </javadoc>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1133    
1134    </target>      <javac srcdir="${topsrc.dir}"
1135               destdir="${build.jsr166e.classes.dir}"
1136    <target name="jsr166xdist-jar"             debug="${build.debug}"
1137            depends="jsr166xclean, jsr166xjar">             debuglevel="${build.debuglevel}"
1138               deprecation="${build.deprecation}"
1139               source="${build.jsr166e.java.version}"
1140               target="${build.jsr166e.java.version}"
1141               classpath=""
1142               includeAntRuntime="false"
1143               includeJavaRuntime="false"
1144               executable="${build.jsr166e.javac}"
1145               fork="true">
1146    
1147      <copy file="${jsr166xproduct.jar}" todir="${dist.dir}"/>        <include name="jsr166e/**/*.java"/>
1148          <compilerarg value="-XDignore.symbol.file=true"/>
1149          <compilerarg value="-Xlint:all"/>
1150          <compilerarg value="-Werror"/>
1151          <compilerarg line="${build.args}"/>
1152    
1153        </javac>
1154    </target>    </target>
1155    
1156    <!-- jsr166y -->    <!-- jsr166e: find doclint errors -->
1157      <target name="jsr166edoclint">
1158    
1159    <target name="jsr166ycompile"      <mkdir dir="${build.jsr166e.classes.dir}"/>
           depends="init, configure-compiler"  
           description="Compiles jsr166y sources">  
1160    
1161      <mkdir dir="${build.jsr166y.dir}"/>      <javac srcdir="${topsrc.dir}"
1162               destdir="${build.jsr166e.classes.dir}"
     <javac srcdir="${jsr166ysrc.dir}"  
           destdir="${build.jsr166y.dir}"  
1163              debug="${build.debug}"              debug="${build.debug}"
1164         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
1165        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
1166             source="${build.sourcelevel}"             source="${build.jsr166e.java.version}"
1167               target="${build.jsr166e.java.version}"
1168               classpath=""
1169               bootclasspath="${bootclasspath6}"
1170               includeAntRuntime="false"
1171               includeJavaRuntime="false"
1172               executable="${javac8}"
1173               fork="true">               fork="true">
1174    
1175        <include name="**/*.java"/>        <include name="jsr166e/**/*.java"/>
1176        <compilerarg line="${build.args}"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1177        <compilerarg value="${bootclasspath.args}"/>        <compilerarg value="-Xlint:all"/>
1178          <compilerarg value="-Werror"/>
1179  <!--       <compilerarg line="-Xlint -Xmaxwarns 1000"/> -->        <compilerarg value="-Xdoclint:all/protected"/>
1180    
1181      </javac>      </javac>
   
1182    </target>    </target>
1183    
1184    
1185      <target name="jsr166ejar"
1186    <target name="jsr166yjar"            depends="jsr166ecompile"
           depends="jsr166ycompile"  
1187            description="Builds library jar from compiled sources">            description="Builds library jar from compiled sources">
1188    
1189      <mkdir dir="${build.jsr166ylib.dir}"/>      <jar destfile="${jsr166e.jar}" index="true">
1190          <fileset dir="${build.jsr166e.classes.dir}"/>
1191      <jar destfile="${jsr166yproduct.jar}">        <manifest>
1192        <fileset dir="${build.jsr166y.dir}"/>          <attribute name="Built-By" value="${user.name}"/>
1193            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1194          </manifest>
1195      </jar>      </jar>
1196    
1197    </target>    </target>
1198    
1199    
1200      <target name="jsr166edocs"
1201              description="Builds javadocs to build dir">
1202    
1203    <target name="jsr166ydocs"      <delete dir="${jsr166edocs.dir}"/>
1204            description="Builds javadocs with custom tags to build folder">      <mkdir dir="${jsr166edocs.dir}"/>
   
     <delete dir="${build.jsr166yjavadocs.dir}"/>  
     <mkdir dir="${build.jsr166yjavadocs.dir}"/>  
   
     <javadoc destdir="${build.jsr166yjavadocs.dir}"  
                 link="http://java.sun.com/javase/6/docs/api/"  
             sourcepath="${jsr166ysrc.dir}:/home/dl/1.5.0/j2se/martin/j2se/src/share/classes"  
   
     >  
       <packageset dir="${topsrc.dir}" defaultexcludes="no">  
       <include name="jsr166y"/>  
       </packageset>  
1205    
1206        <javadoc destdir="${jsr166edocs.dir}"
1207                 packagenames="jsr166e.*"
1208                 link="${java.api.url}"
1209                 access="${build.javadoc.access}"
1210                 sourcepath="${topsrc.dir}:${jdk6src.dir}"
1211                 source="${build.jsr166e.java.version}"
1212                 executable="${javadoc7}">
1213          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1214          <arg value="-XDignore.symbol.file=true"/>
1215    
1216      </javadoc>      </javadoc>
   
1217    </target>    </target>
1218    
1219    
1220    <target name="jsr166ydist"    <target name="jsr166e-tck-one-java-version"
1221            depends="jsr166ydist-clean, jsr166ydist-jar, jsr166ydist-docs"            depends="jsr166ejar">
           description="Puts all distributable products in single hierarchy"/>  
1222    
1223        <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
1224    
1225        <run-tck-tests
1226          tck.src.dir="${test.src.dir}/tck-jsr166e"
1227          target="${build.jsr166e.java.version}"
1228          workdir="${build.jsr166e.dir}"
1229          classes="${jsr166e.jar}"/>
1230      </target>
1231    
1232    <target name="jsr166yclean"    <target name="jsr166e-tck"
1233            description="Removes all build products">            description="Runs tck tests for jsr166e for multiple java versions">
1234    
1235      <delete dir="${build.jsr166y.dir}"/>  <!--     <antcall target="clean"/> -->
1236      <delete dir="${build.jsr166ylib.dir}"/>  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
1237    <!--       <param name="build.jsr166e.java.version" value="8"/> -->
1238    <!--       <param name="build.jsr166e.javac" value="${javac8}"/> -->
1239    <!--     </antcall> -->
1240    
1241        <antcall target="clean"/>
1242        <antcall target="jsr166e-tck-one-java-version">
1243          <param name="build.jsr166e.java.version" value="7"/>
1244          <param name="build.jsr166e.javac" value="${javac7}"/>
1245        </antcall>
1246    
1247        <antcall target="clean"/>
1248        <antcall target="jsr166e-tck-one-java-version">
1249          <param name="build.jsr166e.java.version" value="6"/>
1250          <param name="build.jsr166e.javac" value="${javac6}"/>
1251        </antcall>
1252    </target>    </target>
1253    
1254    
1255      <target name="jsr166e-test"
1256              depends="jsr166e-tck"
1257              description="Runs all tests for jsr166e">
1258      </target>
1259    
1260      <target name="jsr166edist"
1261              depends="jsr166edist-jar, jsr166edist-docs"
1262              description="Puts all distributable products in single hierarchy"/>
1263    
   <target name="jsr166ydist-clean"  
           description="Removes all build and distribution products">  
1264    
1265      <target name="jsr166eclean"
1266              description="Removes all jsr166e build products">
1267        <delete dir="${build.jsr166e.dir}"/>
1268    </target>    </target>
1269    
   <target name="jsr166ydist-docs"  
           description="Builds javadocs without custom tags to dist folder">  
1270    
1271      <delete dir="${dist.jsr166yjavadocs.dir}"/>    <target name="jsr166edist-jar"
1272      <mkdir dir="${dist.jsr166yjavadocs.dir}"/>            depends="jsr166eclean, jsr166ejar">
1273        <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1274      <javadoc destdir="${dist.jsr166yjavadocs.dir}"    </target>
                 link="http://java.sun.com/javase/6/docs/api/"  
               source="${build.sourcelevel}">  
       <fileset dir="${topsrc.dir}" defaultexcludes="yes">  
       <include name="jsr166y/*.java"/>  
       <include name="jsr166y/forkjoin/*.java"/>  
             </fileset>  
     </javadoc>  
1275    
1276      <target name="jsr166edist-docs"
1277              depends="jsr166eclean, jsr166edocs">
1278        <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1279    </target>    </target>
1280    
   <target name="jsr166ydist-jar"  
           depends="jsr166yclean, jsr166yjar">  
1281    
1282      <copy file="${jsr166yproduct.jar}" todir="${dist.dir}"/>  <!-- Find buglets that can be detected by static build tools -->
1283    
1284      <target name="lint">
1285        <antcall target="dists">
1286          <param name="build.javadoc.access" value="public"/>
1287        </antcall>
1288    </target>    </target>
1289    
1290    <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1291      <target name="lint-private">
1292        <antcall target="dist">
1293          <param name="build.javadoc.access" value="private"/>
1294        </antcall>
1295      </target>
1296    
1297    
1298  </project>  </project>

Legend:
Removed from v.1.74  
changed lines
  Added in v.1.197

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8