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

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

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