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

Diff of /jsr166/build.xml

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

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

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

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