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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.31  
changed lines
  Added in v.1.138

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