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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.47  
changed lines
  Added in v.1.117

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