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

Diff of /jsr166/build.xml

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

revision 1.37, Fri May 30 03:24:18 2003 UTC revision 1.103, Sat Jan 19 21:35:40 2013 UTC
# Line 8  Line 8 
8    
9    User-specific settings are read from user.properties.    User-specific settings are read from user.properties.
10    See user.properties.sample for an explanation of some useful settings.    See user.properties.sample for an explanation of some useful settings.
11    
12      The repository contains all dependencies except for ant and the JDK
13      itself.  Because the JDK version matters and because different
14      targets require different JDKs, we assume that users have created a
15      hierarchy containing:
16      $HOME/jdk/jdk6
17      $HOME/jdk/jdk7
18      $HOME/jdk/jdk8
19      where each of the above is a JDK or a symlink to same, and
20      $HOME/jdk/src/jdk6
21      $HOME/jdk/src/jdk7
22      $HOME/jdk/src/jdk8
23      where each of the above is a complete JDK source tree
24      (e.g. mercurial forest) or a symlink to same.
25  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
26    </description>    </description>
27    
# Line 21  Line 35 
35    
36    
37    <!-- Compilation options -->    <!-- Compilation options -->
38    <property name="build.sourcelevel"    value="1.5"/>    <property name="build.sourcelevel"    value="1.6"/>
   <property name="build.docsourcelevel" value="1.4"/>  
39    <property name="build.debug"          value="true"/>    <property name="build.debug"          value="true"/>
40    <property name="build.debuglevel"     value="source,lines,vars"/>    <property name="build.debuglevel"     value="source,lines,vars"/>
41    <property name="build.deprecation"    value="false"/>    <property name="build.deprecation"    value="false"/>
# Line 30  Line 43 
43    <!-- Build locations -->    <!-- Build locations -->
44    <property name="build.dir"            location="build"/>    <property name="build.dir"            location="build"/>
45    <property name="build.classes.dir"    location="${build.dir}/classes"/>    <property name="build.classes.dir"    location="${build.dir}/classes"/>
   <property name="build.emulation.dir"  location="${build.dir}/emulation"/>  
46    <property name="build.testcases.dir"  location="${build.dir}/testcases"/>    <property name="build.testcases.dir"  location="${build.dir}/testcases"/>
47      <property name="build.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"/>
   <property name="build.ant.dir"        location="${build.dir}/ant"/>  
49    <property name="build.javadocs.dir"   location="${build.dir}/javadocs"/>    <property name="build.javadocs.dir"   location="${build.dir}/javadocs"/>
   <property name="build.stripped.dir"   location="${build.dir}/stripped"/>  
50    <property name="build.reports.dir"    location="${build.dir}/reports"/>    <property name="build.reports.dir"    location="${build.dir}/reports"/>
51    <property name="build.doccheck.dir"   location="${build.dir}/doccheck"/>  
52    <property name="build.filter.src.dir" location="${build.dir}/filtersrc"/>    <property name="build.4jdk7.dir"              location="${build.dir}/4jdk7"/>
53      <property name="build.4jdk7.lib.dir"          location="${build.4jdk7.dir}"/>
54      <property name="build.4jdk7.classes.dir"      location="${build.4jdk7.dir}/classes"/>
55      <property name="build.4jdk7.tck.classes.dir"  location="${build.4jdk7.dir}/tck/classes"/>
56      <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="4jdk7product.jar"     location="${build.4jdk7.lib.dir}/jsr166-4jdk7.jar"/>
140      <property name="jsr166xproduct.jar"   location="${build.jsr166xlib.dir}/jsr166x.jar"/>
141      <property name="jsr166yproduct.jar"   location="${build.jsr166ylib.dir}/jsr166y.jar"/>
142      <property name="jsr166eproduct.jar"   location="${build.jsr166elib.dir}/jsr166e.jar"/>
143      <property name="extra166yproduct.jar" location="${build.extra166ylib.dir}/extra166y.jar"/>
144    <property name="junit.jar"            location="${lib.dir}/junit.jar"/>    <property name="junit.jar"            location="${lib.dir}/junit.jar"/>
   <property name="rt.jar"               location="${java.home}/lib/rt.jar"/>  
145    
146      <!-- Bootclasspath argument -->
147      <property name="bootclasspath.args"   value="-Xbootclasspath/p:${product.jar}"/>
148    
149      <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
150      <property name="jdkapi5docs.url"      value="http://docs.oracle.com/javase/1.5.0/docs/api/"/>
151      <property name="jdkapi6docs.url"      value="http://docs.oracle.com/javase/6/docs/api/"/>
152      <property name="jdkapi7docs.url"      value="http://docs.oracle.com/javase/7/docs/api/"/>
153    
154      <property name="jdkapi8docs.url"      value="http://download.java.net/jdk8/docs/api/"/>
155      <!-- The below does not yet exist as of 2012-11 -->
156      <!-- <property name="jdkapi8docs.url" value="http://docs.oracle.com/javase/8/docs/api/"/> -->
157      <property name="jdkapidocs.url"       value="${jdkapi7docs.url}"/>
158    
159    <!-- Files excluded from emulation and dist-docs -->    <!-- Test classpath -->
160    <patternset id="emulation.excludes">    <path id="test.classpath">
161      <exclude name="java/util/Random.*"/>      <pathelement location="${build.testcases.dir}"/>
162      <exclude name="sun/misc/Unsafe.*"/>      <pathelement location="${junit.jar}"/>
163    </patternset>    </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}"
     <echo>javac ${gjc.args}</echo>  
     <echo>bootclasspath=${compile.bootclasspath}</echo>  
 -->  
   
     <javac srcdir="${prepare.src.dir}"  
190            destdir="${build.classes.dir}"            destdir="${build.classes.dir}"
191              debug="${build.debug}"              debug="${build.debug}"
192         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
193        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
194             source="${build.sourcelevel}"             classpath=""
195               includeAntRuntime="false"
196               includeJavaRuntime="false"
197               executable="${javac8}"
198               fork="true">               fork="true">
199    
200        <compilerarg    line="${gjc.args}"/>        <include name="**/*.java"/>
201        <bootclasspath refid="compile.bootclasspath"/>        <compilerarg line="${build.args}"/>
202          <compilerarg value="-XDignore.symbol.file=true"/>
203          <compilerarg value="-Xlint:all"/>
204    
205    <!--
206          <exclude name="java/lang/**"/>
207          <compilerarg line="${build.args}"/>
208          <compilerarg line="-Xlint -Xmaxwarns 1000"/>
209    -->
210    
211      </javac>      </javac>
212    
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-src"  
           description="Reports on javadoc style errors (not working yet)">  
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    
269      <javadoc doclet="com.sun.tools.doclets.doccheck.DocCheck"  
270           docletpath="${lib.dir}/doccheck.jar"    <target name="release"
271              destdir="${build.doccheck.dir}">            depends="dist"
272        <packageset dir="${build.filter.src.dir}"/>            description="Puts entire CVS tree, plus distribution productions, in a jar">
273      </javadoc>  
274        <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>    </target>
287    
288    
   <target name="docs"  
           depends="filter-src"  
           description="Builds javadocs with custom tags to build folder">  
289    
290      <delete dir="${build.javadocs.dir}"/>    <target name="clean"
291      <mkdir dir="${build.javadocs.dir}"/>            description="Removes all build products">
292    
293      <javadoc destdir="${build.javadocs.dir}"      <delete dir="${build.dir}"/>
294                  link="http://java.sun.com/j2se/1.4.1/docs/api"      <delete dir="${build.classes.dir}"/>
295              overview="${src.dir}/intro.html"      <delete dir="${build.lib.dir}"/>
               source="${build.docsourcelevel}">  
296    
297        <tag name="revised" description="Last revised:"/>    </target>
       <tag name="spec"    description="Specified by:"/>  
       <tag name="editor"  description="Last edited by:"/>  
       <tag name="fixme"   description="FIX ME:"/>  
298    
       <packageset dir="${build.filter.src.dir}"/>  
299    
300      </javadoc>  
301      <target name="dist-clean"
302              description="Removes all build and distribution products">
303    
304        <delete dir="${dist.dir}"/>
305    
306    </target>    </target>
307    
308    
   <target name="strip"  
           depends="init, configure-compiler"  
           description="Strip generics from java source (not working yet)">  
309    
310      <mkdir dir="${build.stripped.dir}"/>    <!-- Internal targets -->
311    
312    
313    <!--   <target name="init"> -->
314    
315        <!-- Version is kept in a separate file -->
316    <!--     <loadfile property="version" srcFile="version.properties"/> -->
317    <!--     <echo>Building JSR-166 version ${version}</echo> -->
318    <!--     <echo>java.home is ${java.home}</echo> -->
319    
320    <!--   </target> -->
321    
322    
323      <target name="dist-jar"
324              depends="clean, jar">
325    
326        <copy file="${product.jar}" todir="${dist.dir}"/>
327    
328      </target>
329    
330    
331      <target name="compile-tests"
332              depends="jar">
333    
334        <mkdir dir="${build.testcases.dir}"/>
335    
336        <javac srcdir="${tck.src.dir}"
337              destdir="${build.testcases.dir}"
338                debug="${build.debug}"
339           debuglevel="${build.debuglevel}"
340          deprecation="${build.deprecation}"
341               source="${build.sourcelevel}"
342                 fork="true">
343    
344          <compilerarg value="${bootclasspath.args}"/>
345          <compilerarg line="${build.args}"/>
346          <compilerarg value="-XDignore.symbol.file=true"/>
347    
348          <classpath refid="test.classpath"/>
349    
350        </javac>
351    
352        <javac srcdir="${test.src.dir}"
353              destdir="${build.testcases.dir}"
354                debug="${build.debug}"
355           debuglevel="${build.debuglevel}"
356          deprecation="${build.deprecation}"
357               source="${build.sourcelevel}"
358                 fork="true">
359    
360          <include name="jsr166/test/**"/>
361    
362          <compilerarg value="${bootclasspath.args}"/>
363          <compilerarg line="${build.args}"/>
364          <compilerarg value="-XDignore.symbol.file=true"/>
365    
366          <classpath refid="test.classpath"/>
367    
368        </javac>
369    
370      <!--      <!--
371       # javac -s doesn't reliably generate compilable code. It generates      <javac srcdir="${jtreg.src.dir}"
372       # bridge methods (marked as "synthetic") that can have identical            destdir="${build.testcases.dir}"
      # signatures to existing methods except for the return value.  
      -->  
     <javac srcdir="${src.dir}"  
           destdir="${build.stripped.dir}"  
373              debug="${build.debug}"              debug="${build.debug}"
374         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
375        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
376             source="${build.sourcelevel}"             source="${build.sourcelevel}"
377               fork="true">               fork="true">
378    
379        <compilerarg    line="${gjc.args} -s"/>        <compilerarg value="${bootclasspath.args}"/>
380        <bootclasspath refid="compile.bootclasspath"/>        <compilerarg line="${build.args}"/>
381          <compilerarg value="-XDignore.symbol.file=true"/>
382    
383          <classpath refid="test.classpath"/>
384    
385      </javac>      </javac>
386    -->
387    
388    </target>    </target>
389    
390    
391    <target name="dist"    <target name="run-tests"
392            depends="init, dist-clean, dist-jar, dist-docs"            depends="compile-tests">
           description="Puts all distributable products in single hierarchy"/>  
393    
394        <!-- May be overridden by user.properties -->
395        <property name="testcase" value="*"/>
396    
397    <target name="clean"      <mkdir dir="${build.reports.dir}"/>
           description="Removes all build products">  
398    
399      <delete dir="${build.dir}"/>      <junit printsummary="true"
400      <delete dir="${build.classes.dir}"/>               showoutput="true"
401      <delete dir="${build.lib.dir}"/>            errorProperty="junit.failed"
402            failureProperty="junit.failed"
403                        dir="${build.reports.dir}"
404                       fork="true">
405    
406    </target>        <jvmarg value="${bootclasspath.args}"/>
407          <jvmarg value="-server"/>
408          <jvmarg value="-showversion"/>
409    
410          <classpath refid="test.classpath"/>
411    
412    <target name="dist-clean"        <formatter type="xml"/>
           description="Removes all build and distribution products">  
413    
414      <delete dir="${dist.dir}"/>        <batchtest todir="${build.reports.dir}" unless="no.test.tck">
415            <fileset dir="${tck.src.dir}">
416              <include name="**/${testcase}Test.java"/>
417            </fileset>
418          </batchtest>
419    
420    </target>        <batchtest todir="${build.reports.dir}" if="do.test.old">
421            <fileset dir="${test.src.dir}">
422              <include name="jsr166/test/**/${testcase}Test.java"/>
423            </fileset>
424          </batchtest>
425    
426    <!--
427          <batchtest todir="${build.reports.dir}" if="do.test.jtreg">
428            <fileset dir="${jtreg.src.dir}">
429              <include name="**/${testcase}Test.java"/>
430            </fileset>
431          </batchtest>
432    -->
433    
434        </junit>
435    
436    <target name="dist-docs"    </target>
           depends="filter-src"  
           description="Builds javadocs without custom tags to dist folder">  
437    
     <delete dir="${dist.javadocs.dir}"/>  
     <mkdir dir="${dist.javadocs.dir}"/>  
438    
439      <javadoc destdir="${dist.javadocs.dir}"    <target name="report-tests"
440                  link="http://java.sun.com/j2se/1.4.1/docs/api"            depends="run-tests">
             overview="${src.dir}/intro.html"  
               source="${build.docsourcelevel}">  
441    
442        <packageset dir="${build.filter.src.dir}"/>      <!-- Sets junit.report.format to frames if redirection is present,
443             otherwise sets it to noframes. -->
444        <available property="junit.report.format"
445                      value="frames"
446                  classname="org.apache.xalan.lib.Redirect"
447        />
448        <property name="junit.report.format" value="noframes"/>
449    
450      </javadoc>      <junitreport todir="${build.reports.dir}">
451          <fileset dir="${build.reports.dir}">
452            <include name="TEST-*.xml"/>
453          </fileset>
454          <report format="${junit.report.format}" todir="${build.reports.dir}"
455          />
456        </junitreport>
457    
458        <fail message="Test Cases Failed" if="junit.failed"/>
459    
460    </target>    </target>
461    
462    
463      <target name="configure-compiler">
464    
465    <!-- Internal targets -->      <property name="unchecked.option" value="-Xlint:unchecked"/>
466    
467        <condition property="warnunchecked.arg" value="${unchecked.option}">
468          <istrue value="${build.warnunchecked}"/>
469        </condition>
470    
471        <property name="warnunchecked.arg" value=""/>
472    
   <target name="init">  
473    
474      <!-- Version is kept in a separate file -->      <!-- Common options in javac invocations -->
475      <loadfile property="version" srcFile="version.properties"/>      <property name="build.args" value="${warnunchecked.arg}"/>
     <echo>Building JSR-166 version ${version}</echo>  
476    
477    </target>    </target>
478    
479    
480    <target name="init-jar">    <target name="configure-tests"
481           depends="configure-compiler">
482    
483      <mkdir dir="${build.lib.dir}"/>      <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->
484        <available property="junit.available"
485                   classname="junit.framework.Protectable"/>
486    
487    </target>      <!-- Xalan -->
488        <available property="xalan.available"
489                   classname="org.apache.xalan.Version"/>
490    
491    
492    <target name="native-jar"      <!-- Ant 1.6beta and later don't need or want this check -->
493            depends="compile"      <!--
494            unless="build.emulation.true">      <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests"
495              unless="junit.available"/>
496    
497      <jar destfile="${product.jar}">      <fail message="Need Xalan 2.5.1 jar in ${ant.home}${file.separator}lib to run tests"
498        <fileset dir="${build.classes.dir}"/>            unless="xalan.available"/>
499      </jar>      -->
500    
501    </target>    </target>
502    
503    
504    <target name="compile-emulation"    <!-- Various demos and test programs -->
505            depends="init, configure-compiler"  
506            if="build.emulation.true">  
507      <target name="loops" depends="configure-compiler"
508              description="Benchmark from Doug Lea's AQS paper">
509    
510      <mkdir dir="${build.emulation.dir}"/>      <mkdir dir="${build.loops.dir}"/>
511    
512      <javac srcdir="${emulation.src.dir}"      <javac srcdir="${loops.src.dir}"
513            destdir="${build.emulation.dir}"            destdir="${build.loops.dir}"
514              debug="${build.debug}"              debug="${build.debug}"
515         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
516        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
517             source="${build.sourcelevel}"             source="${build.sourcelevel}"
518               fork="true">               fork="true">
519    
520        <compilerarg    line="${gjc.args}"/>        <compilerarg line="${build.args}"/>
521        <bootclasspath refid="compile.bootclasspath"/>        <classpath refid="loops.classpath"/>
522          <compilerarg value="-XDignore.symbol.file=true"/>
523    
524      </javac>      </javac>
525    
526        <java classname="ALoops" fork="true">
527          <classpath refid="loops.classpath"/>
528        </java>
529    
530    </target>    </target>
531    
532    
533    <target name="emulation-jar"    <!-- jsr166 4jdk7 -->
           depends="compile-emulation"  
           if="build.emulation.true">  
534    
535    
536      <jar destfile="${product.jar}" duplicate="add">    <target name="4jdk7compile"
537        <fileset dir="${build.classes.dir}">            depends="configure-compiler"
538          <patternset refid="emulation.excludes"/>            description="Compiles src/jdk7 sources, targeting jdk7">
539        </fileset>  
540        <fileset dir="${build.emulation.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
541    
542        <javac srcdir="${4jdk7src.dir}"
543               destdir="${build.4jdk7.classes.dir}"
544               debug="${build.debug}"
545               debuglevel="${build.debuglevel}"
546               deprecation="${build.deprecation}"
547               source="1.6"
548               classpath=""
549               bootclasspath="${bootclasspath6}"
550               includeAntRuntime="false"
551               includeJavaRuntime="false"
552               executable="${javac7}"
553               fork="true">
554    
555          <include name="**/*.java"/>
556          <compilerarg line="${build.args}"/>
557          <compilerarg value="-XDignore.symbol.file=true"/>
558          <compilerarg value="-Xlint:all"/>
559    
560        </javac>
561    
562        <mkdir dir="${build.4jdk7.lib.dir}"/>
563    
564        <jar destfile="${4jdk7product.jar}" index="true">
565          <fileset dir="${build.4jdk7.classes.dir}"/>
566      </jar>      </jar>
567    
568    </target>      <mkdir dir="${build.4jdk7.tck.classes.dir}"/>
569    
570        <javac srcdir="${tck.src.dir}"
571               destdir="${build.4jdk7.tck.classes.dir}"
572               debug="${build.debug}"
573               debuglevel="${build.debuglevel}"
574               deprecation="${build.deprecation}"
575               source="1.6"
576               classpath="${junit.jar}"
577               bootclasspath="${4jdk7product.jar}:${bootclasspath6}"
578               includeAntRuntime="false"
579               includeJavaRuntime="false"
580               executable="${javac7}"
581               fork="true">
582    
583    <target name="dist-jar"        <include name="**/*.java"/>
584            depends="clean, jar">        <compilerarg line="${build.args}"/>
585          <compilerarg value="-XDignore.symbol.file=true"/>
586          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
587    
588      <copy file="${product.jar}" todir="${dist.dir}"/>      </javac>
589    
590    </target>    </target>
591    
592    
593    <target name="compile-ant-filter"    <target name="4jdk7-test-tck"
594            depends="init">            depends="4jdk7compile"
595              description="Runs tck tests for jsr166-4jdk7 directly">
596        <run-tck-tests
597          jvm="${java7}"
598          tck.classes="${build.4jdk7.tck.classes.dir}"
599          product.jar="${4jdk7product.jar}"/>
600      </target>
601    
     <mkdir dir="${build.ant.dir}"/>  
602    
603      <javac srcdir="${ant.src.dir}"    <target name="4jdk7-test-tck-junit"
604            destdir="${build.ant.dir}"            depends="4jdk7compile"
605             source="1.4"            description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">
606      />  
607        <junit printsummary="true"
608               showoutput="true"
609               errorProperty="junit.failed"
610               failureProperty="junit.failed"
611               includeantruntime="true"
612               jvm="${java7}"
613               fork="true">
614    
615          <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
616          <jvmarg value="-server"/>
617    
618          <classpath>
619            <pathelement location="${junit.jar}"/>
620            <pathelement location="${build.4jdk7.tck.classes.dir}"/>
621          </classpath>
622    
623          <formatter type="brief"/>
624    
625          <test name="JSR166TestCase" haltonfailure="no">
626          </test>
627    
628        </junit>
629    </target>    </target>
630    
631    
632    <target name="filter-src"    <target name="4jdk7docs"
633            depends="compile-ant-filter">            description="Builds javadocs for src/jdk7 to dist dir">
634    
635      <mkdir dir="${build.filter.src.dir}"/>      <delete dir="${dist.4jdk7.docs.dir}"/>
636        <mkdir dir="${dist.4jdk7.docs.dir}"/>
637    
638      <copy todir="${build.filter.src.dir}">      <javadoc destdir="${dist.4jdk7.docs.dir}"
639        <fileset dir="${src.dir}">               packagenames="none"
640          <include name="**/*.html"/>               link="${jdkapi7docs.url}"
641                 overview="${4jdk7src.dir}/intro.html"
642                 sourcepath="${4jdk7src.dir}:${jdk7src.dir}"
643                 classpath=""
644                 executable="${javadoc7}">
645          <arg value="-XDignore.symbol.file=true"/>
646          <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
647            <include name="**/*.java"/>
648        </fileset>        </fileset>
649      </copy>      </javadoc>
650    
651      <!-- Not needed now, used for doccheck filtering:    </target>
     <property name="generic.declarations"  
              value="public interface E {} public interface T {} public interface K {} public interface V {}"  
     />  
     -->  
652    
     <copy todir="${build.filter.src.dir}">  
       <fileset dir="${src.dir}">  
         <exclude name="**/*.html"/>  
         <patternset refid="emulation.excludes"/>  
       </fileset>  
       <filterchain>  
653    
654          <!--    <target name="4jdk7dist"
655           # This filter gets rid of angle-bracketed type parameters            depends="4jdk7dist-clean, 4jdk7dist-jar, 4jdk7docs"
656           # so that javadoc can run on the result. The following            description="Puts all distributable products in single hierarchy"/>
          # 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.)  
          -->  
657    
         <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>  
658    
659    
660          <!--    <target name="4jdk7clean"
661           # 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.  
          -->  
662    
663          <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>  
664    
665      </target>
666    
         <!--  
          # The next 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.  
          #  
          # Currently commented out because doccheck doesn't work. :-(  
          -->  
667    
         <!--  
         <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>  
         -->  
668    
669        </filterchain>    <target name="4jdk7dist-clean"
670      </copy>            description="Removes all build and distribution products">
671    
672    </target>    </target>
673    
674      <target name="4jdk7dist-jar"
675              depends="4jdk7clean, 4jdk7compile">
676    
677    <target name="compile-tests"      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
           depends="jar">  
678    
679      <mkdir dir="${build.testcases.dir}"/>    </target>
680    
681  <!--    <!-- jsr166x -->
     <echo>javac ${gjc.args}</echo>  
     <echo>bootclasspath=${test.compile.bootclasspath}</echo>  
     <echo>classpath="${test.classpath}"</echo>  
 -->  
682    
683      <javac srcdir="${test.src.dir}"  
684            destdir="${build.testcases.dir}"    <target name="jsr166xcompile"
685              depends="configure-compiler"
686              description="Compiles jsr166x sources">
687    
688        <mkdir dir="${build.jsr166x.dir}"/>
689    
690        <javac srcdir="${jsr166xsrc.dir}"
691              destdir="${build.jsr166x.dir}"
692              debug="${build.debug}"              debug="${build.debug}"
693         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
694        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
695             source="${build.sourcelevel}"             source="${build.sourcelevel}"
696               fork="true">               fork="true">
697    
698        <compilerarg    line="${gjc.args}"/>        <include name="**/*.java"/>
699        <bootclasspath refid="test.compile.bootclasspath"/>        <compilerarg line="${build.args}"/>
700        <classpath     refid="test.classpath"/>        <compilerarg value="-XDignore.symbol.file=true"/>
701    
702      </javac>      </javac>
703    
704    </target>    </target>
705    
706    
   <target name="run-tests"  
           depends="compile-tests">  
707    
708      <!-- May be overridden by user.properties -->    <target name="jsr166xjar"
709      <property name="testcase" value="*"/>            depends="jsr166xcompile"
710              description="Builds library jar from compiled sources">
711    
712      <mkdir dir="${build.reports.dir}"/>      <mkdir dir="${build.jsr166xlib.dir}"/>
713    
714      <junit printsummary="true"      <jar destfile="${jsr166xproduct.jar}">
715               showoutput="true"        <fileset dir="${build.jsr166x.dir}"/>
716            errorProperty="junit.failed"      </jar>
717          failureProperty="junit.failed"  
718                      dir="${build.reports.dir}"    </target>
719    
720    
721    
722      <target name="jsr166xdocs"
723              description="Builds javadocs to dist dir">
724    
725        <delete dir="${build.jsr166xjavadocs.dir}"/>
726        <mkdir dir="${build.jsr166xjavadocs.dir}"/>
727    
728        <javadoc destdir="${build.jsr166xjavadocs.dir}"
729                 packagenames="jsr166x"
730                 link="${jdkapidocs.url}"
731                 source="${build.sourcelevel}"
732                 sourcepath="${topsrc.dir}:${jdksrc.dir}"
733                 additionalparam="-XDignore.symbol.file=true" />
734    
735      </target>
736    
737    
738      <target name="jsr166xdist"
739              depends="jsr166xdist-clean, jsr166xdist-jar, jsr166xdist-docs"
740              description="Puts all distributable products in single hierarchy"/>
741    
742    
743    
744      <target name="jsr166xclean"
745              description="Removes all build products">
746    
747        <delete dir="${build.jsr166x.dir}"/>
748        <delete dir="${build.jsr166xlib.dir}"/>
749    
750      </target>
751    
752    
753    
754      <target name="jsr166xdist-clean"
755              description="Removes all build and distribution products">
756    
757      </target>
758    
759    
760    
761      <target name="jsr166xdist-docs"
762              description="Builds javadocs to dist dir">
763    
764        <delete dir="${dist.jsr166xjavadocs.dir}"/>
765        <mkdir dir="${dist.jsr166xjavadocs.dir}"/>
766    
767        <javadoc destdir="${dist.jsr166xjavadocs.dir}"
768                 packagenames="jsr166x"
769                 link="${jdkapidocs.url}"
770                 source="${build.sourcelevel}"
771                 sourcepath="${topsrc.dir}:${jdksrc.dir}"
772                 additionalparam="-XDignore.symbol.file=true" />
773    
774      </target>
775    
776      <target name="jsr166xdist-jar"
777              depends="jsr166xclean, jsr166xjar">
778    
779        <copy file="${jsr166xproduct.jar}" todir="${dist.dir}"/>
780    
781      </target>
782    
783      <!-- jsr166y -->
784    
785    
786      <target name="jsr166ycompile"
787              depends="configure-compiler"
788              description="Compiles jsr166y sources">
789    
790        <mkdir dir="${build.jsr166y.dir}"/>
791    
792        <javac srcdir="${topsrc.dir}"
793               destdir="${build.jsr166y.dir}"
794               debug="${build.debug}"
795               debuglevel="${build.debuglevel}"
796               deprecation="${build.deprecation}"
797               source="1.6"
798               classpath=""
799               bootclasspath="${bootclasspath6}"
800               includeAntRuntime="false"
801               includeJavaRuntime="false"
802               executable="${javac7}"
803                     fork="true">                     fork="true">
804    
805        <jvmarg value="-Xbootclasspath/p:${test.run.bootclasspath}"/>        <include name="jsr166y/**/*.java"/>
806          <compilerarg line="${build.args}"/>
807          <compilerarg value="-XDignore.symbol.file=true"/>
808          <compilerarg value="-Xlint:all"/>
809        </javac>
810      </target>
811    
       <formatter type="xml"/>  
812    
813        <batchtest todir="${build.reports.dir}">    <target name="jsr166yjar"
814          <fileset dir="${test.src.dir}">            depends="jsr166ycompile"
815            <include name="**/${testcase}Test.java"/>            description="Builds library jar from compiled sources">
         </fileset>  
       </batchtest>  
816    
817      </junit>      <mkdir dir="${build.jsr166ylib.dir}"/>
818    
819        <jar destfile="${jsr166yproduct.jar}" index="true">
820          <fileset dir="${build.jsr166y.dir}"/>
821        </jar>
822    
823    </target>    </target>
824    
825    
   <target name="report-tests"  
           depends="run-tests">  
826    
827      <!-- Sets junit.report.format to frames if Xalan is present,    <target name="jsr166ydocs"
828           otherwise sets it to noframes. -->            description="Builds javadocs to dist dir">
     <available property="junit.report.format"  
                   value="frames"  
               classname="org.apache.xalan.lib.Redirect"  
     />  
     <property name="junit.report.format" value="noframes"/>  
829    
830      <junitreport todir="${build.reports.dir}">      <delete dir="${build.jsr166yjavadocs.dir}"/>
831        <fileset dir="${build.reports.dir}">      <mkdir dir="${build.jsr166yjavadocs.dir}"/>
         <include name="TEST-*.xml"/>  
       </fileset>  
       <report styledir="${stylesheet.dir}"  
                 format="${junit.report.format}"  
                  todir="${build.reports.dir}"  
       />  
     </junitreport>  
832    
833      <fail message="Test Cases Failed" if="junit.failed"/>      <javadoc destdir="${build.jsr166yjavadocs.dir}"
834                 packagenames="jsr166y"
835                 link="${jdkapidocs.url}"
836                 source="${build.sourcelevel}"
837                 sourcepath="${topsrc.dir}:${jdksrc.dir}"
838                 additionalparam="-XDignore.symbol.file=true" />
839    
840    </target>    </target>
841    
842    
843    <target name="configure-compiler">    <target name="jsr166ydist"
844              depends="jsr166ydist-clean, jsr166ydist-jar, jsr166ydist-docs"
845              description="Puts all distributable products in single hierarchy"/>
846    
     <property name="gjc.version"  
              value="2.0"/>  
847    
     <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>  
848    
849      <property name="novariance.arg"    <target name="jsr166yclean"
850               value=""/>            description="Removes all build products">
851    
852      <property name="gjc.dir"      <delete dir="${build.jsr166y.dir}"/>
853               value="${lib.dir}/gjc"/>      <delete dir="${build.jsr166ylib.dir}"/>
854    
855      <property name="javac.jar"    </target>
           location="${gjc.dir}/${gjc.version}/javac.jar"/>  
856    
     <property name="collect.jar"  
           location="${gjc.dir}/${gjc.version}/collect${novariance.arg}.jar"/>  
857    
858    
859      <condition property="warnunchecked.arg" value="-warnunchecked">    <target name="jsr166ydist-clean"
860        <istrue value="${gjc.warnunchecked}"/>            description="Removes all build and distribution products">
     </condition>  
861    
862      <property name="warnunchecked.arg" value=""/>    </target>
863    
864      <condition property="prepare.src.dir" value="${build.dir}/prepare-src">    <target name="jsr166ydist-docs"
865        <istrue value="${build.nothreads}"/>            description="Builds javadocs to dist dir">
     </condition>  
866    
867        <delete dir="${dist.jsr166yjavadocs.dir}"/>
868        <mkdir dir="${dist.jsr166yjavadocs.dir}"/>
869    
870      <!--      <javadoc destdir="${dist.jsr166yjavadocs.dir}"
871       ! Bootclasspath munging for source compilation.               packagenames="jsr166y"
872       -->               link="${jdkapidocs.url}"
873                 source="${build.sourcelevel}"
874                 sourcepath="${topsrc.dir}:${jdksrc.dir}"
875                 additionalparam="-XDignore.symbol.file=true" />
876    
877      <path id="pre.bootclasspath">    </target>
       <!-- <pathelement location="${src.dir}"/> -->  
       <pathelement location="${javac.jar}"/>  
     </path>  
878    
879      <path id="compile.bootclasspath">    <target name="jsr166ydist-jar"
880        <!-- <pathelement location="${src.dir}"/> -->            depends="jsr166yclean, jsr166yjar">
       <pathelement location="${collect.jar}"/>  
       <pathelement location="${rt.jar}"/>  
     </path>  
881    
882      <!-- Flatten paths into platform-appropriate strings -->      <copy file="${jsr166yproduct.jar}" todir="${dist.dir}"/>
     <property name="pre.bootclasspath"     refid="pre.bootclasspath"/>  
     <property name="compile.bootclasspath" refid="compile.bootclasspath"/>  
883    
884      </target>
885    
886      <!-- Common options in javac invocations -->  
887      <property name="gjc.args"    <!-- extra166y -->
888               value="-J-Xbootclasspath/p:${pre.bootclasspath} ${warnunchecked.arg} ${novariance.arg}"  
889      />  
890      <target name="extra166ycompile"
891              depends="configure-compiler, jsr166yjar"
892              description="Compiles extra166y sources">
893    
894        <mkdir dir="${build.extra166y.dir}"/>
895    
896        <javac srcdir="${topsrc.dir}"
897               destdir="${build.extra166y.dir}"
898               debug="${build.debug}"
899               classpath=""
900               debuglevel="${build.debuglevel}"
901               deprecation="${build.deprecation}"
902               source="1.6"
903               bootclasspath="${jsr166yproduct.jar}:${bootclasspath6}"
904               includeAntRuntime="false"
905               includeJavaRuntime="false"
906               executable="${javac7}"
907               fork="true">
908    
909          <include name="extra166y/**/*.java"/>
910          <compilerarg line="${build.args}"/>
911          <compilerarg value="-XDignore.symbol.file=true"/>
912          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
913    
914        </javac>
915    
916    </target>    </target>
917    
918    
   <target name="prepare-src"  
           depends="configure-compiler"  
           if="prepare.src.dir">  
919    
920      <mkdir dir="${prepare.src.dir}"/>    <target name="extra166yjar"
921      <copy todir="${prepare.src.dir}">            depends="extra166ycompile"
922        <fileset dir="${src.dir}">            description="Builds library jar from compiled sources">
923          <exclude name="java/lang/**"/>  
924        </fileset>      <mkdir dir="${build.extra166ylib.dir}"/>
925      </copy>  
926        <jar destfile="${extra166yproduct.jar}" index="true">
927          <fileset dir="${build.extra166y.dir}"/>
928        </jar>
929    
930    </target>    </target>
931    
932    
   <target name="configure-emulation">  
933    
934      <condition property="build.emulation.true">    <target name="extra166ydocs"
935        <or>            description="Builds javadocs with custom tags to build dir">
936          <and>  
937            <os family="windows"/>      <delete dir="${build.extra166yjavadocs.dir}"/>
938            <not>      <mkdir dir="${build.extra166yjavadocs.dir}"/>
939              <isset property="build.emulation"/>  
940            </not>      <javadoc destdir="${build.extra166yjavadocs.dir}"
941          </and>               packagenames="extra166y"
942          <istrue value="${build.emulation}"/>               link="${jdkapidocs.url}"
943        </or>               source="${build.sourcelevel}"
944      </condition>               sourcepath="${topsrc.dir}:${jdksrc.dir}"
945                 additionalparam="-XDignore.symbol.file=true" />
946    
947    </target>    </target>
948    
949    
950    <target name="configure-tests"    <target name="extra166ydist"
951         depends="configure-compiler">            depends="extra166ydist-clean, extra166ydist-jar, extra166ydist-docs"
952              description="Puts all distributable products in single hierarchy"/>
953    
     <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->  
     <available property="junit.available"  
                classname="junit.framework.Protectable"/>  
954    
     <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests"  
           unless="junit.available"/>  
955    
956      <target name="extra166yclean"
957              description="Removes all build products">
958    
959      <!--      <delete dir="${build.extra166y.dir}"/>
960       ! Bootclasspath munging for testing, so JUnit can test our local      <delete dir="${build.extra166ylib.dir}"/>
      ! modifications to java.*.  
      -->  
961    
962      <path id="test.classpath">    </target>
       <pathelement location="${product.jar}"/>  
       <pathelement location="${build.testcases.dir}"/>  
       <pathelement location="${junit.jar}"/>  
     </path>  
963    
     <path id="test.compile.bootclasspath">  
       <pathelement location="${javac.jar}"/>  
       <pathelement location="${collect.jar}"/>  
       <pathelement location="${rt.jar}"/>  
     </path>  
964    
     <path id="test.run.bootclasspath">  
       <pathelement location="${javac.jar}"/>  
       <path refid="test.classpath"/>  
     </path>  
965    
966      <!-- Flatten test classpaths into platform-appropriate strings -->    <target name="extra166ydist-clean"
967      <property name="test.classpath"             refid="test.classpath"/>            description="Removes all build and distribution products">
     <property name="test.compile.bootclasspath" refid="test.compile.bootclasspath"/>  
     <property name="test.run.bootclasspath"     refid="test.run.bootclasspath"/>  
968    
969    </target>    </target>
970    
971      <target name="extra166ydist-docs"
972              description="Builds javadocs to dist dir">
973    
974        <delete dir="${dist.extra166yjavadocs.dir}"/>
975        <mkdir dir="${dist.extra166yjavadocs.dir}"/>
976    
977        <javadoc destdir="${dist.extra166yjavadocs.dir}"
978                 packagenames="extra166y"
979                 link="${jdkapidocs.url}"
980                 source="${build.sourcelevel}"
981                 sourcepath="${topsrc.dir}:${jdksrc.dir}"
982                 additionalparam="-XDignore.symbol.file=true" />
983    
984    <!-- Anthill targets -->    </target>
985    
986    <target name="anthill-build"    <target name="extra166ydist-jar"
987            depends="jar, test, docs, dist-docs"/>            depends="extra166yclean, extra166yjar">
988    
989    <target name="anthill-publish">      <copy file="${extra166yproduct.jar}" todir="${dist.dir}"/>
990    
991      <copy todir="${deployDir}/docs/private">    </target>
       <fileset dir="${build.javadocs.dir}"/>  
     </copy>  
992    
993      <copy todir="${deployDir}/docs/public">    <!-- jsr166e -->
       <fileset dir="${dist.javadocs.dir}"/>  
     </copy>  
994    
995      <copy tofile="${deployDir}/index.html"    <target name="jsr166ecompile"
996            file="${basedir}/etc/anthill-index.html"/>            depends="configure-compiler"
997              description="Compiles jsr166e sources">
998    
999      <copy todir="${deployDir}/notes">      <mkdir dir="${build.jsr166e.dir}"/>
1000        <fileset dir="${basedir}/etc/notes"/>  
1001      </copy>      <javac srcdir="${topsrc.dir}"
1002               destdir="${build.jsr166e.dir}"
1003               debug="${build.debug}"
1004               debuglevel="${build.debuglevel}"
1005               deprecation="${build.deprecation}"
1006               source="1.7"
1007               classpath=""
1008               includeAntRuntime="false"
1009               includeJavaRuntime="false"
1010               executable="${javac7}"
1011               fork="true">
1012    
1013          <include name="jsr166e/**/*.java"/>
1014          <compilerarg line="${build.args}"/>
1015          <compilerarg value="-XDignore.symbol.file=true"/>
1016          <compilerarg value="-Xlint:all"/>
1017    
1018        </javac>
1019    
1020      </target>
1021    
1022    
1023    
1024      <target name="jsr166ejar"
1025              depends="jsr166ecompile"
1026              description="Builds library jar from compiled sources">
1027    
1028        <mkdir dir="${build.jsr166elib.dir}"/>
1029    
1030        <jar destfile="${jsr166eproduct.jar}" index="true">
1031          <fileset dir="${build.jsr166e.dir}"/>
1032        </jar>
1033    
1034    </target>    </target>
1035    
1036    
1037    
1038      <target name="jsr166edocs"
1039              description="Builds javadocs with custom tags to build dir">
1040    
1041        <delete dir="${build.jsr166ejavadocs.dir}"/>
1042        <mkdir dir="${build.jsr166ejavadocs.dir}"/>
1043    
1044        <javadoc destdir="${build.jsr166ejavadocs.dir}"
1045                 packagenames="jsr166e,jsr166e.extra"
1046                 link="${jdkapi7docs.url}"
1047                 source="1.7"
1048                 sourcepath="${topsrc.dir}:${jdk7src.dir}"
1049                 executable="${javadoc7}"
1050                 additionalparam="-XDignore.symbol.file=true" >
1051          <fileset dir="${topsrc.dir}" defaultexcludes="yes">
1052            <include name="jsr166e/**/*.java"/>
1053          </fileset>
1054        </javadoc>
1055    
1056      </target>
1057    
1058    
1059      <target name="jsr166edist"
1060              depends="jsr166edist-clean, jsr166edist-jar, jsr166edist-docs"
1061              description="Puts all distributable products in single hierarchy"/>
1062    
1063    
1064    
1065      <target name="jsr166eclean"
1066              description="Removes all build products">
1067    
1068        <delete dir="${build.jsr166e.dir}"/>
1069        <delete dir="${build.jsr166elib.dir}"/>
1070    
1071      </target>
1072    
1073    
1074    
1075      <target name="jsr166edist-clean"
1076              description="Removes all build and distribution products">
1077    
1078      </target>
1079    
1080      <target name="jsr166edist-docs"
1081              description="Builds javadocs to dist dir">
1082    
1083        <delete dir="${dist.jsr166ejavadocs.dir}"/>
1084        <mkdir dir="${dist.jsr166ejavadocs.dir}"/>
1085    
1086        <javadoc destdir="${dist.jsr166ejavadocs.dir}"
1087                 packagenames="jsr166e,jsr166e.extra"
1088                 link="${jdkapidocs.url}"
1089                 source="1.7"
1090                 sourcepath="${topsrc.dir}:${jdksrc.dir}"
1091                 additionalparam="-XDignore.symbol.file=true" />
1092    
1093      </target>
1094    
1095      <target name="jsr166edist-jar"
1096              depends="jsr166eclean, jsr166ejar">
1097    
1098        <copy file="${jsr166eproduct.jar}" todir="${dist.dir}"/>
1099    
1100      </target>
1101    
1102  </project>  </project>

Legend:
Removed from v.1.37  
changed lines
  Added in v.1.103

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8