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

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

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