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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.56  
changed lines
  Added in v.1.106

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