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

Legend:
Removed from v.1.50  
changed lines
  Added in v.1.108

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