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

Diff of /jsr166/build.xml

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

revision 1.27 by tim, Wed May 28 00:33:17 2003 UTC revision 1.111 by jsr166, Sun Jan 20 03:34:23 2013 UTC
# Line 1  Line 1 
1  <project name="jsr166" default="usage">  <project name="jsr166" default="usage">
2    
3    <description>    <description>
4      Build file for JSR-166  ------------------------------------------------------------------------------
5      Build file for JSR-166
6    
7      JUnit 3.8 or better must be in ${ant.home}/lib for the test target to work.    Usage: ant [target]
8    </description>  
9      User-specific settings are read from user.properties.
10      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      where each of the above is a JDK or a symlink to same, and
20      $HOME/jdk/src/jdk6
21      $HOME/jdk/src/jdk7
22      $HOME/jdk/src/jdk8
23      where each of the above is a complete JDK source tree
24      (e.g. mercurial forest) or a symlink to same.
25    ------------------------------------------------------------------------------
26      </description>
27    
28    <target name="usage" description="Prints this message">    <target name="usage" description="Advises user to run with -projecthelp">
29      <echo>      <echo>Run "ant -projecthelp" for full usage information.</echo>
 ant [target], where target is one of:  
   
  usage       (default) Prints this message  
  compile     Compiles all sources to build folder  
  jar         Builds library jar from compiled sources  
  test        Runs all tests (requires JUnit 1.8 in ${ant.home}/lib)  
  docs        Builds javadocs with custom tags to build folder  
  dist-docs   Builds javadocs without custom tags to dist folder  
  dist        Puts all distributable products in single hierarchy  
   
  clean       Removes all build products  
  dist-clean  Removes all build and distribution products  
   
  checkstyle  Reports on style errors in Java source (verbose, mostly chaff)  
  doccheck    Reports on javadoc style errors (not working yet)  
     </echo>  
30    </target>    </target>
31    
32    
33    <!-- User-specific settings -->    <!-- User-specific settings -->
34    <property file="user.properties"/>    <property file="user.properties"/>
35    
   <!-- Set build.warnings in user.properties to turn on -warnunchecked -->  
   <!-- <property name="build.warnings" value=""/> -->  
   
36    
37    <!-- Compilation options -->    <!-- Compilation options -->
38    <property name="build.sourcelevel"    value="1.5"/>    <property name="build.sourcelevel"    value="1.6"/>
   <property name="build.docsourcelevel" value="1.4"/>  
39    <property name="build.debug"          value="true"/>    <property name="build.debug"          value="true"/>
40    <property name="build.debuglevel"     value="source,lines,vars"/>    <property name="build.debuglevel"     value="source,lines,vars"/>
41    <property name="build.deprecation"    value="false"/>    <property name="build.deprecation"    value="false"/>
42    
43    <!-- Build locations -->    <!-- Build locations -->
44    <property name="build.dir"            location="build"/>    <property name="build.dir"                   location="build"/>
45    <property name="build.classes.dir"    location="${build.dir}/classes"/>    <property name="build.classes.dir"           location="${build.dir}/classes"/>
46    <property name="build.emulation.dir"  location="${build.dir}/emulation"/>    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>
47    <property name="build.testcases.dir"  location="${build.dir}/testcases"/>    <property name="build.loops.dir"             location="${build.dir}/loops"/>
48    <property name="build.lib.dir"        location="${build.dir}/lib"/>    <property name="build.reports.dir"           location="${build.dir}/reports"/>
49    <property name="build.ant.dir"        location="${build.dir}/ant"/>  
50    <property name="build.javadocs.dir"   location="${build.dir}/javadocs"/>    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
51    <property name="build.stripped.dir"   location="${build.dir}/stripped"/>    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>
52    <property name="build.reports.dir"    location="${build.dir}/reports"/>    <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck/classes"/>
53    <property name="build.doccheck.dir"   location="${build.dir}/doccheck"/>    <property name="build.4jdk7.docs.dir"        location="${build.4jdk7.dir}/docs"/>
54    <property name="build.filter.src.dir" location="${build.dir}/filtersrc"/>  
55      <property name="build.jsr166x.dir"           location="${build.dir}/jsr166x"/>
56      <property name="build.jsr166y.dir"           location="${build.dir}/jsr166y"/>
57      <property name="build.jsr166e.dir"           location="${build.dir}/jsr166e"/>
58      <property name="build.extra166y.dir"         location="${build.dir}/extra166y"/>
59    
60      <!-- JDK binary locations -->
61      <property name="jdks.home"  location="${user.home}/jdk"/>
62    
63      <macrodef name="defjdklocations">
64        <attribute name="v"/>
65        <sequential>
66        <property name="jdk@{v}.home"   location="${jdks.home}/jdk@{v}"/>
67        <property name="java@{v}"       location="${jdk@{v}.home}/bin/java"/>
68        <property name="javac@{v}"      location="${jdk@{v}.home}/bin/javac"/>
69        <property name="javadoc@{v}"    location="${jdk@{v}.home}/bin/javadoc"/>
70        <property name="bootdir@{v}"    location="${jdk@{v}.home}/jre/lib"/>
71        <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/share/classes"/>
72        <property name="bootclasspath@{v}"
73         value="${bootdir@{v}}/resources.jar:${bootdir@{v}}/rt.jar:${bootdir@{v}}/jsse.jar:${bootdir@{v}}/jce.jar:${bootdir@{v}}/:${bootdir@{v}}/charsets.jar"/>
74        </sequential>
75      </macrodef>
76    
77      <defjdklocations v="6"/>
78      <defjdklocations v="7"/>
79      <defjdklocations v="8"/>
80    
81      <macrodef name="run-tck-tests">
82        <attribute name="jvm"/>
83        <attribute name="tck.classes"/>
84        <attribute name="product.jar" default="${product.jar}"/>
85        <attribute name="jvmflags" default=""/>
86        <sequential>
87        <java classname="JSR166TestCase"
88              jvm="@{jvm}" fork="true">
89            <jvmarg value="-Xbootclasspath/p:@{product.jar}"/>
90            <jvmarg line="@{jvmflags}"/>
91            <classpath>
92              <pathelement location="${junit.jar}"/>
93              <pathelement location="@{tck.classes}"/>
94            </classpath>
95        </java>
96        </sequential>
97      </macrodef>
98    
99    <!-- Source locations -->    <!-- Source locations -->
100    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
   <property name="emulation.src.dir"    location="${basedir}/src/emulation"/>  
101    <property name="test.src.dir"         location="${basedir}/src/test"/>    <property name="test.src.dir"         location="${basedir}/src/test"/>
102    <property name="ant.src.dir"          location="${basedir}/etc/ant"/>    <property name="loops.src.dir"        location="${basedir}/src/loops"/>
103    <property name="stylesheet.dir"       location="${basedir}/etc/xsl"/>    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>
104      <property name="jtreg.src.dir"        location="${test.src.dir}/jtreg"/>
105    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
106    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
107      <property name="topsrc.dir"           location="${basedir}/src"/>
108      <property name="4jdk7src.dir"         location="${topsrc.dir}/jdk7"/>
109      <property name="jsr166xsrc.dir"       location="${topsrc.dir}/jsr166x"/>
110      <property name="jsr166ysrc.dir"       location="${topsrc.dir}/jsr166y"/>
111      <property name="jsr166esrc.dir"       location="${topsrc.dir}/jsr166e"/>
112      <property name="extra166ysrc.dir"     location="${topsrc.dir}/extra166y"/>
113    
114    <!-- Distribution locations -->    <!-- Distribution locations -->
115    <property name="dist.javadocs.dir"    location="${dist.dir}/docs"/>    <property name="dist.javadocs.dir"          location="${dist.dir}/jsr166.docs"/>
116      <property name="dist.4jdk7.docs.dir"        location="${dist.dir}/jsr166-4jdk7.docs"/>
117      <property name="dist.jsr166xjavadocs.dir"   location="${dist.dir}/jsr166x.docs"/>
118      <property name="dist.jsr166yjavadocs.dir"   location="${dist.dir}/jsr166y.docs"/>
119      <property name="dist.jsr166ejavadocs.dir"   location="${dist.dir}/jsr166e.docs"/>
120      <property name="dist.extra166yjavadocs.dir" location="${dist.dir}/extra166y.docs"/>
121    
122    <!-- Jar locations -->    <!-- Jar locations -->
123    <property name="product.jar"          location="${build.lib.dir}/jsr166.jar"/>    <property name="product.jar"      location="${build.dir}/jsr166.jar"/>
124    <property name="javac.jar"            location="${lib.dir}/javac.jar"/>    <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>
125    <property name="collect.jar"          location="${lib.dir}/collect.jar"/>    <property name="jsr166x.jar"      location="${build.jsr166x.dir}/jsr166x.jar"/>
126    <property name="junit.jar"            location="${lib.dir}/junit.jar"/>    <property name="jsr166y.jar"      location="${build.jsr166y.dir}/jsr166y.jar"/>
127    <property name="rt.jar"               location="${java.home}/lib/rt.jar"/>    <property name="jsr166e.jar"      location="${build.jsr166e.dir}/jsr166e.jar"/>
128      <property name="extra166y.jar"    location="${build.extra166y.dir}/extra166y.jar"/>
129      <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
130    
131      <!-- Bootclasspath argument -->
132      <property name="bootclasspath.args"   value="-Xbootclasspath/p:${product.jar}"/>
133    
134      <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
135      <property name="jdkapi5docs.url"      value="http://docs.oracle.com/javase/1.5.0/docs/api/"/>
136      <property name="jdkapi6docs.url"      value="http://docs.oracle.com/javase/6/docs/api/"/>
137      <property name="jdkapi7docs.url"      value="http://docs.oracle.com/javase/7/docs/api/"/>
138    
139      <property name="jdkapi8docs.url"      value="http://download.java.net/jdk8/docs/api/"/>
140      <!-- The below does not yet exist as of 2012-11 -->
141      <!-- <property name="jdkapi8docs.url" value="http://docs.oracle.com/javase/8/docs/api/"/> -->
142    
143      <!-- Default jdk api doc location (latest stable release seems best) -->
144      <property name="jdkapidocs.url"       value="${jdkapi7docs.url}"/>
145    
146    <!--    <!-- Test classpath -->
147     ! Bootclasspath munging for source compilation.    <path id="test.classpath">
148     -->      <pathelement location="${build.testcases.dir}"/>
149        <pathelement location="${junit.jar}"/>
   <path id="javac.bootclasspath.prepend">  
     <!-- <pathelement location="${src.dir}"/> -->  
     <pathelement location="${javac.jar}"/>  
150    </path>    </path>
151    
152    <path id="javac.bootclasspath">    <!-- ALoops classpath -->
153      <!-- <pathelement location="${src.dir}"/> -->    <path id="loops.classpath">
154      <pathelement location="${collect.jar}"/>      <pathelement location="${build.loops.dir}"/>
     <pathelement location="${rt.jar}"/>  
155    </path>    </path>
156    
157    <!-- Flatten bootclasspath prefix into a platform-appropriate string -->    <!-- Support @jls tag, used in jdk8+ javadoc -->
158    <property name="javac.bootclasspath.prepend" refid="javac.bootclasspath.prepend"/>    <!-- TODO: How do we get &trade to work? -->
159      <!-- TODO: Why isn't @jls a "standard" tag? -->
160      <!--   property name="javadoc.jls.cite" value="The Java&trade; Language Specification" -->
161      <property name="javadoc.jls.cite" value="The Java Language Specification"/>
162      <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
163    
164    <!-- Turn the flattened bootclasspath prefix into a javac argument -->    <!-- Main targets -->
   <property name="javac.args" value='-J-Xbootclasspath/p:${javac.bootclasspath.prepend}'/>  
165    
166      <target name="dists"
167              depends="dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
168              description="Builds all public jars and docs"/>
169    
170      <target name="compile"
171              depends="configure-compiler"
172              description="Compiles src/main sources to build dir">
173    
174    <!--      <mkdir dir="${build.classes.dir}"/>
    ! Bootclasspath munging for testing, so JUnit can test our local  
    ! modifications to java.*.  
    -->  
175    
176    <path id="test.classpath">      <javac srcdir="${src.dir}"
177      <pathelement location="${product.jar}"/>             destdir="${build.classes.dir}"
178      <pathelement location="${build.testcases.dir}"/>             debug="${build.debug}"
179      <pathelement location="${junit.jar}"/>             debuglevel="${build.debuglevel}"
180    </path>             deprecation="${build.deprecation}"
181               classpath=""
182               includeAntRuntime="false"
183               includeJavaRuntime="false"
184               executable="${javac8}"
185               fork="true">
186    
187          <include name="**/*.java"/>
188          <compilerarg line="${build.args}"/>
189          <compilerarg value="-XDignore.symbol.file=true"/>
190          <compilerarg value="-Xlint:all"/>
191    
192    <!--
193          <exclude name="java/lang/**"/>
194          <compilerarg line="${build.args}"/>
195          <compilerarg line="-Xlint -Xmaxwarns 1000"/>
196    -->
197    
198    <!-- Flatten test classpath into a platform-appropriate string -->      </javac>
   <property name="test.classpath" refid="test.classpath"/>  
199    
200    <!-- Turn the flattened test classpath into a javac argument -->    </target>
   <property name="test.javac.args" value='-Xbootclasspath/p:${test.classpath}'/>  
201    
202    
203    
204    <!-- Main targets -->    <target name="jar"
205              depends="compile"
206              description="Builds library jar from compiled sources">
207    
208    <target name="compile" depends="init"      <jar destfile="${product.jar}">
209            description="Compiles main sources to build folder">        <fileset dir="${build.classes.dir}"/>
210        </jar>
211    
212      <mkdir dir="${build.classes.dir}"/>    </target>
213    
214      <javac srcdir="${src.dir}"  
215            destdir="${build.classes.dir}"  
216      <target name="test"
217              depends="configure-tests, report-tests"
218              description="Runs all tests (requires JUnit 3.8.1 in ${ant.home}/lib)" />
219    
220    
221    
222      <target name="docs"
223              description="Builds javadocs for src/main to dist dir">
224    
225        <delete dir="${dist.javadocs.dir}"/>
226        <mkdir dir="${dist.javadocs.dir}"/>
227    
228        <!-- the packagenames="none" hack below prevents scanning the -->
229        <!-- sourcepath for packages -->
230    
231        <javadoc destdir="${dist.javadocs.dir}"
232                 packagenames="none"
233                 link="${jdkapi8docs.url}"
234                 overview="${src.dir}/intro.html"
235                 sourcepath="${src.dir}:${jdk8src.dir}"
236                 classpath=""
237                 executable="${javadoc8}">
238          <arg value="-XDignore.symbol.file=true"/>
239          <arg value="-tag"/>
240          <arg value="${javadoc.jls.option}"/>
241          <fileset dir="${src.dir}" defaultexcludes="yes">
242            <include name="**/*.java"/>
243          </fileset>
244        </javadoc>
245    
246      </target>
247    
248    
249    
250      <target name="dist"
251              depends="dist-clean, dist-jar, docs"
252              description="Puts all distributable products in single hierarchy"/>
253    
254    
255      <target name="release"
256              depends="dist"
257              description="Puts entire CVS tree, plus distribution productions, in a jar">
258    
259        <property name="release.jar" value="dist/jsr166-${version}-dist.jar"/>
260    
261        <jar basedir="${basedir}" destfile="${release.jar}">
262          <!-- <exclude name="build/**"/> -->
263          <exclude name="${release.jar}"/>
264          <exclude name="user.properties"/>
265          <exclude name="etc/notes/**"/>
266          <exclude name="src/emulation/**"/>
267          <exclude name="**/SyntaxTest.java"/>
268          <exclude name="**/SuperfluousAbstract.java"/>
269        </jar>
270    
271      </target>
272    
273    
274    
275      <target name="clean"
276              description="Removes all build products">
277    
278        <delete dir="${build.dir}"/>
279    
280      </target>
281    
282    
283    
284      <target name="dist-clean"
285              description="Removes all build and distribution products">
286    
287        <delete dir="${dist.dir}"/>
288    
289      </target>
290    
291    
292    
293      <!-- Internal targets -->
294    
295    
296      <target name="dist-jar"
297              depends="clean, jar">
298    
299        <copy file="${product.jar}" todir="${dist.dir}"/>
300    
301      </target>
302    
303    
304      <target name="compile-tests"
305              depends="jar">
306    
307        <mkdir dir="${build.testcases.dir}"/>
308    
309        <javac srcdir="${tck.src.dir}"
310               destdir="${build.testcases.dir}"
311               debug="${build.debug}"
312               debuglevel="${build.debuglevel}"
313               deprecation="${build.deprecation}"
314               source="6"
315               classpath="${junit.jar}"
316               bootclasspath="${product.jar}:${bootclasspath6}"
317               includeAntRuntime="false"
318               includeJavaRuntime="false"
319               executable="${javac8}"
320               fork="true">
321    
322          <include name="**/*.java"/>
323          <compilerarg line="${build.args}"/>
324          <compilerarg value="-XDignore.symbol.file=true"/>
325          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
326    
327          <classpath refid="test.classpath"/>
328    
329        </javac>
330    
331        <javac srcdir="${test.src.dir}"
332               destdir="${build.testcases.dir}"
333               debug="${build.debug}"
334               debuglevel="${build.debuglevel}"
335               deprecation="${build.deprecation}"
336               source="6"
337               classpath="${junit.jar}"
338               bootclasspath="${product.jar}:${bootclasspath6}"
339               includeAntRuntime="false"
340               includeJavaRuntime="false"
341               executable="${javac8}"
342               fork="true">
343    
344          <include name="jsr166/test/**/*.java"/>
345    
346          <compilerarg line="${build.args}"/>
347          <compilerarg value="-XDignore.symbol.file=true"/>
348          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
349    
350          <classpath refid="test.classpath"/>
351    
352        </javac>
353    
354    <!--
355        <javac srcdir="${jtreg.src.dir}"
356              destdir="${build.testcases.dir}"
357              debug="${build.debug}"              debug="${build.debug}"
358         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
359        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
360             source="${build.sourcelevel}"             source="${build.sourcelevel}"
361               fork="true">               fork="true">
362    
363        <bootclasspath refid="javac.bootclasspath"/>        <compilerarg value="${bootclasspath.args}"/>
364        <compilerarg line="${javac.args} ${build.warnings.option}"/>        <compilerarg line="${build.args}"/>
365          <compilerarg value="-XDignore.symbol.file=true"/>
366    
367          <classpath refid="test.classpath"/>
368    
369      </javac>      </javac>
370    -->
371    
372    </target>    </target>
373    
374    
375    <target name="jar" depends="native-jar, emulation-jar"/>    <target name="run-tests"
376              depends="compile-tests">
377    
378        <!-- May be overridden by user.properties -->
379        <property name="testcase" value="*"/>
380    
381        <mkdir dir="${build.reports.dir}"/>
382    
383        <junit printsummary="true"
384                 showoutput="true"
385              errorProperty="junit.failed"
386            failureProperty="junit.failed"
387                        dir="${build.reports.dir}"
388                        jvm="${java8}"
389                       fork="true">
390    
391          <jvmarg value="-Xbootclasspath/p:${product.jar}"/>
392          <jvmarg value="-server"/>
393          <jvmarg value="-showversion"/>
394    
395          <classpath refid="test.classpath"/>
396    
397          <formatter type="xml"/>
398    
399          <batchtest todir="${build.reports.dir}" unless="no.test.tck">
400            <fileset dir="${tck.src.dir}">
401              <include name="**/${testcase}Test.java"/>
402            </fileset>
403          </batchtest>
404    
405          <batchtest todir="${build.reports.dir}" if="do.test.old">
406            <fileset dir="${test.src.dir}">
407              <include name="jsr166/test/**/${testcase}Test.java"/>
408            </fileset>
409          </batchtest>
410    
411    <!--
412          <batchtest todir="${build.reports.dir}" if="do.test.jtreg">
413            <fileset dir="${jtreg.src.dir}">
414              <include name="**/${testcase}Test.java"/>
415            </fileset>
416          </batchtest>
417    -->
418    
419        </junit>
420    
421      </target>
422    
   <target name="test" depends="init, check-junit, report-tests"  
           description="Runs all tests (requires JUnit 3.8+ in ${ant.home}/lib)"  
   />  
423    
424      <target name="report-tests"
425              depends="run-tests">
426    
427    <target name="checkstyle" depends="filter-src"      <!-- Sets junit.report.format to frames if redirection is present,
428            description="Reports on style errors in Java source (verbose, mostly chaff)">           otherwise sets it to noframes. -->
429        <available property="junit.report.format"
430                      value="frames"
431                  classname="org.apache.xalan.lib.Redirect"
432        />
433        <property name="junit.report.format" value="noframes"/>
434    
435      <taskdef resource="checkstyletask.properties"      <junitreport todir="${build.reports.dir}">
436              classpath="${lib.dir}/checkstyle-all-2.4.jar"/>        <fileset dir="${build.reports.dir}">
437            <include name="TEST-*.xml"/>
438          </fileset>
439          <report format="${junit.report.format}" todir="${build.reports.dir}"
440          />
441        </junitreport>
442    
443      <checkstyle>      <fail message="Test Cases Failed" if="junit.failed"/>
       <formatter type="plain"/>  <!-- also available: type="xml" -->  
       <fileset dir="${build.filter.src.dir}" includes="**/*.java"/>  
     </checkstyle>  
444    
445    </target>    </target>
446    
447    
448    <target name="doccheck" depends="filter-src"    <target name="configure-compiler">
           description="Reports on javadoc style errors (not working yet)">  
449    
450      <delete dir="${build.doccheck.dir}"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
     <mkdir dir="${build.doccheck.dir}"/>  
451    
452      <javadoc doclet="com.sun.tools.doclets.doccheck.DocCheck"      <condition property="warnunchecked.arg" value="${unchecked.option}">
453           docletpath="${lib.dir}/doccheck.jar"        <istrue value="${build.warnunchecked}"/>
454              destdir="${build.doccheck.dir}">      </condition>
455        <packageset dir="${build.filter.src.dir}"/>  
456      </javadoc>      <property name="warnunchecked.arg" value=""/>
457    
458    
459        <!-- Common options in javac invocations -->
460        <property name="build.args" value="${warnunchecked.arg}"/>
461    
462    </target>    </target>
463    
464    
465    <target name="docs" depends="filter-src"    <target name="configure-tests"
466            description="Builds javadocs with custom tags to build folder">         depends="configure-compiler">
467    
468      <delete dir="${build.javadocs.dir}"/>      <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->
469      <mkdir dir="${build.javadocs.dir}"/>      <available property="junit.available"
470                   classname="junit.framework.Protectable"/>
471    
472      <javadoc destdir="${build.javadocs.dir}"      <!-- Xalan -->
473                  link="http://java.sun.com/j2se/1.4.1/docs/api"      <available property="xalan.available"
474              overview="${src.dir}/intro.html"                 classname="org.apache.xalan.Version"/>
               source="${build.docsourcelevel}">  
   
       <tag name="revised" description="Last revised:"/>  
       <tag name="spec" description="Specified by:"/>  
       <tag name="editor" description="Last edited by:"/>  
       <tag name="fixme" description="FIX ME:"/>  
       <packageset dir="${build.filter.src.dir}"/>  
475    
476      </javadoc>  
477        <!-- Ant 1.6beta and later don't need or want this check -->
478        <!--
479        <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests"
480              unless="junit.available"/>
481    
482        <fail message="Need Xalan 2.5.1 jar in ${ant.home}${file.separator}lib to run tests"
483              unless="xalan.available"/>
484        -->
485    
486    </target>    </target>
487    
488    
489    <!--    <!-- Various demos and test programs -->
    # javac -s doesn't reliably generate compilable code. It generates  
    # bridge methods (marked as "synthetic") that can have identical  
    # signatures to existing methods except for the return value.  
    -->  
   <target name="strip" depends="init">  
490    
     <mkdir dir="${build.stripped.dir}"/>  
491    
492      <javac srcdir="${src.dir}"    <target name="loops" depends="configure-compiler"
493            destdir="${build.stripped.dir}"            description="Benchmark from Doug Lea's AQS paper">
494    
495        <mkdir dir="${build.loops.dir}"/>
496    
497        <javac srcdir="${loops.src.dir}"
498              destdir="${build.loops.dir}"
499              debug="${build.debug}"              debug="${build.debug}"
500         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
501        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
502             source="${build.sourcelevel}"             source="${build.sourcelevel}"
503               fork="true">               fork="true">
504    
505        <bootclasspath refid="javac.bootclasspath"/>        <compilerarg line="${build.args}"/>
506        <compilerarg line="${javac.args} ${build.warnings.option} -s"/>        <classpath refid="loops.classpath"/>
507          <compilerarg value="-XDignore.symbol.file=true"/>
508    
509        </javac>
510    
511        <java classname="ALoops" fork="true">
512          <classpath refid="loops.classpath"/>
513        </java>
514    
515      </target>
516    
517    
518      <!-- jsr166 4jdk7 -->
519    
520    
521      <target name="4jdk7compile"
522              depends="configure-compiler"
523              description="Compiles src/jdk7 sources, targeting jdk7">
524    
525        <mkdir dir="${build.4jdk7.classes.dir}"/>
526    
527        <javac srcdir="${4jdk7src.dir}"
528               destdir="${build.4jdk7.classes.dir}"
529               debug="${build.debug}"
530               debuglevel="${build.debuglevel}"
531               deprecation="${build.deprecation}"
532               source="6"
533               classpath=""
534               bootclasspath="${bootclasspath6}"
535               includeAntRuntime="false"
536               includeJavaRuntime="false"
537               executable="${javac7}"
538               fork="true">
539    
540          <include name="**/*.java"/>
541          <compilerarg line="${build.args}"/>
542          <compilerarg value="-XDignore.symbol.file=true"/>
543          <compilerarg value="-Xlint:all"/>
544    
545        </javac>
546    
547        <jar destfile="${4jdk7product.jar}" index="true">
548          <fileset dir="${build.4jdk7.classes.dir}"/>
549        </jar>
550    
551        <mkdir dir="${build.4jdk7.tck.classes.dir}"/>
552    
553        <javac srcdir="${tck.src.dir}"
554               destdir="${build.4jdk7.tck.classes.dir}"
555               debug="${build.debug}"
556               debuglevel="${build.debuglevel}"
557               deprecation="${build.deprecation}"
558               source="6"
559               classpath="${junit.jar}"
560               bootclasspath="${4jdk7product.jar}:${bootclasspath6}"
561               includeAntRuntime="false"
562               includeJavaRuntime="false"
563               executable="${javac7}"
564               fork="true">
565    
566          <include name="**/*.java"/>
567          <compilerarg line="${build.args}"/>
568          <compilerarg value="-XDignore.symbol.file=true"/>
569          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
570    
571      </javac>      </javac>
572    
573    </target>    </target>
574    
575    
576    <target name="dist" depends="init, dist-clean, dist-jar, dist-docs"    <target name="4jdk7-test-tck"
577              depends="4jdk7compile"
578              description="Runs tck tests for jsr166-4jdk7 directly">
579        <run-tck-tests
580          jvm="${java7}"
581          tck.classes="${build.4jdk7.tck.classes.dir}"
582          product.jar="${4jdk7product.jar}"/>
583      </target>
584    
585    
586      <target name="4jdk7-test-tck-junit"
587              depends="4jdk7compile"
588              description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">
589    
590        <junit printsummary="true"
591               showoutput="true"
592               errorProperty="junit.failed"
593               failureProperty="junit.failed"
594               includeantruntime="true"
595               jvm="${java7}"
596               fork="true">
597    
598          <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
599          <jvmarg value="-server"/>
600    
601          <classpath>
602            <pathelement location="${junit.jar}"/>
603            <pathelement location="${build.4jdk7.tck.classes.dir}"/>
604          </classpath>
605    
606          <formatter type="brief"/>
607    
608          <test name="JSR166TestCase" haltonfailure="no">
609          </test>
610    
611        </junit>
612      </target>
613    
614    
615      <target name="4jdk7docs"
616              description="Builds javadocs for src/jdk7 to dist dir">
617    
618        <delete dir="${dist.4jdk7.docs.dir}"/>
619        <mkdir dir="${dist.4jdk7.docs.dir}"/>
620    
621        <javadoc destdir="${dist.4jdk7.docs.dir}"
622                 packagenames="none"
623                 link="${jdkapi7docs.url}"
624                 overview="${4jdk7src.dir}/intro.html"
625                 sourcepath="${4jdk7src.dir}:${jdk7src.dir}"
626                 classpath=""
627                 executable="${javadoc7}">
628          <arg value="-XDignore.symbol.file=true"/>
629          <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
630            <include name="**/*.java"/>
631          </fileset>
632        </javadoc>
633    
634      </target>
635    
636    
637      <target name="4jdk7dist"
638              depends="4jdk7dist-clean, 4jdk7dist-jar, 4jdk7docs"
639            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
640    
641    
   <target name="clean"  
           description="Removes all build products">  
642    
643      <delete dir="${build.dir}"/>    <target name="4jdk7clean"
644      <delete dir="${build.classes.dir}"/>            description="Removes all 4jdk7 build products">
645      <delete dir="${build.lib.dir}"/>  
646        <delete dir="${build.4jdk7.dir}"/>
647    
648    </target>    </target>
649    
650    
651    <target name="dist-clean"  
652      <target name="4jdk7dist-clean"
653            description="Removes all build and distribution products">            description="Removes all build and distribution products">
654    
655      <delete dir="${dist.dir}"/>    </target>
656    
657      <target name="4jdk7dist-jar"
658              depends="4jdk7clean, 4jdk7compile">
659    
660        <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
661    
662    </target>    </target>
663    
664    
665    <!-- Anthill targets -->    <!-- jsr166x -->
666    
667    <!-- Should really run the tests instead of just the jar target -->    <target name="jsr166xcompile"
668    <target name="anthill-build" depends="jar, test, docs, dist-docs"/>            depends="configure-compiler"
669              description="Compiles jsr166x sources to build dir">
670    
671        <mkdir dir="${build.jsr166x.dir}"/>
672    
673        <javac srcdir="${topsrc.dir}"
674               destdir="${build.jsr166x.dir}"
675               debug="${build.debug}"
676               debuglevel="${build.debuglevel}"
677               deprecation="${build.deprecation}"
678               classpath=""
679               source="5"
680               bootclasspath="${bootclasspath6}"
681               includeAntRuntime="false"
682               includeJavaRuntime="false"
683               executable="${javac7}"
684               fork="true">
685    
686          <include name="jsr166x/**/*.java"/>
687          <compilerarg line="${build.args}"/>
688          <compilerarg value="-XDignore.symbol.file=true"/>
689          <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
690    
691        </javac>
692    
   <target name="anthill-publish">  
     <copy todir="${deployDir}/docs/private">  
       <fileset dir="${build.javadocs.dir}"/>  
     </copy>  
     <copy todir="${deployDir}/docs/public">  
       <fileset dir="${dist.javadocs.dir}"/>  
     </copy>  
     <copy tofile="${deployDir}/index.html"  
           file="${basedir}/etc/anthill-index.html"/>  
     <copy todir="${deployDir}/notes">  
       <fileset dir="${basedir}/etc/notes"/>  
     </copy>  
693    </target>    </target>
694    
695    
   <!-- Internal targets -->  
696    
697    <target name="set-warnings-if" if="build.warnings">    <target name="jsr166xjar"
698              depends="jsr166xcompile"
699              description="Builds library jar from compiled sources">
700    
701      <property name="build.warnings.option" value="-warnunchecked"/>      <jar destfile="${jsr166x.jar}">
702          <fileset dir="${build.jsr166x.dir}"/>
703        </jar>
704    
705    </target>    </target>
706    
707    
   <target name="set-warnings-unless" unless="build.warnings">  
708    
709      <property name="build.warnings.option" value=""/>    <target name="jsr166xdocs"
710              description="Builds javadocs to dist dir">
711    
712        <delete dir="${dist.jsr166xjavadocs.dir}"/>
713        <mkdir dir="${dist.jsr166xjavadocs.dir}"/>
714    
715        <javadoc destdir="${dist.jsr166xjavadocs.dir}"
716                 packagenames="jsr166x.*"
717                 link="${jdkapidocs.url}"
718                 source="5"
719                 bootclasspath="${bootclasspath6}"
720                 sourcepath="${topsrc.dir}:${jdk6src.dir}"
721                 executable="${javadoc7}"
722                 additionalparam="-XDignore.symbol.file=true" />
723    
724    </target>    </target>
725    
726    
727    <target name="init" depends="set-warnings-if, set-warnings-unless">    <target name="jsr166xdist"
728              depends="jsr166xdist-clean, jsr166xdist-jar, jsr166xdocs"
729              description="Puts all distributable products in single hierarchy"/>
730    
731    
732    
733      <!-- Version is kept in a separate file -->    <target name="jsr166xclean"
734      <loadfile property="version" srcFile="version.properties"/>            description="Removes all jsr166x build products">
735      <echo>Building JSR-166 version ${version}</echo>  
736        <delete dir="${build.jsr166x.dir}"/>
737    
738    </target>    </target>
739    
740    
   <target name="native-jar" depends="compile"  
           description="Builds library jar from compiled sources">  
741    
742      <mkdir dir="${build.lib.dir}"/>    <target name="jsr166xdist-clean"
743              description="Removes all build and distribution products">
744    
745      </target>
746    
747      <jar destfile="${product.jar}">  
748        <fileset dir="${build.classes.dir}"/>    <target name="jsr166xdist-jar"
749      </jar>            depends="jsr166xclean, jsr166xjar">
750    
751        <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
752    
753    </target>    </target>
754    
755      <!-- jsr166y -->
756    
   <target name="compile-emulation" depends="init"  
           if="build.emulation"  
           description="Compiles emulation sources to build folder">  
757    
758      <mkdir dir="${build.emulation.dir}"/>    <target name="jsr166ycompile"
759              depends="configure-compiler"
760              description="Compiles jsr166y sources">
761    
762      <javac srcdir="${emulation.src.dir}"      <mkdir dir="${build.jsr166y.dir}"/>
           destdir="${build.emulation.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
763    
764        <bootclasspath refid="javac.bootclasspath"/>      <javac srcdir="${topsrc.dir}"
765        <compilerarg line="${javac.args} ${build.warnings.option}"/>             destdir="${build.jsr166y.dir}"
766               debug="${build.debug}"
767               debuglevel="${build.debuglevel}"
768               deprecation="${build.deprecation}"
769               source="6"
770               classpath=""
771               bootclasspath="${bootclasspath6}"
772               includeAntRuntime="false"
773               includeJavaRuntime="false"
774               executable="${javac7}"
775               fork="true">
776    
777          <include name="jsr166y/**/*.java"/>
778          <compilerarg line="${build.args}"/>
779          <compilerarg value="-XDignore.symbol.file=true"/>
780          <compilerarg value="-Xlint:all"/>
781      </javac>      </javac>
   
782    </target>    </target>
783    
784    
785    <target name="emulation-jar" depends="native-jar, compile-emulation"    <target name="jsr166yjar"
786            if="build.emulation">            depends="jsr166ycompile"
787              description="Builds library jar from compiled sources">
788    
789      <jar destfile="${product.jar}" update="true" duplicate="add">      <jar destfile="${jsr166y.jar}" index="true">
790        <fileset dir="${build.emulation.dir}"/>        <fileset dir="${build.jsr166y.dir}"/>
791      </jar>      </jar>
792    
793    </target>    </target>
794    
795    
   <target name="dist-jar" depends="clean, jar">  
796    
797      <copy file="${product.jar}" todir="${dist.dir}"/>    <target name="jsr166ydocs"
798              description="Builds javadocs to dist dir">
799    
800        <delete dir="${dist.jsr166yjavadocs.dir}"/>
801        <mkdir dir="${dist.jsr166yjavadocs.dir}"/>
802    
803        <javadoc destdir="${dist.jsr166yjavadocs.dir}"
804                 packagenames="jsr166y.*"
805                 link="${jdkapidocs.url}"
806                 source="6"
807                 bootclasspath="${bootclasspath6}"
808                 sourcepath="${topsrc.dir}:${jdk6src.dir}"
809                 executable="${javadoc7}"
810                 additionalparam="-XDignore.symbol.file=true" />
811    
812    </target>    </target>
813    
814    
815    <target name="dist-docs" depends="filter-src"    <target name="jsr166ydist"
816            description="Builds javadocs without custom tags to dist folder">            depends="jsr166ydist-clean, jsr166ydist-jar, jsr166ydocs"
817              description="Puts all distributable products in single hierarchy"/>
818    
     <delete dir="${dist.javadocs.dir}"/>  
     <mkdir dir="${dist.javadocs.dir}"/>  
819    
     <javadoc destdir="${dist.javadocs.dir}"  
                 link="http://java.sun.com/j2se/1.4.1/docs/api"  
             overview="${src.dir}/intro.html"  
               source="${build.docsourcelevel}">  
820    
821        <packageset dir="${build.filter.src.dir}"/>    <target name="jsr166yclean"
822              description="Removes all jsr166y build products">
823    
824      </javadoc>      <delete dir="${build.jsr166y.dir}"/>
825    
826    </target>    </target>
827    
828    
   <target name="compile-ant-filter" depends="init">  
829    
830      <mkdir dir="${build.ant.dir}"/>    <target name="jsr166ydist-clean"
831              description="Removes all build and distribution products">
832    
833      <javac srcdir="${ant.src.dir}"    </target>
834            destdir="${build.ant.dir}"  
835             source="1.4"    <target name="jsr166ydist-jar"
836      />            depends="jsr166yclean, jsr166yjar">
837    
838        <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
839    
840    </target>    </target>
841    
842    
843    <target name="filter-src" depends="compile-ant-filter">    <!-- extra166y -->
844    
     <mkdir dir="${build.filter.src.dir}"/>  
845    
846      <copy todir="${build.filter.src.dir}">    <target name="extra166ycompile"
847        <fileset dir="${src.dir}">            depends="configure-compiler, jsr166yjar"
848          <include name="**/*.java"/>            description="Compiles extra166y sources">
849          <exclude name="**/Random.java"/>  
850          <exclude name="**/Unsafe.java"/>      <mkdir dir="${build.extra166y.dir}"/>
851        </fileset>  
852        <filterchain>      <javac srcdir="${topsrc.dir}"
853          <filterreader classname="jsr166.ant.filters.ReplaceFilter"             destdir="${build.extra166y.dir}"
854                        classpath="${build.ant.dir}">             debug="${build.debug}"
855            <!--             debuglevel="${build.debuglevel}"
856             # These arguments are to get rid of angle-bracketed type             deprecation="${build.deprecation}"
857             # parameters so that javadoc can run on the result. The             classpath=""
858             # following heuristic that seems to work:             source="6"
859             #             bootclasspath="${jsr166y.jar}:${bootclasspath6}"
860             # For all lines not starting with space(s)-asterisk-space(s),             includeAntRuntime="false"
861             #   replace <something> with a space, where there may be more             includeJavaRuntime="false"
862             #   than one right angle bracket at the end, and "something"             executable="${javac7}"
863             #   must not contain parens or pipes. (This may need some             fork="true">
864             #   tweaking.)  
865             -->        <include name="extra166y/**/*.java"/>
866            <param name="notmatching" value="^\s+\*\s.*$"/>        <compilerarg line="${build.args}"/>
867            <param name="pattern" value="&lt;[^|>()]+?>+"/>        <compilerarg value="-XDignore.symbol.file=true"/>
868            <param name="replacement" value=" "/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
869          </filterreader>  
870          <filterreader classname="jsr166.ant.filters.ReplaceFilter"      </javac>
                       classpath="${build.ant.dir}">  
           <!--  
            # These arguments are to uncomment lines beginning with  
            # "//@" so that javadoc can see imports that are needed  
            # to resolve links but that shouldn't be in the compiled  
            # code.  
            -->  
           <param name="matching" value="^//@.*$"/>  
           <param name="pattern" value="^//@"/>  
           <param name="replacement" value=""/>  
         </filterreader>  
       </filterchain>  
     </copy>  
871    
872    </target>    </target>
873    
874    
   <target name="compile-tests" depends="jar">  
875    
876      <mkdir dir="${build.testcases.dir}"/>    <target name="extra166yjar"
877              depends="extra166ycompile"
878              description="Builds library jar from compiled sources">
879    
880      <javac srcdir="${test.src.dir}"      <jar destfile="${extra166y.jar}" index="true">
881            destdir="${build.testcases.dir}"        <fileset dir="${build.extra166y.dir}"/>
882              debug="${build.debug}"      </jar>
883         debuglevel="${build.debuglevel}"  
884        deprecation="${build.deprecation}"    </target>
885             source="${build.sourcelevel}"  
886               fork="true">  
887    
888      <target name="extra166ydocs"
889              description="Builds javadocs to build dir">
890    
891        <delete dir="${dist.extra166yjavadocs.dir}"/>
892        <mkdir dir="${dist.extra166yjavadocs.dir}"/>
893    
894        <javadoc destdir="${dist.extra166yjavadocs.dir}"
895                 packagenames="extra166y.*"
896                 link="${jdkapidocs.url}"
897                 source="6"
898                 bootclasspath="${bootclasspath6}"
899                 sourcepath="${topsrc.dir}:${jdk6src.dir}"
900                 executable="${javadoc7}"
901                 additionalparam="-XDignore.symbol.file=true" />
902    
903      </target>
904    
905    
906      <target name="extra166ydist"
907              depends="extra166ydist-clean, extra166ydist-jar, extra166ydocs"
908              description="Puts all distributable products in single hierarchy"/>
909    
910        <bootclasspath refid="javac.bootclasspath"/>  
911        <compilerarg line="${javac.args} ${build.warnings.option}"/>  
912        <classpath refid="test.classpath"/>    <target name="extra166yclean"
913              description="Removes all extra166y build products">
914    
915        <delete dir="${build.extra166y.dir}"/>
916    
917      </target>
918    
919    
920    
921      <target name="extra166ydist-clean"
922              description="Removes all build and distribution products">
923    
924      </target>
925    
926      <target name="extra166ydist-jar"
927              depends="extra166yclean, extra166yjar">
928    
929        <copy file="${extra166y.jar}" todir="${dist.dir}"/>
930    
931      </target>
932    
933      <!-- jsr166e -->
934    
935      <target name="jsr166ecompile"
936              depends="configure-compiler"
937              description="Compiles jsr166e sources">
938    
939        <mkdir dir="${build.jsr166e.dir}"/>
940    
941        <javac srcdir="${topsrc.dir}"
942               destdir="${build.jsr166e.dir}"
943               debug="${build.debug}"
944               debuglevel="${build.debuglevel}"
945               deprecation="${build.deprecation}"
946               source="7"
947               classpath=""
948               includeAntRuntime="false"
949               includeJavaRuntime="false"
950               executable="${javac7}"
951               fork="true">
952    
953          <include name="jsr166e/**/*.java"/>
954          <compilerarg line="${build.args}"/>
955          <compilerarg value="-XDignore.symbol.file=true"/>
956          <compilerarg value="-Xlint:all"/>
957    
958      </javac>      </javac>
959    
960    </target>    </target>
961    
962    
   <target name="run-tests" depends="compile-tests">  
963    
964      <!-- May be overridden by user.properties -->    <target name="jsr166ejar"
965      <property name="testcase" value="*"/>            depends="jsr166ecompile"
966              description="Builds library jar from compiled sources">
967    
968      <mkdir dir="${build.reports.dir}"/>      <jar destfile="${jsr166e.jar}" index="true">
969          <fileset dir="${build.jsr166e.dir}"/>
970        </jar>
971    
972      <junit printsummary="true"    </target>
              showoutput="true"  
           errorProperty="junit.failed"  
         failureProperty="junit.failed"  
                     dir="${build.reports.dir}"  
                    fork="true">  
973    
       <jvmarg value="${test.javac.args}"/>  
974    
       <formatter type="xml"/>  
975    
976        <batchtest todir="${build.reports.dir}">    <target name="jsr166edocs"
977          <fileset dir="${test.src.dir}">            description="Builds javadocs to build dir">
           <include name="**/${testcase}Test.java"/>  
         </fileset>  
       </batchtest>  
978    
979      </junit>      <delete dir="${dist.jsr166ejavadocs.dir}"/>
980        <mkdir dir="${dist.jsr166ejavadocs.dir}"/>
981    
982        <javadoc destdir="${dist.jsr166ejavadocs.dir}"
983                 packagenames="jsr166e.*"
984                 link="${jdkapidocs.url}"
985                 source="7"
986                 sourcepath="${topsrc.dir}:${jdk7src.dir}"
987                 executable="${javadoc7}"
988                 additionalparam="-XDignore.symbol.file=true" >
989        </javadoc>
990    
991    </target>    </target>
992    
993    
994    <target name="report-tests" depends="run-tests">    <target name="jsr166edist"
995      <!-- Sets junit.report.format to frames if Xalan is present,            depends="jsr166edist-clean, jsr166edist-jar, jsr166edocs"
996           otherwise sets it to noframes. -->            description="Puts all distributable products in single hierarchy"/>
     <available property="junit.report.format"  
                   value="frames"  
               classname="org.apache.xalan.lib.Redirect"  
     />  
     <property name="junit.report.format" value="noframes"/>  
997    
     <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>  
998    
999      <fail message="Test Cases Failed" if="junit.failed"/>  
1000      <target name="jsr166eclean"
1001              description="Removes all jsr166e build products">
1002    
1003        <delete dir="${build.jsr166e.dir}"/>
1004    
1005    </target>    </target>
1006    
1007    
1008    <target name="check-junit">    <target name="jsr166edist-clean"
1009      <!-- FIXME: this test isn't specific enough -->            description="Removes all build and distribution products">
1010      <available property="junit.available"  
                classname="junit.framework.TestCase"/>  
     <fail message="Need JUnit 3.8 to run tests" unless="junit.available"/>  
1011    </target>    </target>
1012    
1013      <target name="jsr166edist-jar"
1014              depends="jsr166eclean, jsr166ejar">
1015    
1016        <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1017    
1018      </target>
1019    
1020  </project>  </project>

Legend:
Removed from v.1.27  
changed lines
  Added in v.1.111

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