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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.53  
changed lines
  Added in v.1.114

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