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

Diff of /jsr166/build.xml

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

revision 1.73 by dl, Tue Nov 8 00:13:41 2005 UTC revision 1.198 by jsr166, Thu Mar 24 20:44:47 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"/>
64    <property name="build.j1.dir"         location="${build.dir}/j1"/>    <property name="build.loops.dir"             location="${build.dir}/loops"/>
65    <property name="build.loops.dir"      location="${build.dir}/loops"/>    <property name="build.reports.dir"           location="${build.dir}/reports"/>
66    <property name="build.lib.dir"        location="${build.dir}/lib"/>  
67    <property name="build.ant.dir"        location="${build.dir}/ant"/>    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
68    <property name="build.javadocs.dir"   location="${build.dir}/javadocs"/>    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>
69    <property name="build.reports.dir"    location="${build.dir}/reports"/>    <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/>
70    <property name="build.checkstyle.dir" location="${build.dir}/checkstyle"/>    <property name="build.4jdk7.docs.dir"        location="${build.4jdk7.dir}/docs"/>
71    <property name="build.doccheck.dir"   location="${build.dir}/doccheck"/>  
72    <property name="build.filter.src.dir" location="${build.dir}/filtersrc"/>    <property name="build.jsr166x.dir"           location="${build.dir}/jsr166x"/>
73    <property name="build.dc-filter.dir"  location="${build.dir}/filterdocchk"/>    <property name="build.jsr166y.dir"           location="${build.dir}/jsr166y"/>
74    <property name="build.jsr166x.dir"    location="${build.dir}/jsr166x"/>    <property name="build.jsr166e.dir"           location="${build.dir}/jsr166e"/>
75    <property name="build.jsr166xlib.dir"        location="${build.dir}/jsr166xlib"/>    <property name="build.extra166y.dir"         location="${build.dir}/extra166y"/>
76    <property name="build.jsr166xjavadocs.dir"   location="${build.dir}/jsr166xjavadocs"/>  
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="jsr166xsrc.dir"       location="${topsrc.dir}/jsr166x"/>
145    <!-- Distribution locations -->    <property name="jsr166ysrc.dir"       location="${topsrc.dir}/jsr166y"/>
146    <property name="dist.javadocs.dir"    location="${dist.dir}/docs"/>    <property name="jsr166esrc.dir"       location="${topsrc.dir}/jsr166e"/>
147    <property name="dist.jsr166xjavadocs.dir"    location="${dist.dir}/jsr166xdocs"/>    <property name="extra166ysrc.dir"     location="${topsrc.dir}/extra166y"/>
148    
149      <!-- 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="junit.jar"            location="${lib.dir}/junit.jar"/>    <property name="jsr166x.jar"      location="${build.jsr166x.dir}/jsr166x.jar"/>
168    <property name="concurrent.jar"       location="${lib.dir}/concurrent.jar"/>    <property name="jsr166y.jar"      location="${build.jsr166y.dir}/jsr166y.jar"/>
169      <property name="jsr166e.jar"      location="${build.jsr166e.dir}/jsr166e.jar"/>
170    <!-- Bootclasspath argument -->    <property name="extra166y.jar"    location="${build.extra166y.dir}/extra166y.jar"/>
171    <property name="bootclasspath.args"   value="-Xbootclasspath/p:${product.jar}"/>    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
172    
173    <!-- Test classpath -->    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
174    <path id="test.classpath">    <property name="java5.docroot.url"      value="http://docs.oracle.com/javase/1.5.0/docs"/>
175      <pathelement location="${build.testcases.dir}"/>    <property name="java6.docroot.url"      value="http://docs.oracle.com/javase/6/docs"/>
176      <pathelement location="${junit.jar}"/>    <property name="java7.docroot.url"      value="http://docs.oracle.com/javase/7/docs"/>
177    </path>    <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        <javac srcdir="@{tck.src.dir}"
225               destdir="@{workdir}/tck-classes"
226               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}"/>
264              <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               fork="true">             includeAntRuntime="false"
381               includeJavaRuntime="false"
382               executable="${build.main.javac}"
383               fork="true">
384    
385        <include name="**/*.java"/>        <include name="**/*.java"/>
386  <!--        <compilerarg value="-Xmodule:java.base" if:set="modules"/>
387        <exclude name="java/lang/**"/>        <compilerarg value="-Xprefer:source"/>
388          <compilerarg value="-XDignore.symbol.file=true"/>
389          <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}"/>  
418    
419      <javadoc destdir="${build.javadocs.dir}"      <delete dir="${docs.dir}"/>
420                  link="http://java.sun.com/j2se/1.5.0/docs/api"      <mkdir dir="${docs.dir}"/>
             overview="${src.dir}/intro.html"  
             sourcepath="${src.dir}:/home/dl/1.6.0/j2se/martin/j2se/src/share/classes"  
     >            
   
       <packageset dir="${src.dir}"/>  
   
     </javadoc>  
   
   </target>  
421    
422        <!-- the packagenames="none" hack below prevents scanning the -->
423        <!-- sourcepath for packages -->
424    
425        <javadoc destdir="${docs.dir}"
426    <target name="doccheck"               packagenames="none"
427            depends="filter-doccheck"               link="${java9.api.url}"
428            description="Reports on javadoc style errors">               overview="${src.dir}/intro.html"
429                 access="${build.javadoc.access}"
430      <delete dir="${build.doccheck.dir}"/>               sourcepath="${src.dir}:${jdk9src.dir}"
431      <mkdir dir="${build.doccheck.dir}"/>               classpath=""
432                 executable="${javadoc9}">
433      <javadoc doclet="com.sun.tools.doclets.doccheck.DocCheck"        <fileset dir="${src.dir}" defaultexcludes="yes">
434           docletpath="${lib.dir}/doccheck.jar"          <include name="**/*.java"/>
435              destdir="${build.doccheck.dir}">        </fileset>
436        <packageset dir="${build.dc-filter.dir}"/>        <arg line="-Xdocrootparent ${java9.docroot.url}"/>
437          <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    <!-- tags added in jdk9 -->
449          <arg value="-tag"/>
450          <arg value="revised:X"/>
451          <arg value="-tag"/>
452          <arg value="spec:X"/>
453      </javadoc>      </javadoc>
   
     <echo>DocCheck output is in ${build.doccheck.dir}</echo>  
   
454    </target>    </target>
455    
456    
   
   <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"/>  
   
   </target>  
   
   
   
457    <target name="dist"    <target name="dist"
458            depends="init, dist-clean, dist-jar, dist-docs"            depends="dist-clean, dist-jar, dist-docs"
459            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
460    
461    
   
462    <target name="release"    <target name="release"
463            depends="dist"            depends="dist"
464            description="Puts entire CVS tree, plus distribution productions, in a jar">            description="Puts entire CVS tree, plus distribution productions, in a jar">
# Line 225  Line 473 
473        <exclude name="src/emulation/**"/>        <exclude name="src/emulation/**"/>
474        <exclude name="**/SyntaxTest.java"/>        <exclude name="**/SyntaxTest.java"/>
475        <exclude name="**/SuperfluousAbstract.java"/>        <exclude name="**/SuperfluousAbstract.java"/>
476          <manifest>
477            <attribute name="Built-By" value="${user.name}"/>
478            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
479          </manifest>
480      </jar>      </jar>
   
481    </target>    </target>
482    
483    
   
484    <target name="clean"    <target name="clean"
485            description="Removes all build products">            description="Removes all build products">
486    
487      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
     <delete dir="${build.classes.dir}"/>  
     <delete dir="${build.lib.dir}"/>  
488    
489    </target>    </target>
490    
491    
   
492    <target name="dist-clean"    <target name="dist-clean"
493            description="Removes all build and distribution products">            description="Removes all build and distribution products">
494    
495        <delete dir="${build.dir}"/>
496      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
497    
498    </target>    </target>
499    
500    
501      <target name="dist-jar"
502              depends="clean, jar">
503        <copy file="${product.jar}" todir="${dist.dir}"/>
504      </target>
505    
506    <target name="dist-docs"    <target name="dist-docs"
507            description="Builds javadocs without custom tags to dist folder">            depends="clean, docs">
508        <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/j2se/1.5.0/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/*.java"/>  
       <include name="main/java/util/*.html"/>  
 <!--      <include name="jsr166x/*.java"/> -->  
       </fileset>  
     </javadoc>  
   
509    </target>    </target>
510    
511      <target name="tck"
512              depends="jar"
513              description="Runs tck tests for main directly">
514    
515        <run-tck-tests
516          target="${build.main.java.version}"
517          workdir="${build.dir}"
518          classes="${product.jar}"/>
519      </target>
520    
521    <!-- Internal targets -->    <target name="tck-parallelism-1"
522              description="Runs tck with given common pool parallelism">
523        <antcall target="tck">
524    <target name="init">        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
525        </antcall>
526      </target>
527    
528      <!-- Version is kept in a separate file -->    <target name="tck-parallelism-0"
529      <loadfile property="version" srcFile="version.properties"/>            description="Runs tck with given common pool parallelism">
530      <echo>Building JSR-166 version ${version}</echo>      <antcall target="tck">
531      <echo>java.home is ${java.home}</echo>        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
532        </antcall>
533      </target>
534    
535      <target name="jtreg"
536              depends="jar"
537              description="Runs jtreg tests for main using the jtreg ant task">
538        <run-jtreg-tests
539           target="${build.main.java.version}"
540           workdir="${build.dir}"
541           classes="${product.jar}"/>
542    </target>    </target>
543    
544      <target name="test"
545              depends="tck, tck-parallelism-1, jtreg"
546              description="Runs tck and jtreg tests for main">
547      </target>
548    
549    <target name="dist-jar"    <target name="jtreg8" description="Runs jtreg tests with jdk8">
           depends="clean, jar">  
550    
551      <copy file="${product.jar}" todir="${dist.dir}"/>      <antcall target="jtreg">
552          <param name="build.main.java.version" value="8"/>
553          <param name="build.main.javac" value="${javac8}"/>
554        </antcall>
555    
556    </target>    </target>
557    
558      <target name="test89"
559              description="Runs tck and jtreg tests for main for multiple java versions">
560    
561    <target name="compile-ant-filter"      <antcall target="clean"/>
562            depends="init">      <antcall target="test">
563          <param name="build.main.java.version" value="8"/>
564      <mkdir dir="${build.ant.dir}"/>        <param name="build.main.javac" value="${javac8}"/>
565        </antcall>
566    
567      <javac srcdir="${ant.src.dir}"      <antcall target="clean"/>
568            destdir="${build.ant.dir}"      <antcall target="test">
569             source="1.4"/>        <param name="build.main.java.version" value="9"/>
570          <param name="build.main.javac" value="${javac9}"/>
571        </antcall>
572    
573    </target>    </target>
574    
575    
   <target name="filter-src"  
           depends="compile-ant-filter">  
576    
577      <mkdir dir="${build.filter.src.dir}"/>    <target name="configure-compiler">
578        <fail message="ant version too old">
579      <copy todir="${build.filter.src.dir}">        <condition>
580        <fileset dir="${src.dir}">          <not> <antversion atleast="1.9.1"/> </not>
581          <include name="**/*.html"/>        </condition>
582        </fileset>      </fail>
     </copy>  
583    
584      <copy todir="${build.filter.src.dir}">      <property name="unchecked.option" value="-Xlint:unchecked"/>
       <fileset dir="${src.dir}">  
         <exclude name="**/*.html"/>  
         <!-- Files excluded from dist-docs -->  
         <exclude name="java/util/Random.*"/>  
         <exclude name="sun/misc/Unsafe.*"/>  
       </fileset>  
       <!--  
       <filterchain>  
       -->  
   
         <!--  
          # 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.)  
          -->  
   
         <!--  
         <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>  
         -->  
   
       <!--  
       </filterchain>  
       -->  
     </copy>  
585    
586    </target>      <condition property="warnunchecked.arg" value="${unchecked.option}">
587          <istrue value="${build.warnunchecked}"/>
588        </condition>
589    
590        <property name="warnunchecked.arg" value=""/>
591    
   <target name="filter-doccheck"  
           depends="filter-src">  
592    
593      <mkdir dir="${build.dc-filter.dir}"/>      <!-- Common options in javac invocations -->
594        <property name="build.args" value="${warnunchecked.arg}"/>
595    
596      <copy todir="${build.dc-filter.dir}">    </target>
       <fileset dir="${build.filter.src.dir}">  
         <include name="**/*.html"/>  
       </fileset>  
     </copy>  
597    
     <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>  
598    
       </filterchain>  
     </copy>  
599    
600    </target>    <!-- Various demos and test programs -->
601    
602    
603    <target name="compile-tests"    <target name="loops" depends="configure-compiler"
604            depends="jar">            description="Benchmark from Doug Lea's AQS paper">
605    
606      <mkdir dir="${build.testcases.dir}"/>      <mkdir dir="${build.loops.dir}"/>
607    
608      <javac srcdir="${tck.src.dir}"      <javac srcdir="${loops.src.dir}"
609            destdir="${build.testcases.dir}"            destdir="${build.loops.dir}"
610              debug="${build.debug}"              debug="${build.debug}"
611         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
612        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
613             source="${build.sourcelevel}"             source="${build.sourcelevel}"
614               target="${build.sourcelevel}"
615               fork="true">               fork="true">
616    
       <compilerarg value="${bootclasspath.args}"/>  
617        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
618          <classpath refid="loops.classpath"/>
619        <classpath refid="test.classpath"/>        <compilerarg value="-XDignore.symbol.file=true"/>
620    
621      </javac>      </javac>
622    
623      <javac srcdir="${test.src.dir}"      <java classname="ALoops" fork="true">
624            destdir="${build.testcases.dir}"        <classpath refid="loops.classpath"/>
625              debug="${build.debug}"      </java>
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
   
       <include name="jsr166/test/**"/>  
626    
627        <compilerarg value="${bootclasspath.args}"/>    </target>
       <compilerarg line="${build.args}"/>  
628    
       <classpath refid="test.classpath"/>  
629    
630      </javac>    <target name="compile-test-loops" depends="jar"
631              description="compile all the perf tests in src/test/loops">
632    
633  <!--      <mkdir dir="${build.dir}/test/loops"/>
     <javac srcdir="${jtreg.src.dir}"  
           destdir="${build.testcases.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
634    
635        <compilerarg value="${bootclasspath.args}"/>      <javac srcdir="${basedir}/src/test/loops"
636               destdir="${build.dir}/test/loops"
637               debug="${build.debug}"
638               debuglevel="${build.debuglevel}"
639               deprecation="${build.deprecation}"
640               includeAntRuntime="false"
641               includeJavaRuntime="false"
642               executable="${javac9}"
643               fork="true">
644    
645          <include name="*.java"/>
646          <compilerarg value="-XDignore.symbol.file=true"/>
647          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
648          <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
649        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
650    
       <classpath refid="test.classpath"/>  
   
651      </javac>      </javac>
 -->  
652    
653    </target>    </target>
654    
655    
656    <target name="run-tests"    <!-- jsr166 4jdk7 -->
           depends="compile-tests">  
   
     <!-- May be overridden by user.properties -->  
     <property name="testcase" value="*"/>  
   
     <mkdir dir="${build.reports.dir}"/>  
   
     <junit printsummary="true"  
              showoutput="true"  
           errorProperty="junit.failed"  
         failureProperty="junit.failed"  
                     dir="${build.reports.dir}"  
                    fork="true">  
657    
658        <jvmarg value="${bootclasspath.args}"/>    <target name="4jdk7compile"
659        <jvmarg value="-server"/>            depends="configure-compiler"
660        <jvmarg value="-showversion"/>            description="Compiles src/jdk7 sources, targeting jdk7">
661    
662        <mkdir dir="${build.4jdk7.classes.dir}"/>
663    
664        <javac srcdir="${4jdk7src.dir}"
665               destdir="${build.4jdk7.classes.dir}"
666               debug="${build.debug}"
667               debuglevel="${build.debuglevel}"
668               deprecation="${build.deprecation}"
669               source="6"
670               target="6"
671               classpath=""
672               bootclasspath="${bootclasspath6}"
673               includeAntRuntime="false"
674               includeJavaRuntime="false"
675               executable="${javac7}"
676               fork="true">
677    
678        <classpath refid="test.classpath"/>        <include name="**/*.java"/>
679          <compilerarg value="-Xprefer:source"/>
680          <compilerarg value="-XDignore.symbol.file=true"/>
681          <compilerarg value="-Xlint:all"/>
682          <compilerarg value="-Werror"/>
683          <compilerarg line="${build.args}"/>
684    
685        <formatter type="xml"/>      </javac>
686      </target>
687    
688        <batchtest todir="${build.reports.dir}" unless="no.test.tck">    <target name="4jdk7doclint"
689          <fileset dir="${tck.src.dir}">            depends="configure-compiler"
690            <include name="**/${testcase}Test.java"/>            description="Finds doclint warnings">
691          </fileset>  
692        </batchtest>      <mkdir dir="${build.4jdk7.classes.dir}"/>
693    
694        <batchtest todir="${build.reports.dir}" if="do.test.old">      <javac srcdir="${4jdk7src.dir}"
695          <fileset dir="${test.src.dir}">             destdir="${build.4jdk7.classes.dir}"
696            <include name="jsr166/test/**/${testcase}Test.java"/>             debug="${build.debug}"
697          </fileset>             debuglevel="${build.debuglevel}"
698        </batchtest>             deprecation="${build.deprecation}"
699               source="6"
700  <!--             target="6"
701        <batchtest todir="${build.reports.dir}" if="do.test.jtreg">             classpath=""
702          <fileset dir="${jtreg.src.dir}">             bootclasspath="${bootclasspath6}"
703            <include name="**/${testcase}Test.java"/>             includeAntRuntime="false"
704          </fileset>             includeJavaRuntime="false"
705        </batchtest>             executable="${javac8}"
706  -->             fork="true">
707    
708      </junit>        <include name="**/*.java"/>
709          <compilerarg value="-Xprefer:source"/>
710          <compilerarg value="-XDignore.symbol.file=true"/>
711          <compilerarg value="-Xlint:all"/>
712          <compilerarg value="-Xdoclint:all/protected"/>
713          <compilerarg line="${build.args}"/>
714    
715        </javac>
716    </target>    </target>
717    
718    
719    <target name="report-tests"    <target name="4jdk7jar"
720            depends="run-tests">            depends="4jdk7compile"
721              description="Builds library jar from compiled sources">
     <!-- Sets junit.report.format to frames if redirection is present,  
          otherwise sets it to noframes. -->  
     <available property="junit.report.format"  
                   value="frames"  
               classname="org.apache.xalan.lib.Redirect"  
     />  
     <property name="junit.report.format" value="noframes"/>  
   
     <junitreport todir="${build.reports.dir}">  
       <fileset dir="${build.reports.dir}">  
         <include name="TEST-*.xml"/>  
       </fileset>  
       <report styledir="${stylesheet.dir}"  
                 format="${junit.report.format}"  
                  todir="${build.reports.dir}"  
       />  
     </junitreport>  
722    
723      <fail message="Test Cases Failed" if="junit.failed"/>      <jar destfile="${4jdk7product.jar}">
724          <fileset dir="${build.4jdk7.classes.dir}"/>
725          <manifest>
726            <attribute name="Built-By" value="${user.name}"/>
727            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
728          </manifest>
729        </jar>
730    
731    </target>    </target>
732    
733    
734    <target name="configure-compiler">    <target name="4jdk7-tck"
735              depends="4jdk7jar"
736      <property name="unchecked.option" value="-Xlint:unchecked"/>            description="Runs tck tests for jsr166-4jdk7 directly">
737    
738        <run-tck-tests
739          target="7"
740          workdir="${build.4jdk7.dir}"
741          classes="${4jdk7product.jar}">
742          <javac-elements>
743            <!-- JDK8+ test classes -->
744            <exclude name="*8Test.java"/>
745            <exclude name="*9Test.java"/>
746            <exclude name="*10Test.java"/>
747            <exclude name="DoubleAccumulatorTest.java"/>
748            <exclude name="DoubleAdderTest.java"/>
749            <exclude name="LongAccumulatorTest.java"/>
750            <exclude name="LongAdderTest.java"/>
751            <exclude name="CompletableFutureTest.java"/>
752            <exclude name="SplittableRandomTest.java"/>
753            <exclude name="StampedLockTest.java"/>
754            <exclude name="SubmissionPublisherTest.java"/>
755          </javac-elements>
756        </run-tck-tests>
757      </target>
758    
     <condition property="warnunchecked.arg" value="${unchecked.option}">  
       <istrue value="${build.warnunchecked}"/>  
     </condition>  
759    
760      <property name="warnunchecked.arg" value=""/>    <target name="4jdk7-tck-junit"
761              depends="4jdk7compile"
762              description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">
763    
764        <junit printsummary="true"
765               showoutput="true"
766               errorProperty="junit.failed"
767               failureProperty="junit.failed"
768               includeantruntime="true"
769               jvm="${java7}"
770               fork="true">
771    
772      <!-- Common options in javac invocations -->        <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
773      <property name="build.args" value="${warnunchecked.arg}"/>        <jvmarg value="-server"/>
774    
775    </target>        <classpath>
776            <pathelement location="${junit.jar}"/>
777            <pathelement location="${build.4jdk7.tck.classes.dir}"/>
778          </classpath>
779    
780          <formatter type="brief"/>
781    
782    <target name="configure-tests"        <test name="${jsr166.tckTestClass}" haltonfailure="no">
783         depends="configure-compiler">        </test>
784    
785      <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->      </junit>
786      <available property="junit.available"    </target>
                classname="junit.framework.Protectable"/>  
787    
788      <!-- Xalan -->    <target name="4jdk7-jtreg"
789      <available property="xalan.available"            depends="4jdk7jar"
790                 classname="org.apache.xalan.Version"/>            description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">
791        <run-jtreg-tests
792           target="7"
793           workdir="${build.4jdk7.dir}"
794           classes="${4jdk7product.jar}"/>
795      </target>
796    
797    
798      <!-- Ant 1.6beta and later don't need or want this check -->    <target name="4jdk7-test"
799      <!--            depends="4jdk7-tck, 4jdk7-jtreg"
800      <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests"            description="Runs tck and jtreg tests for jsr166-4jdk7">
801            unless="junit.available"/>    </target>
802    
     <fail message="Need Xalan 2.5.1 jar in ${ant.home}${file.separator}lib to run tests"  
           unless="xalan.available"/>  
     -->  
803    
804      <target name="4jdk7docs"
805              description="Builds javadocs for src/jdk7 to dist dir">
806    
807        <delete dir="${4jdk7docs.dir}"/>
808        <mkdir dir="${4jdk7docs.dir}"/>
809    
810        <javadoc destdir="${4jdk7docs.dir}"
811                 packagenames="none"
812                 link="${java7.api.url}"
813                 overview="${4jdk7src.dir}/intro.html"
814                 access="${build.javadoc.access}"
815                 sourcepath="${4jdk7src.dir}:${jdk7src.dir}"
816                 classpath=""
817                 executable="${javadoc7}">
818          <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
819            <include name="**/*.java"/>
820          </fileset>
821          <arg line="-Xdocrootparent ${java7.docroot.url}"/>
822          <arg value="-XDignore.symbol.file=true"/>
823        </javadoc>
824    </target>    </target>
825    
826    
827      <target name="4jdk7dist"
828              depends="4jdk7dist-jar, 4jdk7dist-docs"
829              description="Puts all distributable products in single hierarchy"/>
830    
   <!-- Anthill targets -->  
831    
832    <target name="anthill-build">    <target name="4jdk7clean"
833              description="Removes all 4jdk7 build products">
834    
835      <!-- Override this in user.properties -->      <delete dir="${build.4jdk7.dir}"/>
     <property name="tiger.home" location="e:/j2sdk1.5.0"/>  
836    
     <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>  
837    </target>    </target>
838    
   <target name="do-anthill-build"  
           depends="jar, test, docs, dist-docs"/>  
839    
840    <target name="anthill-publish">    <target name="4jdk7dist-jar"
841              depends="4jdk7clean, 4jdk7jar">
842        <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
843      </target>
844    
     <copy todir="${deployDir}/docs/private">  
       <fileset dir="${build.javadocs.dir}"/>  
     </copy>  
845    
846      <copy todir="${deployDir}/docs/public">    <target name="4jdk7dist-docs"
847        <fileset dir="${dist.javadocs.dir}"/>            depends="4jdk7clean, 4jdk7docs">
848      </copy>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
849      </target>
850    
     <copy tofile="${deployDir}/index.html"  
           file="${basedir}/etc/anthill-index.html"/>  
851    
852      <copy todir="${deployDir}/notes">    <!-- jsr166x -->
       <fileset dir="${basedir}/etc/notes"/>  
     </copy>  
853    
854    </target>    <target name="jsr166xcompile"
855              depends="configure-compiler"
856              description="Compiles jsr166x sources to build dir">
857    
858        <mkdir dir="${build.jsr166x.classes.dir}"/>
859    
860        <javac srcdir="${topsrc.dir}"
861               destdir="${build.jsr166x.classes.dir}"
862               debug="${build.debug}"
863               debuglevel="${build.debuglevel}"
864               deprecation="${build.deprecation}"
865               classpath=""
866               bootclasspath="${bootclasspath6}"
867               source="5"
868               target="5"
869               includeAntRuntime="false"
870               includeJavaRuntime="false"
871               executable="${javac7}"
872               fork="true">
873    
874          <include name="jsr166x/**/*.java"/>
875          <compilerarg value="-XDignore.symbol.file=true"/>
876          <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
877          <compilerarg value="-Werror"/>
878          <compilerarg line="${build.args}"/>
879    
880    <!-- Various demos and test programs -->      </javac>
881      </target>
882    
883    
884    <target name="sample" depends="init, configure-compiler"    <target name="jsr166xjar"
885            description="Standalone demo program">            depends="jsr166xcompile"
886              description="Builds library jar from compiled sources">
887    
888      <mkdir dir="${build.testcases.dir}"/>      <jar destfile="${jsr166x.jar}">
889          <fileset dir="${build.jsr166x.classes.dir}"/>
890          <manifest>
891            <attribute name="Built-By" value="${user.name}"/>
892            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
893          </manifest>
894        </jar>
895    
896      <javac srcdir="${test.src.dir}"    </target>
           destdir="${build.testcases.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
897    
       <include name="jsr166/test/Sample.java"/>  
898    
899      </javac>    <target name="jsr166xdocs"
900              description="Builds javadocs to dist dir">
901    
902      <copy todir="${build.testcases.dir}">      <delete dir="${jsr166xdocs.dir}"/>
903        <fileset dir="${test.src.dir}">      <mkdir dir="${jsr166xdocs.dir}"/>
         <include name="**/*.properties"/>  
       </fileset>  
     </copy>  
904    
905        <javadoc destdir="${jsr166xdocs.dir}"
906                 packagenames="jsr166x.*"
907                 link="${java.api.url}"
908                 access="${build.javadoc.access}"
909                 sourcepath="${topsrc.dir}:${jdk6src.dir}"
910                 bootclasspath="${bootclasspath6}"
911                 source="5"
912                 executable="${javadoc7}">
913          <arg line="-Xdocrootparent ${java.docroot.url}"/>
914          <arg value="-XDignore.symbol.file=true"/>
915    
916      <java classname="jsr166.test.Sample" fork="true">      </javadoc>
       <classpath refid="test.classpath"/>  
       <!-- <jvmarg value="-ea"/> -->  
       <!-- <jvmarg value="-server"/> -->  
       <!-- <arg value="1000"/> -->  
     </java>  
917    </target>    </target>
918    
919    
920    <target name="loops" depends="init, configure-compiler"    <target name="jsr166xdist"
921            description="Benchmark from Doug Lea's AQS paper">            depends="jsr166xdist-jar, jsr166xdist-docs"
922              description="Puts all distributable products in single hierarchy"/>
     <mkdir dir="${build.loops.dir}"/>  
   
     <javac srcdir="${loops.src.dir}"  
           destdir="${build.loops.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
923    
       <compilerarg line="${build.args}"/>  
       <classpath refid="loops.classpath"/>  
924    
925      </javac>    <target name="jsr166xclean"
926              description="Removes all jsr166x build products">
927    
928      <java classname="ALoops" fork="true">      <delete dir="${build.jsr166x.dir}"/>
       <classpath refid="loops.classpath"/>  
     </java>  
929    
930    </target>    </target>
931    
932    
933    <target name="compile-j1" depends="init, configure-compiler, compile">    <target name="jsr166xdist-jar"
934              depends="jsr166xclean, jsr166xjar">
935        <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
936      </target>
937    
938      <mkdir dir="${build.j1.dir}"/>    <target name="jsr166xdist-docs"
939              depends="jsr166xclean, jsr166xdocs">
940        <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
941      </target>
942    
943      <javac srcdir="${j1.src.dir}"    <!-- jsr166y -->
           destdir="${build.j1.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}" >  
944    
       <include name="**/*.java"/>  
       <exclude name="**/dijkstra/**"/>  
945    
946      <target name="jsr166ycompile"
947              depends="configure-compiler"
948              description="Compiles jsr166y sources">
949    
950        <mkdir dir="${build.jsr166y.classes.dir}"/>
951    
952        <javac srcdir="${topsrc.dir}"
953               destdir="${build.jsr166y.classes.dir}"
954               debug="${build.debug}"
955               debuglevel="${build.debuglevel}"
956               deprecation="${build.deprecation}"
957               source="6"
958               target="6"
959               classpath=""
960               bootclasspath="${bootclasspath6}"
961               includeAntRuntime="false"
962               includeJavaRuntime="false"
963               executable="${javac7}"
964               fork="true">
965    
966          <include name="jsr166y/**/*.java"/>
967          <compilerarg value="-XDignore.symbol.file=true"/>
968          <compilerarg value="-Xlint:all"/>
969          <compilerarg value="-Werror"/>
970        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
       <classpath refid="j1.classpath"/>  
971    
972      </javac>      </javac>
   
973    </target>    </target>
974    
975    
976    <target name="sw" depends="compile-j1"    <target name="jsr166yjar"
977            description="Runs the SwingWorker demo">            depends="jsr166ycompile"
978              description="Builds library jar from compiled sources">
     <!--  
     <java classname="jsr166.swing.SwingWorkerDemo" fork="true">  
       <classpath refid="j1.classpath"/>  
     </java>  
     -->  
   
     <copy todir="${build.j1.dir}" file="${j1.src.dir}/jsr166/swing/SwingWorker.html"/>  
979    
980      <exec dir="${build.j1.dir}" executable="appletviewer.exe">      <jar destfile="${jsr166y.jar}" index="true">
981        <arg value="${build.j1.dir}/SwingWorker.html"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
982      </exec>        <manifest>
983            <attribute name="Built-By" value="${user.name}"/>
984            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
985          </manifest>
986        </jar>
987    
988    </target>    </target>
989    
   <target name="j1" depends="compile-j1"  
           description="Runs a standalone JavaOne program">  
   
     <java classname="${j1.test}" fork="true">  
       <classpath refid="j1.classpath"/>  
       <jvmarg value="-client"/>  
990    
991        <!-- TestPseudoRandom args -->    <target name="jsr166ydocs"
992        <arg value="2"/>            description="Builds javadocs to dist dir">
       <arg value="25"/>  
       <arg value="100000"/>  
993    
994        <!-- WebCrawler args -->      <delete dir="${jsr166ydocs.dir}"/>
995        <!--      <mkdir dir="${jsr166ydocs.dir}"/>
       <arg value="jsr166.webcrawler.WebCrawler3"/>  
       <arg value="http://www.priorartisans.com"/>  
       <arg value="25"/>  
       -->  
996    
997      </java>      <javadoc destdir="${jsr166ydocs.dir}"
998                 packagenames="jsr166y.*"
999                 link="${java.api.url}"
1000                 access="${build.javadoc.access}"
1001                 sourcepath="${topsrc.dir}:${jdk6src.dir}"
1002                 bootclasspath="${bootclasspath6}"
1003                 source="6"
1004                 executable="${javadoc7}">
1005          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1006          <arg value="-XDignore.symbol.file=true"/>
1007    
1008        </javadoc>
1009    </target>    </target>
1010    
1011    
1012    <target name="test-j1" depends="compile-j1"    <target name="jsr166ydist"
1013            description="Runs testcases from the JavaOne source directories">            depends="jsr166ydist-jar, jsr166ydist-docs"
1014              description="Puts all distributable products in single hierarchy"/>
     <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>  
1015    
     </junit>  
1016    
1017      <available property="junit.report.format"    <target name="jsr166yclean"
1018                    value="frames"            description="Removes all jsr166y build products">
               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>  
1019    
1020      <fail message="Test Cases Failed" if="junit.failed"/>      <delete dir="${build.jsr166y.dir}"/>
1021    
1022    </target>    </target>
1023    
1024    
1025      <target name="jsr166ydist-jar"
1026    <!-- C++ and JNI definitions and demos -->            depends="jsr166yclean, jsr166yjar">
1027        <copy file="${jsr166y.jar}" todir="${dist.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>  
   
1028    </target>    </target>
1029    
1030      <target name="jsr166ydist-docs"
1031              depends="jsr166yclean, jsr166ydocs">
1032        <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1033      </target>
1034    
   <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>  
1035    
1036      <exec executable="${build.dir}/CppDemo">    <!-- extra166y -->
       <arg line="count in word frequency of word in command line count"/>  
     </exec>  
1037    
   </target>  
1038    
1039      <target name="extra166ycompile"
1040              depends="configure-compiler, jsr166yjar"
1041              description="Compiles extra166y sources">
1042    
1043    <target name="jnidemo" depends="init, configure-compiler, configure-cpp">      <mkdir dir="${build.extra166y.classes.dir}"/>
1044    
1045      <mkdir dir="${build.testcases.dir}"/>      <javac srcdir="${topsrc.dir}"
1046               destdir="${build.extra166y.classes.dir}"
1047               debug="${build.debug}"
1048               debuglevel="${build.debuglevel}"
1049               deprecation="${build.deprecation}"
1050               bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
1051               classpath=""
1052               source="6"
1053               target="6"
1054               includeAntRuntime="false"
1055               includeJavaRuntime="false"
1056               executable="${javac7}"
1057               fork="true">
1058    
1059      <javac srcdir="${test.src.dir}"        <include name="extra166y/**/*.java"/>
1060            destdir="${build.testcases.dir}"        <compilerarg value="-XDignore.symbol.file=true"/>
1061              debug="${build.debug}"        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1062         debuglevel="${build.debuglevel}"        <compilerarg value="-Werror"/>
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
       <compilerarg value="${bootclasspath.args}"/>  
1063        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
       <classpath refid="test.classpath"/>  
       <include name="JniDemo.java"/>  
     </javac>  
   
     <javah destdir="${build.testcases.dir}"  
       classpathref="test.classpath">  
       <class name="JniDemo"/>  
     </javah>  
   
     <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>  
1064    
1065        </javac>
1066    </target>    </target>
1067    
1068    
1069      <target name="extra166yjar"
1070              depends="extra166ycompile"
1071              description="Builds library jar from compiled sources">
1072    
1073    <!-- Backward compatibility, work in progress (some files not checked in) -->      <jar destfile="${extra166y.jar}" index="true">
1074          <fileset dir="${build.extra166y.classes.dir}"/>
1075          <manifest>
1076            <attribute name="Built-By" value="${user.name}"/>
1077            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1078          </manifest>
1079        </jar>
1080    
1081      </target>
1082    
   <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"/>  
1083    
1084    <target name="defang"    <target name="extra166ydocs"
1085         depends="init"            description="Builds javadocs to build dir">
    description="Generates pre-Tiger compatible source">  
1086    
1087      <delete dir="${pretiger.src.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1088      <mkdir dir="${pretiger.src.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1089    
1090      <exec executable="perl">      <javadoc destdir="${extra166ydocs.dir}"
1091        <arg file="etc/defang.pl"/>               packagenames="extra166y.*"
1092        <!-- <arg value="-v"/> -->               link="${java.api.url}"
1093        <arg value="-s"/> <arg file="${src.dir}"/>               access="${build.javadoc.access}"
1094        <arg value="-t"/> <arg file="${pretiger.src.dir}"/>               sourcepath="${topsrc.dir}:${jdk6src.dir}"
1095      </exec>               bootclasspath="${bootclasspath6}"
1096                 source="6"
1097                 executable="${javadoc7}">
1098          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1099          <arg value="-XDignore.symbol.file=true"/>
1100    
1101        </javadoc>
1102    </target>    </target>
1103    
   <target name="compile-pretiger"  
           depends="init, configure-compiler, defang"  
           description="Compiles pre-Tiger sources to build folder">  
1104    
1105      <mkdir dir="${build.pretiger.dir}"/>    <target name="extra166ydist"
1106              depends="extra166ydist-jar, extra166ydist-docs"
1107              description="Puts all distributable products in single hierarchy"/>
1108    
     <javac srcdir="${pretiger.src.dir}"  
           destdir="${build.pretiger.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${pretiger.sourcelevel}"  
              fork="true">  
1109    
1110        <compilerarg line="${build.args}"/>    <target name="extra166yclean"
1111        <exclude name="**/Thread.java"/>            description="Removes all extra166y build products">
1112    
1113      </javac>      <delete dir="${build.extra166y.dir}"/>
1114    
1115    </target>    </target>
1116    
   <target name="pretiger" depends="compile-pretiger">  
   
     <mkdir dir="${build.lib.dir}"/>  
1117    
1118      <jar destfile="${pretiger.jar}">    <target name="extra166ydist-jar"
1119        <fileset dir="${build.pretiger.dir}">            depends="extra166yclean, extra166yjar">
1120        </fileset>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1121      </jar>    </target>
1122    
1123      <target name="extra166ydist-docs"
1124              depends="extra166yclean, extra166ydocs">
1125        <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1126    </target>    </target>
1127    
1128    <!-- jsr166x -->    <!-- jsr166e -->
1129    
1130      <property name="build.jsr166e.java.version" value="6"/>
1131      <property name="build.jsr166e.javac" value="${javac6}"/>
1132    
1133    <target name="jsr166xcompile"    <target name="jsr166ecompile"
1134            depends="init, configure-compiler"            depends="configure-compiler"
1135            description="Compiles jsr166x sources">            description="Compiles jsr166e sources">
1136    
1137      <mkdir dir="${build.jsr166x.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1138    
1139      <javac srcdir="${jsr166xsrc.dir}"      <javac srcdir="${topsrc.dir}"
1140            destdir="${build.jsr166x.dir}"             destdir="${build.jsr166e.classes.dir}"
1141              debug="${build.debug}"             debug="${build.debug}"
1142         debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1143        deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1144             source="${build.sourcelevel}"             source="${build.jsr166e.java.version}"
1145               fork="true">             target="${build.jsr166e.java.version}"
1146               classpath=""
1147               includeAntRuntime="false"
1148               includeJavaRuntime="false"
1149               executable="${build.jsr166e.javac}"
1150               fork="true">
1151    
1152        <include name="**/*.java"/>        <include name="jsr166e/**/*.java"/>
1153          <compilerarg value="-XDignore.symbol.file=true"/>
1154          <compilerarg value="-Xlint:all"/>
1155          <compilerarg value="-Werror"/>
1156        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
1157    
1158      </javac>      </javac>
   
1159    </target>    </target>
1160    
1161      <!-- jsr166e: find doclint errors -->
1162      <target name="jsr166edoclint">
1163    
1164        <mkdir dir="${build.jsr166e.classes.dir}"/>
1165    
1166    <target name="jsr166xjar"      <javac srcdir="${topsrc.dir}"
1167            depends="jsr166xcompile"             destdir="${build.jsr166e.classes.dir}"
1168            description="Builds library jar from compiled sources">             debug="${build.debug}"
1169               debuglevel="${build.debuglevel}"
1170               deprecation="${build.deprecation}"
1171               source="${build.jsr166e.java.version}"
1172               target="${build.jsr166e.java.version}"
1173               classpath=""
1174               bootclasspath="${bootclasspath6}"
1175               includeAntRuntime="false"
1176               includeJavaRuntime="false"
1177               executable="${javac8}"
1178               fork="true">
1179    
1180          <include name="jsr166e/**/*.java"/>
1181          <compilerarg value="-XDignore.symbol.file=true"/>
1182          <compilerarg value="-Xlint:all"/>
1183          <compilerarg value="-Werror"/>
1184          <compilerarg value="-Xdoclint:all/protected"/>
1185    
1186      <mkdir dir="${build.jsr166xlib.dir}"/>      </javac>
1187      </target>
1188    
     <jar destfile="${jsr166xproduct.jar}">  
       <fileset dir="${build.jsr166x.dir}"/>  
     </jar>  
1189    
1190    </target>    <target name="jsr166ejar"
1191              depends="jsr166ecompile"
1192              description="Builds library jar from compiled sources">
1193    
1194        <jar destfile="${jsr166e.jar}" index="true">
1195          <fileset dir="${build.jsr166e.classes.dir}"/>
1196          <manifest>
1197            <attribute name="Built-By" value="${user.name}"/>
1198            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1199          </manifest>
1200        </jar>
1201    
1202      </target>
1203    
   <target name="jsr166xdocs"  
           description="Builds javadocs with custom tags to build folder">  
1204    
1205      <delete dir="${build.jsr166xjavadocs.dir}"/>    <target name="jsr166edocs"
1206      <mkdir dir="${build.jsr166xjavadocs.dir}"/>            description="Builds javadocs to build dir">
1207    
1208      <javadoc destdir="${build.jsr166xjavadocs.dir}"      <delete dir="${jsr166edocs.dir}"/>
1209                  link="http://java.sun.com/j2se/1.5.0/docs/api/"      <mkdir dir="${jsr166edocs.dir}"/>
             sourcepath="${jsr166xsrc.dir}:/home/dl/1.5.0/j2se/martin/j2se/src/share/classes"  
   
     >  
       <packageset dir="${topsrc.dir}" defaultexcludes="yes">  
       <include name="jsr166x"/>  
       </packageset>  
1210    
1211        <javadoc destdir="${jsr166edocs.dir}"
1212                 packagenames="jsr166e.*"
1213                 link="${java.api.url}"
1214                 access="${build.javadoc.access}"
1215                 sourcepath="${topsrc.dir}:${jdk6src.dir}"
1216                 source="${build.jsr166e.java.version}"
1217                 executable="${javadoc7}">
1218          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1219          <arg value="-XDignore.symbol.file=true"/>
1220    
1221      </javadoc>      </javadoc>
   
1222    </target>    </target>
1223    
1224    
1225    <target name="jsr166xdist"    <target name="jsr166e-tck-one-java-version"
1226            depends="jsr166xdist-clean, jsr166xdist-jar, jsr166xdist-docs"            depends="jsr166ejar">
           description="Puts all distributable products in single hierarchy"/>  
   
   
   
   <target name="jsr166xclean"  
           description="Removes all build products">  
1227    
1228      <delete dir="${build.jsr166x.dir}"/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
     <delete dir="${build.jsr166xlib.dir}"/>  
1229    
1230        <run-tck-tests
1231          tck.src.dir="${test.src.dir}/tck-jsr166e"
1232          target="${build.jsr166e.java.version}"
1233          workdir="${build.jsr166e.dir}"
1234          classes="${jsr166e.jar}"/>
1235    </target>    </target>
1236    
1237      <target name="jsr166e-tck"
1238              description="Runs tck tests for jsr166e for multiple java versions">
1239    
1240    <!--     <antcall target="clean"/> -->
1241    <!--     <antcall target="jsr166e-tck-one-java-version"> -->
1242    <!--       <param name="build.jsr166e.java.version" value="8"/> -->
1243    <!--       <param name="build.jsr166e.javac" value="${javac8}"/> -->
1244    <!--     </antcall> -->
1245    
1246    <target name="jsr166xdist-clean"      <antcall target="clean"/>
1247            description="Removes all build and distribution products">      <antcall target="jsr166e-tck-one-java-version">
1248          <param name="build.jsr166e.java.version" value="7"/>
1249          <param name="build.jsr166e.javac" value="${javac7}"/>
1250        </antcall>
1251    
1252        <antcall target="clean"/>
1253        <antcall target="jsr166e-tck-one-java-version">
1254          <param name="build.jsr166e.java.version" value="6"/>
1255          <param name="build.jsr166e.javac" value="${javac6}"/>
1256        </antcall>
1257    </target>    </target>
1258    
1259    
1260      <target name="jsr166e-test"
1261              depends="jsr166e-tck"
1262              description="Runs all tests for jsr166e">
1263      </target>
1264    
1265    <target name="jsr166xdist-docs"    <target name="jsr166edist"
1266            description="Builds javadocs without custom tags to dist folder">            depends="jsr166edist-jar, jsr166edist-docs"
1267              description="Puts all distributable products in single hierarchy"/>
1268    
     <delete dir="${dist.jsr166xjavadocs.dir}"/>  
     <mkdir dir="${dist.jsr166xjavadocs.dir}"/>  
1269    
1270      <javadoc destdir="${dist.jsr166xjavadocs.dir}"    <target name="jsr166eclean"
1271                  link="http://java.sun.com/j2se/1.5.0/docs/api/"            description="Removes all jsr166e build products">
1272                source="${build.sourcelevel}">      <delete dir="${build.jsr166e.dir}"/>
1273      </target>
       <packageset dir="${topsrc.dir}" defaultexcludes="yes">  
       <include name="jsr166x"/>  
       </packageset>  
1274    
     </javadoc>  
1275    
1276      <target name="jsr166edist-jar"
1277              depends="jsr166eclean, jsr166ejar">
1278        <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1279      </target>
1280    
1281      <target name="jsr166edist-docs"
1282              depends="jsr166eclean, jsr166edocs">
1283        <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1284    </target>    </target>
1285    
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1286    
1287      <copy file="${jsr166xproduct.jar}" todir="${dist.dir}"/>  <!-- Find buglets that can be detected by static build tools -->
1288    
1289      <target name="lint">
1290        <antcall target="dists">
1291          <param name="build.javadoc.access" value="public"/>
1292        </antcall>
1293    </target>    </target>
1294    
1295    <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1296      <target name="lint-private">
1297        <antcall target="dist">
1298          <param name="build.javadoc.access" value="private"/>
1299        </antcall>
1300      </target>
1301    
1302    
1303  </project>  </project>

Legend:
Removed from v.1.73  
changed lines
  Added in v.1.198

dl@cs.oswego.edu
ViewVC Help
Powered by ViewVC 1.1.27