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

Diff of /jsr166/build.xml

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

revision 1.50 by tim, Tue Aug 5 04:03:38 2003 UTC revision 1.111 by jsr166, Sun Jan 20 03:34:23 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="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.filter.doccheck.dir" location="${build.dir}/filterdocchk"/>    <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="junit.jar"            location="${lib.dir}/junit.jar"/>    <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>
125    <property name="rt.jar"               location="${java.home}/lib/rt.jar"/>    <property name="jsr166x.jar"      location="${build.jsr166x.dir}/jsr166x.jar"/>
126    <property name="sinjdoc.jar"          location="${lib.dir}/sinjdoc.jar"/>    <property name="jsr166y.jar"      location="${build.jsr166y.dir}/jsr166y.jar"/>
127      <property name="jsr166e.jar"      location="${build.jsr166e.dir}/jsr166e.jar"/>
128      <property name="extra166y.jar"    location="${build.extra166y.dir}/extra166y.jar"/>
129    <!-- Files excluded from dist-docs and emulation jar -->    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
130    <patternset id="unsafe.exclusion">  
131      <exclude name="java/util/Random.*"/>    <!-- Bootclasspath argument -->
132      <exclude name="sun/misc/Unsafe.*"/>    <property name="bootclasspath.args"   value="-Xbootclasspath/p:${product.jar}"/>
133    </patternset>  
134      <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
135    <!-- Files excludes from emulation jar -->    <property name="jdkapi5docs.url"      value="http://docs.oracle.com/javase/1.5.0/docs/api/"/>
136    <patternset id="atomic.exclusion">    <property name="jdkapi6docs.url"      value="http://docs.oracle.com/javase/6/docs/api/"/>
137      <exclude name="java/util/concurrent/atomic/AtomicBoolean*"/>    <property name="jdkapi7docs.url"      value="http://docs.oracle.com/javase/7/docs/api/"/>
138      <exclude name="java/util/concurrent/atomic/AtomicInteger*"/>  
139      <exclude name="java/util/concurrent/atomic/AtomicLong*"/>    <property name="jdkapi8docs.url"      value="http://download.java.net/jdk8/docs/api/"/>
140      <exclude name="java/util/concurrent/atomic/AtomicReference*"/>    <!-- The below does not yet exist as of 2012-11 -->
141      <exclude name="java/util/concurrent/locks/LockSupport*"/>    <!-- <property name="jdkapi8docs.url" value="http://docs.oracle.com/javase/8/docs/api/"/> -->
142      <exclude name="java/util/concurrent/locks/ReentrantLock*"/>  
143    </patternset>    <!-- Default jdk api doc location (latest stable release seems best) -->
144      <property name="jdkapidocs.url"       value="${jdkapi7docs.url}"/>
145    
146      <!-- Test classpath -->
147      <path id="test.classpath">
148        <pathelement location="${build.testcases.dir}"/>
149        <pathelement location="${junit.jar}"/>
150      </path>
151    
152      <!-- ALoops classpath -->
153      <path id="loops.classpath">
154        <pathelement location="${build.loops.dir}"/>
155      </path>
156    
157      <!-- Support @jls tag, used in jdk8+ javadoc -->
158      <!-- 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    <!-- Main targets -->    <!-- Main targets -->
165    
166    <target name="compile"    <target name="dists"
167            depends="init, configure-compiler, prepare-src"            depends="dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
168            description="Compiles main sources to build folder">            description="Builds all public jars and docs"/>
169    
170      <property name="prepare.src.dir" value="${src.dir}"/>    <target name="compile"
171              depends="configure-compiler"
172              description="Compiles src/main sources to build dir">
173    
174      <mkdir dir="${build.classes.dir}"/>      <mkdir dir="${build.classes.dir}"/>
175    
176        <javac srcdir="${src.dir}"
177               destdir="${build.classes.dir}"
178               debug="${build.debug}"
179               debuglevel="${build.debuglevel}"
180               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      <echo>javac ${gjc.args}</echo>        <exclude name="java/lang/**"/>
194      <echo>bootclasspath=${compile.bootclasspath}</echo>        <compilerarg line="${build.args}"/>
195          <compilerarg line="-Xlint -Xmaxwarns 1000"/>
196  -->  -->
197    
     <javac srcdir="${prepare.src.dir}"  
           destdir="${build.classes.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
   
       <compilerarg    line="${gjc.args}"/>  
       <bootclasspath refid="compile.bootclasspath"/>  
   
198      </javac>      </javac>
199    
200    </target>    </target>
201    
202    
203    
204    <target name="jar"    <target name="jar"
205            depends="configure-emulation, init-jar, native-jar, emulation-jar"            depends="compile"
206            description="Builds library jar from compiled sources"/>            description="Builds library jar from compiled sources">
207    
208        <jar destfile="${product.jar}">
209          <fileset dir="${build.classes.dir}"/>
210        </jar>
211    
212      </target>
213    
214    
215    
216    <target name="test"    <target name="test"
217            depends="init, configure-tests, report-tests"            depends="configure-tests, report-tests"
218            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)" />
219    
220    
   <target name="checkstyle"  
           depends="filter-src"  
           description="Reports on style errors in Java source (verbose, mostly chaff)">  
221    
222      <taskdef resource="checkstyletask.properties"    <target name="docs"
223              classpath="${lib.dir}/checkstyle-all-2.4.jar"/>            description="Builds javadocs for src/main to dist dir">
224    
225        <delete dir="${dist.javadocs.dir}"/>
226        <mkdir dir="${dist.javadocs.dir}"/>
227    
228      <checkstyle>      <!-- the packagenames="none" hack below prevents scanning the -->
229        <formatter type="plain"/>  <!-- also available: type="xml" -->      <!-- sourcepath for packages -->
230        <fileset dir="${build.filter.src.dir}" includes="**/*.java"/>  
231      </checkstyle>      <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>    </target>
247    
248    
   <target name="doccheck"  
           depends="filter-doccheck"  
           description="Reports on javadoc style errors">  
249    
250      <delete dir="${build.doccheck.dir}"/>    <target name="dist"
251      <mkdir dir="${build.doccheck.dir}"/>            depends="dist-clean, dist-jar, docs"
252              description="Puts all distributable products in single hierarchy"/>
253    
     <javadoc doclet="com.sun.tools.doclets.doccheck.DocCheck"  
          docletpath="${lib.dir}/doccheck.jar"  
             destdir="${build.doccheck.dir}">  
       <packageset dir="${build.filter.doccheck.dir}"/>  
     </javadoc>  
254    
255      <echo>DocCheck output is in ${build.doccheck.dir}</echo>    <target name="release"
256              depends="dist"
257              description="Puts entire CVS tree, plus distribution productions, in a jar">
258    
259    </target>      <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 name="docs"    </target>
           depends="filter-src"  
           description="Builds javadocs with custom tags to build folder">  
272    
     <delete dir="${build.javadocs.dir}"/>  
     <mkdir dir="${build.javadocs.dir}"/>  
273    
     <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:"/>  
274    
275        <packageset dir="${build.filter.src.dir}"/>    <target name="clean"
276              description="Removes all build products">
277    
278      </javadoc>      <delete dir="${build.dir}"/>
279    
280    </target>    </target>
281    
282    
   <target name="sinjdocs"  
           depends="configure-tests"  
           description="Builds javadocs with custom tags to build folder">  
283    
284      <delete dir="${build.javadocs.dir}"/>    <target name="dist-clean"
285      <mkdir dir="${build.javadocs.dir}"/>            description="Removes all build and distribution products">
286    
287        <delete dir="${dist.dir}"/>
288    
289      </target>
290    
     <java classname="net.cscott.sinjdoc.Main" fork="true">  
291    
       <jvmarg value="-Xbootclasspath/p:${test.run.bootclasspath}"/>  
292    
293        <classpath>    <!-- Internal targets -->
         <pathelement location="${sinjdoc.jar}"/>  
         <path refid="test.classpath"/>  
       </classpath>  
294    
       <!-- <arg value="-link"/>       <arg value="http://java.sun.com/j2se/1.4.1/docs/api"/> -->  
295    
296        <arg value="-d"/>          <arg value="${build.javadocs.dir}"/>    <target name="dist-jar"
297        <arg value="-sourcepath"/> <arg value="${src.dir}"/>            depends="clean, jar">
       <arg value="-overview"/>   <arg value="${src.dir}/intro.html"/>  
       <arg value="-source"/>     <arg value="1.5"/>  
       <arg value="-verbose"/>  
       <arg value="java.util"/>  
   
       <!--  
       <arg value="-help"/>  
       -->  
298    
299      </java>      <copy file="${product.jar}" todir="${dist.dir}"/>
300    
301    </target>    </target>
302    
303    
304    <target name="strip"    <target name="compile-tests"
305            depends="init, configure-compiler"            depends="jar">
306            description="Strip generics from java source (not working yet)">  
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      <mkdir dir="${build.stripped.dir}"/>        <classpath refid="test.classpath"/>
328    
329      <!--      </javac>
330       # javac -s doesn't reliably generate compilable code. It generates  
331       # bridge methods (marked as "synthetic") that can have identical      <javac srcdir="${test.src.dir}"
332       # signatures to existing methods except for the return value.             destdir="${build.testcases.dir}"
333       -->             debug="${build.debug}"
334      <javac srcdir="${src.dir}"             debuglevel="${build.debuglevel}"
335            destdir="${build.stripped.dir}"             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        <compilerarg    line="${gjc.args} -s"/>        <compilerarg value="${bootclasspath.args}"/>
364        <bootclasspath refid="compile.bootclasspath"/>        <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="dist"    <target name="run-tests"
376            depends="init, dist-clean, dist-jar, dist-docs"            depends="compile-tests">
           description="Puts all distributable products in single hierarchy"/>  
377    
378    <target name="release"      <!-- May be overridden by user.properties -->
379            depends="dist"      <property name="testcase" value="*"/>
           description="Puts entire CVS tree, plus distribution productions, in a jar">  
380    
381  <!--      <mkdir dir="${build.reports.dir}"/>
     #keep build dir? - dl  
     <delete dir="${build.dir}"/>  
 -->  
     <property name="release.jar" value="dist/jsr166-${version}-dist.jar"/>  
382    
383      <jar basedir="${basedir}" destfile="${release.jar}">      <junit printsummary="true"
384        <exclude name="${release.jar}"/>               showoutput="true"
385        <exclude name="user.properties"/>            errorProperty="junit.failed"
386        <exclude name="etc/notes/**"/>          failureProperty="junit.failed"
387        <exclude name="lib/gjc/2.1/**"/>                      dir="${build.reports.dir}"
388        <exclude name="**/SyntaxTest.java"/>                      jvm="${java8}"
389      </jar>                     fork="true">
390    
391    </target>        <jvmarg value="-Xbootclasspath/p:${product.jar}"/>
392          <jvmarg value="-server"/>
393          <jvmarg value="-showversion"/>
394    
395    <target name="clean"        <classpath refid="test.classpath"/>
           description="Removes all build products">  
396    
397      <delete dir="${build.dir}"/>        <formatter type="xml"/>
     <delete dir="${build.classes.dir}"/>  
     <delete dir="${build.lib.dir}"/>  
398    
399    </target>        <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    <target name="dist-clean"  <!--
412            description="Removes all build and distribution products">        <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      <delete dir="${dist.dir}"/>      </junit>
420    
421    </target>    </target>
422    
423    
424    <target name="dist-docs"    <target name="report-tests"
425            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}"/>  
426    
427      <javadoc destdir="${dist.javadocs.dir}"      <!-- Sets junit.report.format to frames if redirection is present,
428                  link="http://java.sun.com/j2se/1.4.1/docs/api"           otherwise sets it to noframes. -->
429              overview="${src.dir}/intro.html"      <available property="junit.report.format"
430                source="${build.docsourcelevel}">                    value="frames"
431                  classname="org.apache.xalan.lib.Redirect"
432        />
433        <property name="junit.report.format" value="noframes"/>
434    
435        <packageset dir="${build.filter.src.dir}"/>      <junitreport todir="${build.reports.dir}">
436          <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      </javadoc>      <fail message="Test Cases Failed" if="junit.failed"/>
444    
445    </target>    </target>
446    
447    
448      <target name="configure-compiler">
449    
450    <!-- Internal targets -->      <property name="unchecked.option" value="-Xlint:unchecked"/>
451    
452        <condition property="warnunchecked.arg" value="${unchecked.option}">
453          <istrue value="${build.warnunchecked}"/>
454        </condition>
455    
456        <property name="warnunchecked.arg" value=""/>
457    
   <target name="init">  
458    
459      <!-- Version is kept in a separate file -->      <!-- Common options in javac invocations -->
460      <loadfile property="version" srcFile="version.properties"/>      <property name="build.args" value="${warnunchecked.arg}"/>
     <echo>Building JSR-166 version ${version}</echo>  
461    
462    </target>    </target>
463    
464    
465    <target name="init-jar">    <target name="configure-tests"
466           depends="configure-compiler">
467    
468      <mkdir dir="${build.lib.dir}"/>      <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->
469        <available property="junit.available"
470                   classname="junit.framework.Protectable"/>
471    
472    </target>      <!-- Xalan -->
473        <available property="xalan.available"
474                   classname="org.apache.xalan.Version"/>
475    
476    
477    <target name="native-jar"      <!-- Ant 1.6beta and later don't need or want this check -->
478            depends="compile"      <!--
479            unless="build.emulation.true">      <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests"
480              unless="junit.available"/>
481    
482      <jar destfile="${product.jar}">      <fail message="Need Xalan 2.5.1 jar in ${ant.home}${file.separator}lib to run tests"
483        <fileset dir="${build.classes.dir}"/>            unless="xalan.available"/>
484      </jar>      -->
485    
486    </target>    </target>
487    
488    
489    <target name="compile-emulation"    <!-- Various demos and test programs -->
490            depends="init, configure-compiler"  
491            if="build.emulation.true">  
492      <target name="loops" depends="configure-compiler"
493              description="Benchmark from Doug Lea's AQS paper">
494    
495      <mkdir dir="${build.emulation.dir}"/>      <mkdir dir="${build.loops.dir}"/>
496    
497      <javac srcdir="${emulation.src.dir}"      <javac srcdir="${loops.src.dir}"
498            destdir="${build.emulation.dir}"            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        <compilerarg    line="${gjc.args}"/>        <compilerarg line="${build.args}"/>
506        <bootclasspath refid="compile.bootclasspath"/>        <classpath refid="loops.classpath"/>
507          <compilerarg value="-XDignore.symbol.file=true"/>
508    
509      </javac>      </javac>
510    
511        <java classname="ALoops" fork="true">
512          <classpath refid="loops.classpath"/>
513        </java>
514    
515    </target>    </target>
516    
517    
518    <target name="emulation-jar"    <!-- jsr166 4jdk7 -->
           depends="compile-emulation"  
           if="build.emulation.true">  
519    
520    
521      <jar destfile="${product.jar}" duplicate="add">    <target name="4jdk7compile"
522        <fileset dir="${build.classes.dir}">            depends="configure-compiler"
523          <patternset refid="atomic.exclusion"/>            description="Compiles src/jdk7 sources, targeting jdk7">
524          <patternset refid="unsafe.exclusion"/>  
525        </fileset>      <mkdir dir="${build.4jdk7.classes.dir}"/>
526        <fileset dir="${build.emulation.dir}"/>  
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>      </jar>
550    
551    </target>      <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    <target name="dist-jar"      </javac>
572            depends="clean, jar">  
573      </target>
574    
     <copy file="${product.jar}" todir="${dist.dir}"/>  
575    
576      <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>    </target>
584    
585    
586    <target name="compile-ant-filter"    <target name="4jdk7-test-tck-junit"
587            depends="init">            depends="4jdk7compile"
588              description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">
589    
590      <mkdir dir="${build.ant.dir}"/>      <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      <javac srcdir="${ant.src.dir}"        <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
599            destdir="${build.ant.dir}"        <jvmarg value="-server"/>
600             source="1.4"  
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>    </target>
613    
614    
615    <target name="filter-src"    <target name="4jdk7docs"
616            depends="compile-ant-filter">            description="Builds javadocs for src/jdk7 to dist dir">
617    
618      <mkdir dir="${build.filter.src.dir}"/>      <delete dir="${dist.4jdk7.docs.dir}"/>
619        <mkdir dir="${dist.4jdk7.docs.dir}"/>
620    
621      <copy todir="${build.filter.src.dir}">      <javadoc destdir="${dist.4jdk7.docs.dir}"
622        <fileset dir="${src.dir}">               packagenames="none"
623          <include name="**/*.html"/>               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>        </fileset>
632      </copy>      </javadoc>
633    
634      <copy todir="${build.filter.src.dir}">    </target>
       <fileset dir="${src.dir}">  
         <exclude name="**/*.html"/>  
         <patternset refid="unsafe.exclusion"/>  
       </fileset>  
       <filterchain>  
635    
         <!--  
          # 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.)  
          -->  
636    
637          <filterreader classname="jsr166.ant.filters.ReplaceFilter"    <target name="4jdk7dist"
638                        classpath="${build.ant.dir}">            depends="4jdk7dist-clean, 4jdk7dist-jar, 4jdk7docs"
639            <param name="notmatching" value="^\s+\*\s.*$"/>            description="Puts all distributable products in single hierarchy"/>
640            <param name="pattern"     value="&lt;[^|>()]+?>+"/>  
           <param name="replacement" value=" "/>  
         </filterreader>  
641    
642    
643          <!--    <target name="4jdk7clean"
644           # This filter uncomments lines beginning with "//@" so that            description="Removes all 4jdk7 build products">
          # javadoc can see imports that are needed to resolve links  
          # but that shouldn't be in the compiled code.  
          -->  
645    
646          <filterreader classname="jsr166.ant.filters.ReplaceFilter"      <delete dir="${build.4jdk7.dir}"/>
                       classpath="${build.ant.dir}">  
           <param name="matching"    value="^//@.*$"/>  
           <param name="pattern"     value="^//@"/>  
           <param name="replacement" value=""/>  
         </filterreader>  
       </filterchain>  
     </copy>  
647    
648    </target>    </target>
649    
650    
651    
652      <target name="4jdk7dist-clean"
653              description="Removes all build and distribution products">
654    
655    <target name="filter-doccheck"    </target>
           depends="filter-src">  
656    
657      <mkdir dir="${build.filter.doccheck.dir}"/>    <target name="4jdk7dist-jar"
658              depends="4jdk7clean, 4jdk7compile">
659    
660      <copy todir="${build.filter.doccheck.dir}">      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
       <fileset dir="${build.filter.src.dir}">  
         <include name="**/*.html"/>  
       </fileset>  
     </copy>  
661    
662      <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 {}"  
     />  
663    
     <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>  
664    
665        </filterchain>    <!-- jsr166x -->
666      </copy>  
667      <target name="jsr166xcompile"
668              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    
693    </target>    </target>
694    
695    
   <target name="compile-tests"  
           depends="jar">  
696    
697      <mkdir dir="${build.testcases.dir}"/>    <target name="jsr166xjar"
698              depends="jsr166xcompile"
699              description="Builds library jar from compiled sources">
700    
701  <!--      <jar destfile="${jsr166x.jar}">
702      <echo>javac ${gjc.args}</echo>        <fileset dir="${build.jsr166x.dir}"/>
703      <echo>bootclasspath=${test.compile.bootclasspath}</echo>      </jar>
     <echo>classpath="${test.classpath}"</echo>  
 -->  
704    
705      <javac srcdir="${test.src.dir}"    </target>
           destdir="${build.testcases.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
706    
       <compilerarg    line="${gjc.args}"/>  
       <bootclasspath refid="test.compile.bootclasspath"/>  
       <classpath     refid="test.classpath"/>  
707    
708      </javac>  
709      <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="run-tests"    <target name="jsr166xdist"
728            depends="compile-tests">            depends="jsr166xdist-clean, jsr166xdist-jar, jsr166xdocs"
729              description="Puts all distributable products in single hierarchy"/>
730    
     <!-- May be overridden by user.properties -->  
     <property name="testcase" value="*"/>  
731    
     <mkdir dir="${build.reports.dir}"/>  
732    
733      <junit printsummary="true"    <target name="jsr166xclean"
734               showoutput="true"            description="Removes all jsr166x build products">
           errorProperty="junit.failed"  
         failureProperty="junit.failed"  
                     dir="${build.reports.dir}"  
                    fork="true">  
735    
736        <jvmarg value="-Xbootclasspath/p:${test.run.bootclasspath}"/>      <delete dir="${build.jsr166x.dir}"/>
737    
738        <formatter type="xml"/>    </target>
739    
       <batchtest todir="${build.reports.dir}">  
         <fileset dir="${test.src.dir}">  
           <include name="**/${testcase}Test.java"/>  
         </fileset>  
       </batchtest>  
740    
741      </junit>  
742      <target name="jsr166xdist-clean"
743              description="Removes all build and distribution products">
744    
745    </target>    </target>
746    
747    
748    <target name="report-tests"    <target name="jsr166xdist-jar"
749            depends="run-tests">            depends="jsr166xclean, jsr166xjar">
750    
751      <!-- 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"/>  
752    
753      <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>  
754    
755      <fail message="Test Cases Failed" if="junit.failed"/>    <!-- jsr166y -->
756    
757    
758      <target name="jsr166ycompile"
759              depends="configure-compiler"
760              description="Compiles jsr166y sources">
761    
762        <mkdir dir="${build.jsr166y.dir}"/>
763    
764        <javac srcdir="${topsrc.dir}"
765               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>
782    </target>    </target>
783    
784    
785    <target name="configure-compiler">    <target name="jsr166yjar"
786              depends="jsr166ycompile"
787              description="Builds library jar from compiled sources">
788    
789      <property name="gjc.version"      <jar destfile="${jsr166y.jar}" index="true">
790               value="2.2"/>        <fileset dir="${build.jsr166y.dir}"/>
791        </jar>
792    
793      <condition property="novariance.arg" value="-novariance">    </target>
       <and>  
         <equals arg1="${gjc.version}" arg2="2.0"/>  
         <or>  
           <not><isset property="gjc.novariance"/></not>  
           <istrue value="${gjc.novariance}"/>  
         </or>  
       </and>  
     </condition>  
794    
     <property name="novariance.arg"  
              value=""/>  
795    
     <property name="gjc.dir"  
              value="${lib.dir}/gjc"/>  
796    
797      <property name="javac.jar"    <target name="jsr166ydocs"
798            location="${gjc.dir}/${gjc.version}/javac.jar"/>            description="Builds javadocs to dist dir">
799    
800      <property name="collect.jar"      <delete dir="${dist.jsr166yjavadocs.dir}"/>
801            location="${gjc.dir}/${gjc.version}/collect${novariance.arg}.jar"/>      <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      <condition property="warnunchecked.arg" value="-warnunchecked">    </target>
       <istrue value="${gjc.warnunchecked}"/>  
     </condition>  
813    
     <property name="warnunchecked.arg" value=""/>  
814    
815      <condition property="prepare.src.dir" value="${build.dir}/prepare-src">    <target name="jsr166ydist"
816        <istrue value="${build.nothreads}"/>            depends="jsr166ydist-clean, jsr166ydist-jar, jsr166ydocs"
817      </condition>            description="Puts all distributable products in single hierarchy"/>
818    
819    
     <!--  
      ! Bootclasspath munging for source compilation.  
      -->  
820    
821      <path id="pre.bootclasspath">    <target name="jsr166yclean"
822        <pathelement location="${javac.jar}"/>            description="Removes all jsr166y build products">
     </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"/>  
823    
824        <delete dir="${build.jsr166y.dir}"/>
825    
826      </target>
827    
828      <!-- Common options in javac invocations -->  
829      <property name="gjc.args"  
830               value="-J-Xbootclasspath/p:${pre.bootclasspath} ${warnunchecked.arg} ${novariance.arg}"    <target name="jsr166ydist-clean"
831      />            description="Removes all build and distribution products">
832    
833    </target>    </target>
834    
835      <target name="jsr166ydist-jar"
836              depends="jsr166yclean, jsr166yjar">
837    
838    <target name="prepare-src"      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
           depends="configure-compiler"  
           if="prepare.src.dir">  
839    
840      <mkdir dir="${prepare.src.dir}"/>    </target>
841      <copy todir="${prepare.src.dir}">  
842        <fileset dir="${src.dir}">  
843          <exclude name="java/lang/**"/>    <!-- extra166y -->
844        </fileset>  
845      </copy>  
846      <target name="extra166ycompile"
847              depends="configure-compiler, jsr166yjar"
848              description="Compiles extra166y sources">
849    
850        <mkdir dir="${build.extra166y.dir}"/>
851    
852        <javac srcdir="${topsrc.dir}"
853               destdir="${build.extra166y.dir}"
854               debug="${build.debug}"
855               debuglevel="${build.debuglevel}"
856               deprecation="${build.deprecation}"
857               classpath=""
858               source="6"
859               bootclasspath="${jsr166y.jar}:${bootclasspath6}"
860               includeAntRuntime="false"
861               includeJavaRuntime="false"
862               executable="${javac7}"
863               fork="true">
864    
865          <include name="extra166y/**/*.java"/>
866          <compilerarg line="${build.args}"/>
867          <compilerarg value="-XDignore.symbol.file=true"/>
868          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
869    
870        </javac>
871    
872    </target>    </target>
873    
874    
   <target name="configure-emulation">  
875    
876      <condition property="build.emulation.true">    <target name="extra166yjar"
877        <or>            depends="extra166ycompile"
878          <and>            description="Builds library jar from compiled sources">
879            <os family="windows"/>  
880            <not>      <jar destfile="${extra166y.jar}" index="true">
881              <isset property="build.emulation"/>        <fileset dir="${build.extra166y.dir}"/>
882            </not>      </jar>
         </and>  
         <istrue value="${build.emulation}"/>  
       </or>  
     </condition>  
883    
884    </target>    </target>
885    
886    
   <target name="configure-tests"  
        depends="configure-compiler">  
887    
888      <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->    <target name="extra166ydocs"
889      <available property="junit.available"            description="Builds javadocs to build dir">
                classname="junit.framework.Protectable"/>  
890    
891      <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests"      <delete dir="${dist.extra166yjavadocs.dir}"/>
892            unless="junit.available"/>      <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>
      ! Bootclasspath munging for testing, so JUnit can test our local  
      ! modifications to java.*.  
      -->  
904    
     <path id="test.classpath">  
       <pathelement location="${product.jar}"/>  
       <pathelement location="${build.testcases.dir}"/>  
       <pathelement location="${junit.jar}"/>  
     </path>  
905    
906      <path id="test.compile.bootclasspath">    <target name="extra166ydist"
907        <pathelement location="${javac.jar}"/>            depends="extra166ydist-clean, extra166ydist-jar, extra166ydocs"
908        <pathelement location="${collect.jar}"/>            description="Puts all distributable products in single hierarchy"/>
       <pathelement location="${rt.jar}"/>  
     </path>  
909    
     <path id="test.run.bootclasspath">  
       <pathelement location="${javac.jar}"/>  
       <path refid="test.classpath"/>  
     </path>  
910    
911      <!-- Flatten test classpaths into platform-appropriate strings -->  
912      <property name="test.classpath"             refid="test.classpath"/>    <target name="extra166yclean"
913      <property name="test.compile.bootclasspath" refid="test.compile.bootclasspath"/>            description="Removes all extra166y build products">
914      <property name="test.run.bootclasspath"     refid="test.run.bootclasspath"/>  
915        <delete dir="${build.extra166y.dir}"/>
916    
917    </target>    </target>
918    
919    
920    
921    <!-- Anthill targets -->    <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 name="anthill-build"    </target>
           depends="jar, test, docs, dist-docs"/>  
932    
933    <target name="anthill-publish">    <!-- jsr166e -->
934    
935      <copy todir="${deployDir}/docs/private">    <target name="jsr166ecompile"
936        <fileset dir="${build.javadocs.dir}"/>            depends="configure-compiler"
937      </copy>            description="Compiles jsr166e sources">
938    
939      <copy todir="${deployDir}/docs/public">      <mkdir dir="${build.jsr166e.dir}"/>
       <fileset dir="${dist.javadocs.dir}"/>  
     </copy>  
940    
941      <copy tofile="${deployDir}/index.html"      <javac srcdir="${topsrc.dir}"
942            file="${basedir}/etc/anthill-index.html"/>             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      <copy todir="${deployDir}/notes">      </javac>
       <fileset dir="${basedir}/etc/notes"/>  
     </copy>  
959    
960    </target>    </target>
961    
962    
   <target name="ng" depends="test">  
     <java classname="SuperfluousAbstract" fork="true">  
963    
964        <jvmarg value="-Xbootclasspath/p:${test.run.bootclasspath}"/>    <target name="jsr166ejar"
965              depends="jsr166ecompile"
966              description="Builds library jar from compiled sources">
967    
968        <jar destfile="${jsr166e.jar}" index="true">
969          <fileset dir="${build.jsr166e.dir}"/>
970        </jar>
971    
972      </target>
973    
974    
975    
976      <target name="jsr166edocs"
977              description="Builds javadocs to build dir">
978    
979        <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>
992    
993    
994      <target name="jsr166edist"
995              depends="jsr166edist-clean, jsr166edist-jar, jsr166edocs"
996              description="Puts all distributable products in single hierarchy"/>
997    
998    
999    
1000      <target name="jsr166eclean"
1001              description="Removes all jsr166e build products">
1002    
1003        <delete dir="${build.jsr166e.dir}"/>
1004    
     </java>  
1005    </target>    </target>
1006    
1007    
1008      <target name="jsr166edist-clean"
1009              description="Removes all build and distribution products">
1010    
1011      </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.50  
changed lines
  Added in v.1.111

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