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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.54  
changed lines
  Added in v.1.112

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8