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

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

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8