[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.70, Wed Aug 11 10:57:33 2004 UTC revision 1.158, Sat Jul 12 17:29:12 2014 UTC
# Line 8  Line 8 
8    
9    User-specific settings are read from user.properties.    User-specific settings are read from user.properties.
10    See user.properties.sample for an explanation of some useful settings.    See user.properties.sample for an explanation of some useful settings.
11    
12      The repository contains all dependencies except for ant and the JDK
13      itself.  Because the JDK version matters and because different
14      targets require different JDKs, we assume that users have created a
15      hierarchy containing:
16      $HOME/jdk/jdk6
17      $HOME/jdk/jdk7
18      $HOME/jdk/jdk8
19      $HOME/jdk/jdk9
20      where each of the above is a JDK or a symlink to same, and
21      $HOME/jdk/src/jdk6
22      $HOME/jdk/src/jdk7
23      $HOME/jdk/src/jdk8
24      $HOME/jdk/src/jdk9
25      where each of the above is a complete JDK source tree
26      (e.g. mercurial forest) or a symlink to same.
27  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
28    </description>    </description>
29    
30    <target name="usage" description="Advises user to run with -projecthelp">    <!-- Display main targets by running 'ant -projecthelp' -->
31      <echo>Run "ant -projecthelp" for full usage information.</echo>    <target name="usage">
32        <java classname="org.apache.tools.ant.Main">
33          <arg value="-projecthelp" />
34        </java>
35    </target>    </target>
36    
37    
# Line 21  Line 40 
40    
41    
42    <!-- Compilation options -->    <!-- Compilation options -->
43    <property name="build.sourcelevel"    value="1.5"/>    <property name="build.sourcelevel"    value="6"/>
44    <property name="build.debug"          value="true"/>    <property name="build.debug"          value="true"/>
45    <property name="build.debuglevel"     value="source,lines,vars"/>    <property name="build.debuglevel"     value="source,lines,vars"/>
46    <property name="build.deprecation"    value="false"/>    <property name="build.deprecation"    value="false"/>
47      <property name="build.javadoc.access" value="protected"/>
48    
49      <!-- Tck options; see JSR166TestCase.java
50       To profile a single tck test class:
51       ant -Djsr166.profileTests=true -Djsr166.profileThreshold=100 -Djsr166.tckTestClass=CompletableFutureTest test-tck
52       To stress test a single tck test class:
53       ant -Djsr166.tckTestClass=CountedCompleterTest -Djsr166.runsPerTest=100 test-tck
54      -->
55      <property name="jsr166.profileTests"     value="false"/>
56      <property name="jsr166.profileThreshold" value="100"/>
57      <property name="jsr166.runsPerTest"      value="1"/>
58      <property name="jsr166.tckTestClass"     value="JSR166TestCase"/>
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"/>
66    <property name="build.checkstyle.dir" location="${build.dir}/checkstyle"/>  
67    <property name="build.doccheck.dir"   location="${build.dir}/doccheck"/>    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
68    <property name="build.filter.src.dir" location="${build.dir}/filtersrc"/>    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>
69    <property name="build.dc-filter.dir"  location="${build.dir}/filterdocchk"/>    <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"/>    <property name="build.jsr166x.dir"    location="${build.dir}/jsr166x"/>
73    <property name="build.jsr166xlib.dir"        location="${build.dir}/jsr166xlib"/>    <property name="build.jsr166y.dir"           location="${build.dir}/jsr166y"/>
74    <property name="build.jsr166xjavadocs.dir"   location="${build.dir}/jsr166xjavadocs"/>    <property name="build.jsr166e.dir"           location="${build.dir}/jsr166e"/>
75      <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        <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/share/classes"/>
93        <local name="boot.jar.dir"/>
94        <property name="boot.jar.dir"   location="${jdk@{v}.home}/jre/lib"/>
95        <path id="bootclasspath@{v}">
96          <pathelement path="${boot.jar.dir}/resources.jar"/>
97          <pathelement path="${boot.jar.dir}/rt.jar"/>
98          <pathelement path="${boot.jar.dir}/jsse.jar"/>
99          <pathelement path="${boot.jar.dir}/jce.jar"/>
100          <pathelement path="${boot.jar.dir}/charsets.jar"/>
101        </path>
102        <property name="bootclasspath@{v}" value="${toString:bootclasspath@{v}}"/>
103        </sequential>
104      </macrodef>
105    
106      <macrodef name="mirror-dir">
107        <attribute name="src"/>
108        <attribute name="dst"/>
109        <sequential>
110        <delete dir="@{dst}"/>
111        <mkdir dir="@{dst}"/>
112        <copy todir="@{dst}" preservelastmodified="true">
113          <fileset dir="@{src}"/>
114        </copy>
115        </sequential>
116      </macrodef>
117    
118      <defjdklocations v="6"/>
119      <defjdklocations v="7"/>
120      <defjdklocations v="8"/>
121      <defjdklocations v="9"/>
122    
123    <!-- Source locations -->    <!-- Source locations -->
124    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
125    <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"/>  
126    <property name="loops.src.dir"        location="${basedir}/src/loops"/>    <property name="loops.src.dir"        location="${basedir}/src/loops"/>
127    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>
128    <property name="jtreg.src.dir"        location="${test.src.dir}/jtreg"/>    <property name="jtreg.src.dir"        location="${test.src.dir}/jtreg"/>
   <property name="ant.src.dir"          location="${basedir}/etc/ant"/>  
   <property name="stylesheet.dir"       location="${basedir}/etc/xsl"/>  
129    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
130    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
131    <property name="topsrc.dir"           location="${basedir}/src"/>    <property name="topsrc.dir"           location="${basedir}/src"/>
132    <property name="jsr166xsrc.dir"       location="${basedir}/src/jsr166x"/>    <property name="4jdk7src.dir"         location="${topsrc.dir}/jdk7"/>
133      <property name="jsr166xsrc.dir"       location="${topsrc.dir}/jsr166x"/>
134    <!-- Distribution locations -->    <property name="jsr166ysrc.dir"       location="${topsrc.dir}/jsr166y"/>
135    <property name="dist.javadocs.dir"    location="${dist.dir}/docs"/>    <property name="jsr166esrc.dir"       location="${topsrc.dir}/jsr166e"/>
136    <property name="dist.jsr166xjavadocs.dir"    location="${dist.dir}/jsr166xdocs"/>    <property name="extra166ysrc.dir"     location="${topsrc.dir}/extra166y"/>
137    
138      <!-- Javadoc locations -->
139      <property name="docs.dir"          location="${build.dir}/docs"/>
140      <property name="4jdk7docs.dir"     location="${build.4jdk7.dir}/docs"/>
141      <property name="jsr166xdocs.dir"   location="${build.jsr166x.dir}/docs"/>
142      <property name="jsr166ydocs.dir"   location="${build.jsr166y.dir}/docs"/>
143      <property name="jsr166edocs.dir"   location="${build.jsr166e.dir}/docs"/>
144      <property name="extra166ydocs.dir" location="${build.extra166y.dir}/docs"/>
145    
146      <property name="dist.docs.dir"          location="${dist.dir}/docs"/>
147      <property name="dist.4jdk7docs.dir"     location="${dist.dir}/jsr166-4jdk7docs"/>
148      <property name="dist.jsr166xdocs.dir"   location="${dist.dir}/jsr166xdocs"/>
149      <property name="dist.jsr166ydocs.dir"   location="${dist.dir}/jsr166ydocs"/>
150      <property name="dist.jsr166edocs.dir"   location="${dist.dir}/jsr166edocs"/>
151      <property name="dist.extra166ydocs.dir" location="${dist.dir}/extra166ydocs"/>
152    
153    <!-- Jar locations -->    <!-- Jar locations -->
154    <property name="product.jar"          location="${build.lib.dir}/jsr166.jar"/>    <property name="product.jar"      location="${build.dir}/jsr166.jar"/>
155    <property name="jsr166xproduct.jar"   location="${build.jsr166xlib.dir}/jsr166x.jar"/>    <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>
156      <property name="jsr166x.jar"      location="${build.jsr166x.dir}/jsr166x.jar"/>
157      <property name="jsr166y.jar"      location="${build.jsr166y.dir}/jsr166y.jar"/>
158      <property name="jsr166e.jar"      location="${build.jsr166e.dir}/jsr166e.jar"/>
159      <property name="extra166y.jar"    location="${build.extra166y.dir}/extra166y.jar"/>
160    <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"/>  
161    
162    <!-- Bootclasspath argument -->    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
163    <property name="bootclasspath.args"   value="-Xbootclasspath/p:${product.jar}"/>    <property name="java5.docroot.url"      value="http://docs.oracle.com/javase/1.5.0/docs"/>
164      <property name="java6.docroot.url"      value="http://docs.oracle.com/javase/6/docs"/>
165      <property name="java7.docroot.url"      value="http://docs.oracle.com/javase/7/docs"/>
166      <property name="java8.docroot.url"      value="http://docs.oracle.com/javase/8/docs"/>
167      <!-- The expected canonical location does not yet exist as of 2014-07 -->
168      <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->
169      <property name="java9.docroot.url"      value="http://download.java.net/jdk9/docs"/>
170      <!-- Default jdk doc location (latest stable release seems best) -->
171      <property name="java.docroot.url"       value="${java8.docroot.url}"/>
172    
173      <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
174      <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>
175      <property name="java6.api.url"      value="${java6.docroot.url}/api/"/>
176      <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>
177      <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>
178      <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>
179      <property name="java.api.url"       value="${java.docroot.url}/api/"/>
180    
181      <!-- Define the "jtreg" task -->
182      <!-- See the docs in "jtreg -onlineHelp" -->
183      <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant"
184               classpath="${lib.dir}/jtreg.jar" />
185    
186    <!-- Test classpath -->    <!-- Test classpath -->
187    <path id="test.classpath">    <path id="test.classpath">
# Line 77  Line 189 
189      <pathelement location="${junit.jar}"/>      <pathelement location="${junit.jar}"/>
190    </path>    </path>
191    
192      <macrodef name="run-tck-tests">
193        <attribute name="tck.src.dir" default="${tck.src.dir}"/>
194        <attribute name="target"/>
195        <attribute name="compile-target" default="@{target}"/>
196        <attribute name="workdir"/>
197        <attribute name="classes"/>
198        <attribute name="jvmflags" default="-ea -esa -Djsr166.testImplementationDetails=true"/>
199        <element name="javac-elements" optional="true"/>
200        <sequential>
201    
202        <mkdir dir="@{workdir}/tck-classes"/>
203    
204        <javac srcdir="@{tck.src.dir}"
205               destdir="@{workdir}/tck-classes"
206               debug="${build.debug}"
207               debuglevel="${build.debuglevel}"
208               deprecation="${build.deprecation}"
209               source="@{compile-target}"
210               target="@{compile-target}"
211               classpath="${junit.jar}"
212               bootclasspath="@{classes}:${bootclasspath@{compile-target}}"
213               includeAntRuntime="false"
214               includeJavaRuntime="false"
215               executable="${javac@{compile-target}}"
216               fork="true">
217    
218          <include name="*.java"/>
219          <compilerarg value="-XDignore.symbol.file=true"/>
220          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
221          <compilerarg line="${build.args}"/>
222          <javac-elements/>
223    
224        </javac>
225    
226        <java classname="${jsr166.tckTestClass}"
227              failonerror="true"
228              jvm="${java@{target}}"
229              fork="true">
230            <jvmarg value="-Xbootclasspath/p:@{classes}"/>
231            <jvmarg line="@{jvmflags}"/>
232            <sysproperty key="jsr166.profileTests"     value="${jsr166.profileTests}"/>
233            <sysproperty key="jsr166.profileThreshold" value="${jsr166.profileThreshold}"/>
234            <sysproperty key="jsr166.runsPerTest"      value="${jsr166.runsPerTest}"/>
235            <classpath>
236              <pathelement location="${junit.jar}"/>
237              <pathelement location="@{workdir}/tck-classes"/>
238            </classpath>
239        </java>
240    
241        </sequential>
242      </macrodef>
243    
244      <macrodef name="run-jtreg-tests">
245        <!-- ant -Djtreg.src.dir=src/test/jtreg/util/concurrent/CompletableFuture test-jtreg -->
246        <attribute name="jtreg.src.dir" default="${jtreg.src.dir}"/>
247        <attribute name="source" default="7"/>
248        <attribute name="target"/>
249        <attribute name="workdir"/>
250        <attribute name="classes"/>
251        <attribute name="jtregflags" default=""/>
252        <sequential>
253        <delete dir="@{workdir}/JTwork"   quiet="true"/>
254        <delete dir="@{workdir}/JTreport" quiet="true"/>
255        <mkdir dir="@{workdir}/JTwork/scratch"/>
256        <mkdir dir="@{workdir}/JTreport"/>
257        <jtreg dir="@{jtreg.src.dir}"
258               jdk="${jdk@{target}.home}"
259               workDir="@{workdir}/JTwork"
260               reportDir="@{workdir}/JTreport">
261    
262          <arg value="-Xbootclasspath/p:@{classes}"/>
263          <arg value="-agentvm"/>
264          <arg value="-v:nopass,fail"/>
265          <arg value="-vmoptions:-esa -ea"/>
266          <arg value="-automatic"/>
267          <arg value="-k:!ignore"/>
268          <arg line="@{jtregflags}"/>
269        </jtreg>
270        </sequential>
271      </macrodef>
272    
273    <!-- ALoops classpath -->    <!-- ALoops classpath -->
274    <path id="loops.classpath">    <path id="loops.classpath">
275      <pathelement location="${build.loops.dir}"/>      <pathelement location="${build.loops.dir}"/>
276    </path>    </path>
277    
278    <!-- J1 classpath -->    <!-- Support @jls tag, used in jdk8+ javadoc -->
279    <path id="j1.classpath">    <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
280      <pathelement location="${build.j1.dir}"/>    <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
     <pathelement location="${junit.jar}"/>  
     <pathelement location="${concurrent.jar}"/>  
   </path>  
   
281    
282    <!-- Main targets -->    <!-- Main targets -->
283    
284      <property name="build.main.java.version" value="9"/>
285      <property name="build.main.javac" value="${javac9}"/>
286    
287      <target name="dists"
288              depends="dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
289              description="Builds all public jars and docs"/>
290    
291    <target name="compile"    <target name="compile"
292            depends="init, configure-compiler"            depends="configure-compiler"
293            description="Compiles main sources to build folder">            description="Compiles src/main sources to build dir">
294    
295      <mkdir dir="${build.classes.dir}"/>      <mkdir dir="${build.classes.dir}"/>
296    
# Line 104  Line 299 
299              debug="${build.debug}"              debug="${build.debug}"
300         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
301        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
302             source="${build.sourcelevel}"             classpath=""
303               includeAntRuntime="false"
304               includeJavaRuntime="false"
305               executable="${build.main.javac}"
306               fork="true">               fork="true">
307    
308        <include name="**/*.java"/>        <include name="**/*.java"/>
309        <exclude name="java/lang/**"/>        <compilerarg value="-Xprefer:source"/>
310          <compilerarg value="-XDignore.symbol.file=true"/>
311          <compilerarg value="-Xlint:all"/>
312          <compilerarg value="-Xdoclint:all/protected"/>
313          <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
314        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
315    
316      </javac>      </javac>
   
317    </target>    </target>
318    
319    
   
320    <target name="jar"    <target name="jar"
321            depends="compile"            depends="compile"
322            description="Builds library jar from compiled sources">            description="Builds library jar from compiled sources">
323    
     <mkdir dir="${build.lib.dir}"/>  
   
324      <jar destfile="${product.jar}">      <jar destfile="${product.jar}">
325        <fileset dir="${build.classes.dir}"/>        <fileset dir="${build.classes.dir}"/>
326      </jar>      </jar>
   
327    </target>    </target>
328    
329    
   
   <target name="test"  
           depends="init, configure-tests, report-tests"  
           description="Runs all tests (requires JUnit 3.8.1 in ${ant.home}/lib)" />  
   
   
   
330    <target name="docs"    <target name="docs"
331            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/j2se/1.4.1/docs/api"  
             overview="${src.dir}/intro.html"  
               source="${build.sourcelevel}">  
332    
333        <tag name="revised" description="Last revised:"/>      <delete dir="${docs.dir}"/>
334        <tag name="spec"    description="Specified by:"/>      <mkdir dir="${docs.dir}"/>
335    
336        <packageset dir="${src.dir}"/>      <!-- the packagenames="none" hack below prevents scanning the -->
337        <!-- sourcepath for packages -->
338    
339        <javadoc destdir="${docs.dir}"
340                 packagenames="none"
341                 link="${java9.api.url}"
342                 overview="${src.dir}/intro.html"
343                 access="${build.javadoc.access}"
344                 sourcepath="${src.dir}:${jdk9src.dir}"
345                 classpath=""
346                 executable="${javadoc9}">
347          <fileset dir="${src.dir}" defaultexcludes="yes">
348            <include name="**/*.java"/>
349          </fileset>
350          <arg line="-Xdocrootparent ${java9.docroot.url}"/>
351          <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
352          <arg value="-XDignore.symbol.file=true"/>
353          <arg value="-tag"/>
354          <arg value="${javadoc.jls.option}"/>
355          <arg value="-tag"/>
356          <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>
357          <arg value="-tag"/>
358          <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
359          <arg value="-tag"/>
360          <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
361      </javadoc>      </javadoc>
   
   </target>  
   
   
   
   <target name="doccheck"  
           depends="filter-doccheck"  
           description="Reports on javadoc style errors">  
   
     <delete dir="${build.doccheck.dir}"/>  
     <mkdir dir="${build.doccheck.dir}"/>  
   
     <javadoc doclet="com.sun.tools.doclets.doccheck.DocCheck"  
          docletpath="${lib.dir}/doccheck.jar"  
             destdir="${build.doccheck.dir}">  
       <packageset dir="${build.dc-filter.dir}"/>  
     </javadoc>  
   
     <echo>DocCheck output is in ${build.doccheck.dir}</echo>  
   
362    </target>    </target>
363    
364    
   
   <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>  
   
   
   
365    <target name="dist"    <target name="dist"
366            depends="init, dist-clean, dist-jar, dist-docs"            depends="dist-clean, dist-jar, dist-docs"
367            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
368    
369    
   
370    <target name="release"    <target name="release"
371            depends="dist"            depends="dist"
372            description="Puts entire CVS tree, plus distribution productions, in a jar">            description="Puts entire CVS tree, plus distribution productions, in a jar">
# Line 222  Line 382 
382        <exclude name="**/SyntaxTest.java"/>        <exclude name="**/SyntaxTest.java"/>
383        <exclude name="**/SuperfluousAbstract.java"/>        <exclude name="**/SuperfluousAbstract.java"/>
384      </jar>      </jar>
   
385    </target>    </target>
386    
387    
   
388    <target name="clean"    <target name="clean"
389            description="Removes all build products">            description="Removes all build products">
390    
391      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
     <delete dir="${build.classes.dir}"/>  
     <delete dir="${build.lib.dir}"/>  
392    
393    </target>    </target>
394    
395    
   
396    <target name="dist-clean"    <target name="dist-clean"
397            description="Removes all build and distribution products">            description="Removes all build and distribution products">
398    
399        <delete dir="${build.dir}"/>
400      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
401    
402    </target>    </target>
403    
404    
405      <target name="dist-jar"
406              depends="clean, jar">
407        <copy file="${product.jar}" todir="${dist.dir}"/>
408      </target>
409    
410    <target name="dist-docs"    <target name="dist-docs"
411            description="Builds javadocs without custom tags to dist folder">            depends="clean, docs">
412        <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.4.2/docs/api"  
             overview="${src.dir}/intro.html"  
               source="${build.sourcelevel}">  
   
       <packageset dir="${src.dir}"/>  
   
     </javadoc>  
   
413    </target>    </target>
414    
415    
416      <target name="test-tck"
417              depends="jar"
418              description="Runs tck tests for main directly">
419    
420    <!-- Internal targets -->      <run-tck-tests
421          target="${build.main.java.version}"
422          workdir="${build.dir}"
423    <target name="init">        classes="${product.jar}"/>
   
     <!-- Version is kept in a separate file -->  
     <loadfile property="version" srcFile="version.properties"/>  
     <echo>Building JSR-166 version ${version}</echo>  
     <echo>java.home is ${java.home}</echo>  
   
424    </target>    </target>
425    
426      <target name="test-jtreg"
427    <target name="dist-jar"            depends="jar"
428            depends="clean, jar">            description="Runs jtreg tests for main using the jtreg ant task">
429        <run-jtreg-tests
430      <copy file="${product.jar}" todir="${dist.dir}"/>         target="${build.main.java.version}"
431           workdir="${build.dir}"
432           classes="${product.jar}"/>
433    </target>    </target>
434    
435      <target name="test"
436              depends="test-tck, test-jtreg"
437              description="Runs tck and jtreg tests for main">
438      </target>
439    
440    <target name="compile-ant-filter"    <target name="test89"
441            depends="init">            description="Runs tck and jtreg tests for main for multiple java versions">
   
     <mkdir dir="${build.ant.dir}"/>  
442    
443      <javac srcdir="${ant.src.dir}"      <antcall target="clean"/>
444            destdir="${build.ant.dir}"      <antcall target="test">
445             source="1.4"/>        <param name="build.main.java.version" value="8"/>
446          <param name="build.main.javac" value="${javac8}"/>
447        </antcall>
448    
449        <antcall target="clean"/>
450        <antcall target="test">
451          <param name="build.main.java.version" value="9"/>
452          <param name="build.main.javac" value="${javac9}"/>
453        </antcall>
454    
455    </target>    </target>
456    
457    
   <target name="filter-src"  
           depends="compile-ant-filter">  
458    
459      <mkdir dir="${build.filter.src.dir}"/>    <target name="configure-compiler">
460    
461      <copy todir="${build.filter.src.dir}">      <property name="unchecked.option" value="-Xlint:unchecked"/>
       <fileset dir="${src.dir}">  
         <include name="**/*.html"/>  
       </fileset>  
     </copy>  
462    
463      <copy todir="${build.filter.src.dir}">      <condition property="warnunchecked.arg" value="${unchecked.option}">
464        <fileset dir="${src.dir}">        <istrue value="${build.warnunchecked}"/>
465          <exclude name="**/*.html"/>      </condition>
         <!-- Files excluded from dist-docs -->  
         <exclude name="java/util/Random.*"/>  
         <exclude name="sun/misc/Unsafe.*"/>  
       </fileset>  
       <!--  
       <filterchain>  
       -->  
466    
467          <!--      <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.)  
          -->  
468    
         <!--  
         <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>  
         -->  
469    
470        <!--      <!-- Common options in javac invocations -->
471        </filterchain>      <property name="build.args" value="${warnunchecked.arg}"/>
       -->  
     </copy>  
472    
473    </target>    </target>
474    
475    
   <target name="filter-doccheck"  
           depends="filter-src">  
   
     <mkdir dir="${build.dc-filter.dir}"/>  
   
     <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>  
476    
477    </target>    <!-- Various demos and test programs -->
478    
479    
480    <target name="compile-tests"    <target name="loops" depends="configure-compiler"
481            depends="jar">            description="Benchmark from Doug Lea's AQS paper">
482    
483      <mkdir dir="${build.testcases.dir}"/>      <mkdir dir="${build.loops.dir}"/>
484    
485      <javac srcdir="${tck.src.dir}"      <javac srcdir="${loops.src.dir}"
486            destdir="${build.testcases.dir}"            destdir="${build.loops.dir}"
487              debug="${build.debug}"              debug="${build.debug}"
488         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
489        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
490             source="${build.sourcelevel}"             source="${build.sourcelevel}"
491               fork="true">               fork="true">
492    
       <compilerarg value="${bootclasspath.args}"/>  
493        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
494          <classpath refid="loops.classpath"/>
495        <classpath refid="test.classpath"/>        <compilerarg value="-XDignore.symbol.file=true"/>
496    
497      </javac>      </javac>
498    
499      <javac srcdir="${test.src.dir}"      <java classname="ALoops" fork="true">
500            destdir="${build.testcases.dir}"        <classpath refid="loops.classpath"/>
501        </java>
502    
503      </target>
504    
505    
506      <!-- jsr166 4jdk7 -->
507    
508      <target name="4jdk7compile"
509              depends="configure-compiler"
510              description="Compiles src/jdk7 sources, targeting jdk7">
511    
512        <mkdir dir="${build.4jdk7.classes.dir}"/>
513    
514        <javac srcdir="${4jdk7src.dir}"
515               destdir="${build.4jdk7.classes.dir}"
516              debug="${build.debug}"              debug="${build.debug}"
517         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
518        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
519             source="${build.sourcelevel}"             source="6"
520               classpath=""
521               bootclasspath="${bootclasspath6}"
522               includeAntRuntime="false"
523               includeJavaRuntime="false"
524               executable="${javac7}"
525               fork="true">               fork="true">
526    
527        <include name="jsr166/test/**"/>        <include name="**/*.java"/>
528          <compilerarg value="-Xprefer:source"/>
529        <compilerarg value="${bootclasspath.args}"/>        <compilerarg value="-XDignore.symbol.file=true"/>
530          <compilerarg value="-Xlint:all"/>
531        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
532    
       <classpath refid="test.classpath"/>  
   
533      </javac>      </javac>
534      </target>
535    
536      <target name="4jdk7doclint"
537              depends="configure-compiler"
538              description="Finds doclint warnings">
539    
540  <!--      <mkdir dir="${build.4jdk7.classes.dir}"/>
541      <javac srcdir="${jtreg.src.dir}"  
542            destdir="${build.testcases.dir}"      <javac srcdir="${4jdk7src.dir}"
543               destdir="${build.4jdk7.classes.dir}"
544              debug="${build.debug}"              debug="${build.debug}"
545         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
546        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
547             source="${build.sourcelevel}"             source="6"
548               classpath=""
549               bootclasspath="${bootclasspath7}"
550               includeAntRuntime="false"
551               includeJavaRuntime="false"
552               executable="${javac8}"
553               fork="true">               fork="true">
554    
555        <compilerarg value="${bootclasspath.args}"/>        <include name="**/*.java"/>
556          <compilerarg value="-Xprefer:source"/>
557          <compilerarg value="-XDignore.symbol.file=true"/>
558          <compilerarg value="-Xlint:all"/>
559          <compilerarg value="-Xdoclint:all/protected"/>
560        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
561    
       <classpath refid="test.classpath"/>  
   
562      </javac>      </javac>
563  -->    </target>
564    
565    
566      <target name="4jdk7jar"
567              depends="4jdk7compile"
568              description="Builds library jar from compiled sources">
569    
570        <jar destfile="${4jdk7product.jar}">
571          <fileset dir="${build.4jdk7.classes.dir}"/>
572        </jar>
573    
574    </target>    </target>
575    
576    
577    <target name="run-tests"    <target name="4jdk7-test-tck"
578            depends="compile-tests">            depends="4jdk7jar"
579              description="Runs tck tests for jsr166-4jdk7 directly">
580    
581        <run-tck-tests
582          target="7"
583          workdir="${build.4jdk7.dir}"
584          classes="${4jdk7product.jar}">
585          <javac-elements>
586            <!-- JDK8+ test classes -->
587            <exclude name="*8Test.java"/>
588            <exclude name="*9Test.java"/>
589            <exclude name="DoubleAccumulatorTest.java"/>
590            <exclude name="DoubleAdderTest.java"/>
591            <exclude name="LongAccumulatorTest.java"/>
592            <exclude name="LongAdderTest.java"/>
593            <exclude name="CompletableFutureTest.java"/>
594            <exclude name="SplittableRandomTest.java"/>
595            <exclude name="StampedLockTest.java"/>
596          </javac-elements>
597        </run-tck-tests>
598      </target>
599    
     <!-- May be overridden by user.properties -->  
     <property name="testcase" value="*"/>  
600    
601      <mkdir dir="${build.reports.dir}"/>    <target name="4jdk7-test-tck-junit"
602              depends="4jdk7compile"
603              description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">
604    
605      <junit printsummary="true"      <junit printsummary="true"
606               showoutput="true"               showoutput="true"
607            errorProperty="junit.failed"            errorProperty="junit.failed"
608          failureProperty="junit.failed"          failureProperty="junit.failed"
609                      dir="${build.reports.dir}"             includeantruntime="true"
610               jvm="${java7}"
611                     fork="true">                     fork="true">
612    
613        <jvmarg value="${bootclasspath.args}"/>        <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
614        <jvmarg value="-server"/>        <jvmarg value="-server"/>
       <jvmarg value="-showversion"/>  
   
       <classpath refid="test.classpath"/>  
   
       <formatter type="xml"/>  
615    
616        <batchtest todir="${build.reports.dir}" unless="no.test.tck">        <classpath>
617          <fileset dir="${tck.src.dir}">          <pathelement location="${junit.jar}"/>
618            <include name="**/${testcase}Test.java"/>          <pathelement location="${build.4jdk7.tck.classes.dir}"/>
619          </fileset>        </classpath>
       </batchtest>  
620    
621        <batchtest todir="${build.reports.dir}" if="do.test.old">        <formatter type="brief"/>
         <fileset dir="${test.src.dir}">  
           <include name="jsr166/test/**/${testcase}Test.java"/>  
         </fileset>  
       </batchtest>  
622    
623  <!--        <test name="${jsr166.tckTestClass}" haltonfailure="no">
624        <batchtest todir="${build.reports.dir}" if="do.test.jtreg">        </test>
         <fileset dir="${jtreg.src.dir}">  
           <include name="**/${testcase}Test.java"/>  
         </fileset>  
       </batchtest>  
 -->  
625    
626      </junit>      </junit>
   
627    </target>    </target>
628    
629      <target name="4jdk7-test-jtreg"
630              depends="4jdk7jar"
631              description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">
632        <run-jtreg-tests
633           target="7"
634           workdir="${build.4jdk7.dir}"
635           classes="${4jdk7product.jar}"
636           jtregflags="-exclude:${jtreg.src.dir}/jdk8tests"/>
637      </target>
638    
   <target name="report-tests"  
           depends="run-tests">  
639    
640      <!-- Sets junit.report.format to frames if redirection is present,    <target name="4jdk7-test"
641           otherwise sets it to noframes. -->            depends="4jdk7-test-tck, 4jdk7-test-jtreg"
642      <available property="junit.report.format"            description="Runs tck and jtreg tests for jsr166-4jdk7">
643                    value="frames"    </target>
               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>  
644    
     <fail message="Test Cases Failed" if="junit.failed"/>  
645    
646      <target name="4jdk7docs"
647              description="Builds javadocs for src/jdk7 to dist dir">
648    
649        <delete dir="${4jdk7docs.dir}"/>
650        <mkdir dir="${4jdk7docs.dir}"/>
651    
652        <javadoc destdir="${4jdk7docs.dir}"
653                 packagenames="none"
654                 link="${java7.api.url}"
655                 overview="${4jdk7src.dir}/intro.html"
656                 access="${build.javadoc.access}"
657                 sourcepath="${4jdk7src.dir}:${jdk7src.dir}"
658                 classpath=""
659                 executable="${javadoc7}">
660          <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
661            <include name="**/*.java"/>
662          </fileset>
663          <arg line="-Xdocrootparent ${java7.docroot.url}"/>
664          <arg value="-XDignore.symbol.file=true"/>
665        </javadoc>
666    </target>    </target>
667    
668    
669    <target name="configure-compiler">    <target name="4jdk7dist"
670              depends="4jdk7dist-jar, 4jdk7dist-docs"
671              description="Puts all distributable products in single hierarchy"/>
672    
     <property name="unchecked.option" value="-Xlint:unchecked"/>  
673    
674      <condition property="warnunchecked.arg" value="${unchecked.option}">    <target name="4jdk7clean"
675        <istrue value="${build.warnunchecked}"/>            description="Removes all 4jdk7 build products">
     </condition>  
676    
677      <property name="warnunchecked.arg" value=""/>      <delete dir="${build.4jdk7.dir}"/>
678    
679      </target>
680    
     <!-- Common options in javac invocations -->  
     <property name="build.args" value="${warnunchecked.arg}"/>  
681    
682      <target name="4jdk7dist-jar"
683              depends="4jdk7clean, 4jdk7jar">
684        <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
685    </target>    </target>
686    
687    
688    <target name="configure-tests"    <target name="4jdk7dist-docs"
689         depends="configure-compiler">            depends="4jdk7clean, 4jdk7docs">
690        <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
691      <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->    </target>
     <available property="junit.available"  
                classname="junit.framework.Protectable"/>  
692    
     <!-- Xalan -->  
     <available property="xalan.available"  
                classname="org.apache.xalan.Version"/>  
693    
694      <!-- jsr166x -->
695    
696      <!-- Ant 1.6beta and later don't need or want this check -->    <target name="jsr166xcompile"
697      <!--            depends="configure-compiler"
698      <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests"            description="Compiles jsr166x sources to build dir">
           unless="junit.available"/>  
699    
700      <fail message="Need Xalan 2.5.1 jar in ${ant.home}${file.separator}lib to run tests"      <mkdir dir="${build.jsr166x.classes.dir}"/>
           unless="xalan.available"/>  
     -->  
701    
702    </target>      <javac srcdir="${topsrc.dir}"
703               destdir="${build.jsr166x.classes.dir}"
704               debug="${build.debug}"
705               debuglevel="${build.debuglevel}"
706               deprecation="${build.deprecation}"
707               classpath=""
708               bootclasspath="${bootclasspath6}"
709               source="5"
710               includeAntRuntime="false"
711               includeJavaRuntime="false"
712               executable="${javac7}"
713               fork="true">
714    
715          <include name="jsr166x/**/*.java"/>
716          <compilerarg value="-XDignore.symbol.file=true"/>
717          <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
718          <compilerarg line="${build.args}"/>
719    
720        </javac>
721      </target>
722    
   <!-- Anthill targets -->  
723    
724    <target name="anthill-build">    <target name="jsr166xjar"
725              depends="jsr166xcompile"
726              description="Builds library jar from compiled sources">
727    
728      <!-- Override this in user.properties -->      <jar destfile="${jsr166x.jar}">
729      <property name="tiger.home" location="e:/j2sdk1.5.0"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
730        </jar>
731    
     <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>  
732    </target>    </target>
733    
   <target name="do-anthill-build"  
           depends="jar, test, docs, dist-docs"/>  
   
   <target name="anthill-publish">  
734    
735      <copy todir="${deployDir}/docs/private">    <target name="jsr166xdocs"
736        <fileset dir="${build.javadocs.dir}"/>            description="Builds javadocs to dist dir">
     </copy>  
   
     <copy todir="${deployDir}/docs/public">  
       <fileset dir="${dist.javadocs.dir}"/>  
     </copy>  
737    
738      <copy tofile="${deployDir}/index.html"      <delete dir="${jsr166xdocs.dir}"/>
739            file="${basedir}/etc/anthill-index.html"/>      <mkdir dir="${jsr166xdocs.dir}"/>
740    
741      <copy todir="${deployDir}/notes">      <javadoc destdir="${jsr166xdocs.dir}"
742        <fileset dir="${basedir}/etc/notes"/>               packagenames="jsr166x.*"
743      </copy>               link="${java.api.url}"
744                 access="${build.javadoc.access}"
745                 sourcepath="${topsrc.dir}:${jdk6src.dir}"
746                 bootclasspath="${bootclasspath6}"
747                 source="5"
748                 executable="${javadoc7}">
749          <arg line="-Xdocrootparent ${java.docroot.url}"/>
750          <arg value="-XDignore.symbol.file=true"/>
751    
752        </javadoc>
753    </target>    </target>
754    
755    
756      <target name="jsr166xdist"
757              depends="jsr166xdist-jar, jsr166xdist-docs"
758              description="Puts all distributable products in single hierarchy"/>
759    
   <!-- Various demos and test programs -->  
   
   
   <target name="sample" depends="init, configure-compiler"  
           description="Standalone demo program">  
   
     <mkdir dir="${build.testcases.dir}"/>  
760    
761      <javac srcdir="${test.src.dir}"    <target name="jsr166xclean"
762            destdir="${build.testcases.dir}"            description="Removes all jsr166x build products">
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
763    
764        <include name="jsr166/test/Sample.java"/>      <delete dir="${build.jsr166x.dir}"/>
765    
766      </javac>    </target>
767    
     <copy todir="${build.testcases.dir}">  
       <fileset dir="${test.src.dir}">  
         <include name="**/*.properties"/>  
       </fileset>  
     </copy>  
768    
769      <target name="jsr166xdist-jar"
770              depends="jsr166xclean, jsr166xjar">
771        <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
772      </target>
773    
774      <java classname="jsr166.test.Sample" fork="true">    <target name="jsr166xdist-docs"
775        <classpath refid="test.classpath"/>            depends="jsr166xclean, jsr166xdocs">
776        <!-- <jvmarg value="-ea"/> -->      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
       <!-- <jvmarg value="-server"/> -->  
       <!-- <arg value="1000"/> -->  
     </java>  
777    </target>    </target>
778    
779      <!-- jsr166y -->
780    
   <target name="loops" depends="init, configure-compiler"  
           description="Benchmark from Doug Lea's AQS paper">  
781    
782      <mkdir dir="${build.loops.dir}"/>    <target name="jsr166ycompile"
783              depends="configure-compiler"
784              description="Compiles jsr166y sources">
785    
786      <javac srcdir="${loops.src.dir}"      <mkdir dir="${build.jsr166y.classes.dir}"/>
787            destdir="${build.loops.dir}"  
788        <javac srcdir="${topsrc.dir}"
789               destdir="${build.jsr166y.classes.dir}"
790              debug="${build.debug}"              debug="${build.debug}"
791         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
792        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
793             source="${build.sourcelevel}"             source="6"
794               classpath=""
795               bootclasspath="${bootclasspath6}"
796               includeAntRuntime="false"
797               includeJavaRuntime="false"
798               executable="${javac7}"
799               fork="true">               fork="true">
800    
801          <include name="jsr166y/**/*.java"/>
802          <compilerarg value="-XDignore.symbol.file=true"/>
803          <compilerarg value="-Xlint:all"/>
804        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
       <classpath refid="loops.classpath"/>  
805    
806      </javac>      </javac>
   
     <java classname="ALoops" fork="true">  
       <classpath refid="loops.classpath"/>  
     </java>  
   
807    </target>    </target>
808    
809    
810    <target name="compile-j1" depends="init, configure-compiler">    <target name="jsr166yjar"
811              depends="jsr166ycompile"
812      <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"/>  
813    
814      </javac>      <jar destfile="${jsr166y.jar}" index="true">
815          <fileset dir="${build.jsr166y.classes.dir}"/>
816        </jar>
817    
818    </target>    </target>
819    
820    
821    <target name="sw" depends="compile-j1"    <target name="jsr166ydocs"
822            description="Runs the SwingWorker demo">            description="Builds javadocs to dist dir">
823    
824      <!--      <delete dir="${jsr166ydocs.dir}"/>
825      <java classname="jsr166.swing.SwingWorkerDemo" fork="true">      <mkdir dir="${jsr166ydocs.dir}"/>
       <classpath refid="j1.classpath"/>  
     </java>  
     -->  
826    
827      <copy todir="${build.j1.dir}" file="${j1.src.dir}/jsr166/swing/SwingWorker.html"/>      <javadoc destdir="${jsr166ydocs.dir}"
828                 packagenames="jsr166y.*"
829      <exec dir="${build.j1.dir}" executable="appletviewer.exe">               link="${java.api.url}"
830        <arg value="${build.j1.dir}/SwingWorker.html"/>               access="${build.javadoc.access}"
831      </exec>               sourcepath="${topsrc.dir}:${jdk6src.dir}"
832                 bootclasspath="${bootclasspath6}"
833                 source="6"
834                 executable="${javadoc7}">
835          <arg line="-Xdocrootparent ${java.docroot.url}"/>
836          <arg value="-XDignore.symbol.file=true"/>
837    
838        </javadoc>
839    </target>    </target>
840    
   <target name="j1" depends="compile-j1"  
           description="Runs a standalone JavaOne program">  
841    
842      <java classname="${j1.test}" fork="true">    <target name="jsr166ydist"
843        <classpath refid="j1.classpath"/>            depends="jsr166ydist-jar, jsr166ydist-docs"
844        <jvmarg value="-client"/>            description="Puts all distributable products in single hierarchy"/>
845    
       <!-- TestPseudoRandom args -->  
       <arg value="2"/>  
       <arg value="25"/>  
       <arg value="100000"/>  
846    
847        <!-- WebCrawler args -->    <target name="jsr166yclean"
848        <!--            description="Removes all jsr166y build products">
       <arg value="jsr166.webcrawler.WebCrawler3"/>  
       <arg value="http://www.priorartisans.com"/>  
       <arg value="25"/>  
       -->  
849    
850      </java>      <delete dir="${build.jsr166y.dir}"/>
851    
852    </target>    </target>
853    
854    
855    <target name="test-j1" depends="compile-j1"    <target name="jsr166ydist-jar"
856            description="Runs testcases from the JavaOne source directories">            depends="jsr166yclean, jsr166yjar">
857        <copy file="${jsr166y.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"/>  
   
858    </target>    </target>
859    
860      <target name="jsr166ydist-docs"
861              depends="jsr166yclean, jsr166ydocs">
862        <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
863      </target>
864    
865    
866    <!-- C++ and JNI definitions and demos -->    <!-- extra166y -->
867    
   <target name="configure-cpp">  
868    
869      <!-- Define tasks and types -->    <target name="extra166ycompile"
870              depends="configure-compiler, jsr166yjar"
871              description="Compiles extra166y sources">
872    
873      <path id="cpptasks.path">      <mkdir dir="${build.extra166y.classes.dir}"/>
       <pathelement location="${lib.dir}/cpptasks.jar"/>  
     </path>  
     <taskdef resource="cpptasks.tasks" classpathref="cpptasks.path"/>  
     <typedef resource="cpptasks.types" classpathref="cpptasks.path"/>  
874    
875      <!-- Set platform property for JNI includes -->      <javac srcdir="${topsrc.dir}"
876               destdir="${build.extra166y.classes.dir}"
877               debug="${build.debug}"
878               debuglevel="${build.debuglevel}"
879               deprecation="${build.deprecation}"
880               bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
881               classpath=""
882               source="6"
883               includeAntRuntime="false"
884               includeJavaRuntime="false"
885               executable="${javac7}"
886               fork="true">
887    
888      <condition property="platform" value="linux">        <include name="extra166y/**/*.java"/>
889        <os name="Linux"/>        <compilerarg value="-XDignore.symbol.file=true"/>
890      </condition>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
891      <condition property="platform" value="win32">        <compilerarg line="${build.args}"/>
       <os family="windows"/>  
     </condition>  
     <condition property="platform" value="solaris">  
       <os name="SunOS"/>  
     </condition>  
892    
893        </javac>
894    </target>    </target>
895    
896    
897    <target name="cppdemo" depends="configure-cpp">    <target name="extra166yjar"
898              depends="extra166ycompile"
899      <mkdir dir="${build.dir}"/>            description="Builds library jar from compiled sources">
   
     <cc multithreaded="true"  
                  name="g++"  
                objdir="${build.dir}"  
               outfile="${build.dir}/CppDemo">  
       <fileset dir="${test.src.dir}" includes="CppDemo.cpp"/>  
       <libset libs="stdc++"/>  
     </cc>  
900    
901      <exec executable="${build.dir}/CppDemo">      <jar destfile="${extra166y.jar}" index="true">
902        <arg line="count in word frequency of word in command line count"/>        <fileset dir="${build.extra166y.classes.dir}"/>
903      </exec>      </jar>
904    
905    </target>    </target>
906    
907    
908    <target name="jnidemo" depends="init, configure-compiler, configure-cpp">    <target name="extra166ydocs"
909              description="Builds javadocs to build dir">
910    
911      <mkdir dir="${build.testcases.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
912        <mkdir dir="${extra166ydocs.dir}"/>
913    
914      <javac srcdir="${test.src.dir}"      <javadoc destdir="${extra166ydocs.dir}"
915            destdir="${build.testcases.dir}"               packagenames="extra166y.*"
916              debug="${build.debug}"               link="${java.api.url}"
917         debuglevel="${build.debuglevel}"               access="${build.javadoc.access}"
918        deprecation="${build.deprecation}"               sourcepath="${topsrc.dir}:${jdk6src.dir}"
919             source="${build.sourcelevel}"               bootclasspath="${bootclasspath6}"
920               fork="true">               source="6"
921        <compilerarg value="${bootclasspath.args}"/>               executable="${javadoc7}">
922        <compilerarg line="${build.args}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
923        <classpath refid="test.classpath"/>        <arg value="-XDignore.symbol.file=true"/>
       <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>  
924    
925        </javadoc>
926    </target>    </target>
927    
928    
929      <target name="extra166ydist"
930    <!-- Backward compatibility, work in progress (some files not checked in) -->            depends="extra166ydist-jar, extra166ydist-docs"
931              description="Puts all distributable products in single hierarchy"/>
932    
933    
934      <target name="extra166yclean"
935              description="Removes all extra166y build products">
936    
937    <property name="pretiger.src.dir"     location="${build.dir}/pretiger/src"/>      <delete dir="${build.extra166y.dir}"/>
   <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"/>  
938    
939    <target name="defang"    </target>
        depends="init"  
    description="Generates pre-Tiger compatible source">  
940    
     <delete dir="${pretiger.src.dir}"/>  
     <mkdir dir="${pretiger.src.dir}"/>  
941    
942      <exec executable="perl">    <target name="extra166ydist-jar"
943        <arg file="etc/defang.pl"/>            depends="extra166yclean, extra166yjar">
944        <!-- <arg value="-v"/> -->      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
945        <arg value="-s"/> <arg file="${src.dir}"/>    </target>
       <arg value="-t"/> <arg file="${pretiger.src.dir}"/>  
     </exec>  
946    
947      <target name="extra166ydist-docs"
948              depends="extra166yclean, extra166ydocs">
949        <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
950    </target>    </target>
951    
952    <target name="compile-pretiger"    <!-- jsr166e -->
953            depends="init, configure-compiler, defang"  
954            description="Compiles pre-Tiger sources to build folder">    <property name="build.jsr166e.java.version" value="6"/>
955      <property name="build.jsr166e.javac" value="${javac6}"/>
956    
957      <target name="jsr166ecompile"
958              depends="configure-compiler"
959              description="Compiles jsr166e sources">
960    
961      <mkdir dir="${build.pretiger.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
962    
963      <javac srcdir="${pretiger.src.dir}"      <javac srcdir="${topsrc.dir}"
964            destdir="${build.pretiger.dir}"             destdir="${build.jsr166e.classes.dir}"
965              debug="${build.debug}"              debug="${build.debug}"
966         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
967        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
968             source="${pretiger.sourcelevel}"             source="${build.jsr166e.java.version}"
969               classpath=""
970               includeAntRuntime="false"
971               includeJavaRuntime="false"
972               executable="${build.jsr166e.javac}"
973               fork="true">               fork="true">
974    
975          <include name="jsr166e/**/*.java"/>
976          <compilerarg value="-XDignore.symbol.file=true"/>
977          <compilerarg value="-Xlint:all"/>
978        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
       <exclude name="**/Thread.java"/>  
979    
980      </javac>      </javac>
   
981    </target>    </target>
982    
983    <target name="pretiger" depends="compile-pretiger">    <!-- jsr166e: find doclint errors -->
984      <target name="jsr166edoclint">
     <mkdir dir="${build.lib.dir}"/>  
   
     <jar destfile="${pretiger.jar}">  
       <fileset dir="${build.pretiger.dir}">  
       </fileset>  
     </jar>  
   
   </target>  
   
   <!-- jsr166x -->  
   
   
   <target name="jsr166xcompile"  
           depends="init, configure-compiler"  
           description="Compiles jsr166x sources">  
985    
986      <mkdir dir="${build.jsr166x.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
987    
988      <javac srcdir="${jsr166xsrc.dir}"      <javac srcdir="${topsrc.dir}"
989            destdir="${build.jsr166x.dir}"             destdir="${build.jsr166e.classes.dir}"
990              debug="${build.debug}"              debug="${build.debug}"
991         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
992        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
993             source="${build.sourcelevel}"             source="${build.jsr166e.java.version}"
994               classpath=""
995               bootclasspath="${bootclasspath7}"
996               includeAntRuntime="false"
997               includeJavaRuntime="false"
998               executable="${javac8}"
999               fork="true">               fork="true">
1000    
1001        <include name="**/*.java"/>        <include name="jsr166e/**/*.java"/>
1002        <compilerarg line="${build.args}"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1003          <compilerarg value="-Xlint:all"/>
1004          <compilerarg value="-Xdoclint:all/protected"/>
1005    
1006      </javac>      </javac>
   
1007    </target>    </target>
1008    
1009    
1010      <target name="jsr166ejar"
1011    <target name="jsr166xjar"            depends="jsr166ecompile"
           depends="jsr166xcompile"  
1012            description="Builds library jar from compiled sources">            description="Builds library jar from compiled sources">
1013    
1014      <mkdir dir="${build.jsr166xlib.dir}"/>      <jar destfile="${jsr166e.jar}" index="true">
1015          <fileset dir="${build.jsr166e.classes.dir}"/>
     <jar destfile="${jsr166xproduct.jar}">  
       <fileset dir="${build.jsr166x.dir}"/>  
1016      </jar>      </jar>
1017    
1018    </target>    </target>
1019    
1020    
1021      <target name="jsr166edocs"
1022              description="Builds javadocs to build dir">
1023    
1024    <target name="jsr166xdocs"      <delete dir="${jsr166edocs.dir}"/>
1025            description="Builds javadocs with custom tags to build folder">      <mkdir dir="${jsr166edocs.dir}"/>
   
     <delete dir="${build.jsr166xjavadocs.dir}"/>  
     <mkdir dir="${build.jsr166xjavadocs.dir}"/>  
   
     <javadoc destdir="${build.jsr166xjavadocs.dir}"  
                 link="http://java.sun.com/j2se/1.5.0/docs/api/"  
     >  
       <packageset dir="${topsrc.dir}" defaultexcludes="yes">  
       <include name="jsr166x"/>  
       </packageset>  
1026    
1027        <javadoc destdir="${jsr166edocs.dir}"
1028                 packagenames="jsr166e.*"
1029                 link="${java.api.url}"
1030                 access="${build.javadoc.access}"
1031                 sourcepath="${topsrc.dir}:${jdk6src.dir}"
1032                 source="${build.jsr166e.java.version}"
1033                 executable="${javadoc7}">
1034          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1035          <arg value="-XDignore.symbol.file=true"/>
1036    
1037      </javadoc>      </javadoc>
   
1038    </target>    </target>
1039    
1040    
1041    <target name="jsr166xdist"    <target name="jsr166e-test-tck-one-java-version"
1042            depends="jsr166xdist-clean, jsr166xdist-jar, jsr166xdist-docs"            depends="jsr166ejar">
           description="Puts all distributable products in single hierarchy"/>  
   
1043    
1044        <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
1045    
1046    <target name="jsr166xclean"      <run-tck-tests
1047            description="Removes all build products">        tck.src.dir="${test.src.dir}/tck-jsr166e"
1048          target="${build.jsr166e.java.version}"
1049      <delete dir="${build.jsr166x.dir}"/>        workdir="${build.jsr166e.dir}"
1050      <delete dir="${build.jsr166xlib.dir}"/>        classes="${jsr166e.jar}"/>
   
1051    </target>    </target>
1052    
1053      <target name="jsr166e-test-tck"
1054              description="Runs tck tests for jsr166e for multiple java versions">
1055    
1056    <!--     <antcall target="clean"/> -->
1057    <!--     <antcall target="jsr166e-test-tck-one-java-version"> -->
1058    <!--       <param name="build.jsr166e.java.version" value="8"/> -->
1059    <!--       <param name="build.jsr166e.javac" value="${javac8}"/> -->
1060    <!--     </antcall> -->
1061    
1062    <target name="jsr166xdist-clean"      <antcall target="clean"/>
1063            description="Removes all build and distribution products">      <antcall target="jsr166e-test-tck-one-java-version">
1064          <param name="build.jsr166e.java.version" value="7"/>
1065          <param name="build.jsr166e.javac" value="${javac7}"/>
1066        </antcall>
1067    
1068        <antcall target="clean"/>
1069        <antcall target="jsr166e-test-tck-one-java-version">
1070          <param name="build.jsr166e.java.version" value="6"/>
1071          <param name="build.jsr166e.javac" value="${javac6}"/>
1072        </antcall>
1073    </target>    </target>
1074    
1075    
1076      <target name="jsr166e-test"
1077              depends="jsr166e-test-tck"
1078              description="Runs all tests for jsr166e">
1079      </target>
1080    
1081    <target name="jsr166xdist-docs"    <target name="jsr166edist"
1082            description="Builds javadocs without custom tags to dist folder">            depends="jsr166edist-jar, jsr166edist-docs"
1083              description="Puts all distributable products in single hierarchy"/>
1084    
     <delete dir="${dist.jsr166xjavadocs.dir}"/>  
     <mkdir dir="${dist.jsr166xjavadocs.dir}"/>  
1085    
1086      <javadoc destdir="${dist.jsr166xjavadocs.dir}"    <target name="jsr166eclean"
1087                  link="http://java.sun.com/j2se/1.5.0/docs/api/"            description="Removes all jsr166e build products">
1088                source="${build.sourcelevel}">      <delete dir="${build.jsr166e.dir}"/>
1089      </target>
       <packageset dir="${topsrc.dir}" defaultexcludes="yes">  
       <include name="jsr166x"/>  
       </packageset>  
1090    
     </javadoc>  
1091    
1092      <target name="jsr166edist-jar"
1093              depends="jsr166eclean, jsr166ejar">
1094        <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1095    </target>    </target>
1096    
1097    <target name="jsr166xdist-jar"    <target name="jsr166edist-docs"
1098            depends="jsr166xclean, jsr166xjar">            depends="jsr166eclean, jsr166edocs">
1099        <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1100      </target>
1101    
     <copy file="${jsr166xproduct.jar}" todir="${dist.dir}"/>  
1102    
1103    <!-- Find buglets that can be detected by static build tools -->
1104    
1105      <target name="lint">
1106        <antcall target="dists">
1107          <param name="build.javadoc.access" value="private"/>
1108        </antcall>
1109    </target>    </target>
1110    
1111    
1112  </project>  </project>

Legend:
Removed from v.1.70  
changed lines
  Added in v.1.158

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8