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

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

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