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

Diff of /jsr166/build.xml

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

revision 1.73 by dl, Tue Nov 8 00:13:41 2005 UTC revision 1.131 by jsr166, Fri Feb 1 18:31:17 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    As of 2013-02, the very latest lambda 8 jdk is needed for jdk8.
26  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
27    </description>    </description>
28    
29    <target name="usage" description="Advises user to run with -projecthelp">    <target name="usage" description="Display main targets by running 'ant -projecthelp'">
30      <echo>Run "ant -projecthelp" for full usage information.</echo>      <java classname="org.apache.tools.ant.Main">
31          <arg value="-projecthelp" />
32        </java>
33    </target>    </target>
34    
35    
# Line 21  Line 38 
38    
39    
40    <!-- Compilation options -->    <!-- Compilation options -->
41    <property name="build.sourcelevel"    value="1.5"/>    <property name="build.sourcelevel"    value="6"/>
42    <property name="build.debug"          value="true"/>    <property name="build.debug"          value="true"/>
43    <property name="build.debuglevel"     value="source,lines,vars"/>    <property name="build.debuglevel"     value="source,lines,vars"/>
44    <property name="build.deprecation"    value="false"/>    <property name="build.deprecation"    value="false"/>
45      <property name="build.javadoc.access" value="protected"/>
46    
47    <!-- Build locations -->    <!-- Build locations -->
48    <property name="build.dir"            location="build"/>    <property name="build.dir"                   location="build"/>
49    <property name="build.classes.dir"    location="${build.dir}/classes"/>    <property name="build.classes.dir"           location="${build.dir}/classes"/>
50    <property name="build.testcases.dir"  location="${build.dir}/testcases"/>    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>
51    <property name="build.j1.dir"         location="${build.dir}/j1"/>    <property name="build.loops.dir"             location="${build.dir}/loops"/>
52    <property name="build.loops.dir"      location="${build.dir}/loops"/>    <property name="build.reports.dir"           location="${build.dir}/reports"/>
53    <property name="build.lib.dir"        location="${build.dir}/lib"/>  
54    <property name="build.ant.dir"        location="${build.dir}/ant"/>    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
55    <property name="build.javadocs.dir"   location="${build.dir}/javadocs"/>    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>
56    <property name="build.reports.dir"    location="${build.dir}/reports"/>    <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/>
57    <property name="build.checkstyle.dir" location="${build.dir}/checkstyle"/>    <property name="build.4jdk7.docs.dir"        location="${build.4jdk7.dir}/docs"/>
58    <property name="build.doccheck.dir"   location="${build.dir}/doccheck"/>  
59    <property name="build.filter.src.dir" location="${build.dir}/filtersrc"/>    <property name="build.jsr166x.dir"           location="${build.dir}/jsr166x"/>
60    <property name="build.dc-filter.dir"  location="${build.dir}/filterdocchk"/>    <property name="build.jsr166y.dir"           location="${build.dir}/jsr166y"/>
61    <property name="build.jsr166x.dir"    location="${build.dir}/jsr166x"/>    <property name="build.jsr166e.dir"           location="${build.dir}/jsr166e"/>
62    <property name="build.jsr166xlib.dir"        location="${build.dir}/jsr166xlib"/>    <property name="build.extra166y.dir"         location="${build.dir}/extra166y"/>
63    <property name="build.jsr166xjavadocs.dir"   location="${build.dir}/jsr166xjavadocs"/>  
64      <property name="build.jsr166x.classes.dir"   location="${build.jsr166x.dir}/classes"/>
65      <property name="build.jsr166y.classes.dir"   location="${build.jsr166y.dir}/classes"/>
66      <property name="build.jsr166e.classes.dir"   location="${build.jsr166e.dir}/classes"/>
67      <property name="build.extra166y.classes.dir" location="${build.extra166y.dir}/classes"/>
68    
69      <!-- JDK locations -->
70      <property name="jdks.home"  location="${user.home}/jdk"/>
71    
72      <macrodef name="defjdklocations">
73        <attribute name="v"/>
74        <sequential>
75        <property name="jdk@{v}.home"   location="${jdks.home}/jdk@{v}"/>
76        <property name="java@{v}"       location="${jdk@{v}.home}/bin/java"/>
77        <property name="javac@{v}"      location="${jdk@{v}.home}/bin/javac"/>
78        <property name="javadoc@{v}"    location="${jdk@{v}.home}/bin/javadoc"/>
79        <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/share/classes"/>
80        <local name="boot.jar.dir"/>
81        <property name="boot.jar.dir"   location="${jdk@{v}.home}/jre/lib"/>
82        <path id="bootclasspath@{v}">
83          <pathelement path="${boot.jar.dir}/resources.jar"/>
84          <pathelement path="${boot.jar.dir}/rt.jar"/>
85          <pathelement path="${boot.jar.dir}/jsse.jar"/>
86          <pathelement path="${boot.jar.dir}/jce.jar"/>
87          <pathelement path="${boot.jar.dir}/charsets.jar"/>
88        </path>
89        <property name="bootclasspath@{v}" value="${toString:bootclasspath@{v}}"/>
90        </sequential>
91      </macrodef>
92    
93      <macrodef name="mirror-dir">
94        <attribute name="src"/>
95        <attribute name="dst"/>
96        <sequential>
97        <delete dir="@{dst}"/>
98        <mkdir dir="@{dst}"/>
99        <copy todir="@{dst}" preservelastmodified="true">
100          <fileset dir="@{src}"/>
101        </copy>
102        </sequential>
103      </macrodef>
104    
105      <defjdklocations v="6"/>
106      <defjdklocations v="7"/>
107      <defjdklocations v="8"/>
108    
109    <!-- Source locations -->    <!-- Source locations -->
110    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
111    <property name="test.src.dir"         location="${basedir}/src/test"/>    <property name="test.src.dir"         location="${basedir}/src/test"/>
   <property name="j1.src.dir"           location="${basedir}/src/javaone"/>  
112    <property name="loops.src.dir"        location="${basedir}/src/loops"/>    <property name="loops.src.dir"        location="${basedir}/src/loops"/>
113    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>
114    <property name="jtreg.src.dir"        location="${test.src.dir}/jtreg"/>    <property name="jtreg.src.dir"        location="${test.src.dir}/jtreg"/>
   <property name="ant.src.dir"          location="${basedir}/etc/ant"/>  
   <property name="stylesheet.dir"       location="${basedir}/etc/xsl"/>  
115    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
116    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
117    <property name="topsrc.dir"           location="${basedir}/src"/>    <property name="topsrc.dir"           location="${basedir}/src"/>
118    <property name="jsr166xsrc.dir"       location="${basedir}/src/jsr166x"/>    <property name="4jdk7src.dir"         location="${topsrc.dir}/jdk7"/>
119      <property name="jsr166xsrc.dir"       location="${topsrc.dir}/jsr166x"/>
120    <!-- Distribution locations -->    <property name="jsr166ysrc.dir"       location="${topsrc.dir}/jsr166y"/>
121    <property name="dist.javadocs.dir"    location="${dist.dir}/docs"/>    <property name="jsr166esrc.dir"       location="${topsrc.dir}/jsr166e"/>
122    <property name="dist.jsr166xjavadocs.dir"    location="${dist.dir}/jsr166xdocs"/>    <property name="extra166ysrc.dir"     location="${topsrc.dir}/extra166y"/>
123    
124      <!-- Javadoc locations -->
125      <property name="docs.dir"          location="${build.dir}/docs"/>
126      <property name="4jdk7docs.dir"     location="${build.4jdk7.dir}/docs"/>
127      <property name="jsr166xdocs.dir"   location="${build.jsr166x.dir}/docs"/>
128      <property name="jsr166ydocs.dir"   location="${build.jsr166y.dir}/docs"/>
129      <property name="jsr166edocs.dir"   location="${build.jsr166e.dir}/docs"/>
130      <property name="extra166ydocs.dir" location="${build.extra166y.dir}/docs"/>
131    
132      <property name="dist.docs.dir"          location="${dist.dir}/docs"/>
133      <property name="dist.4jdk7docs.dir"     location="${dist.dir}/jsr166-4jdk7docs"/>
134      <property name="dist.jsr166xdocs.dir"   location="${dist.dir}/jsr166xdocs"/>
135      <property name="dist.jsr166ydocs.dir"   location="${dist.dir}/jsr166ydocs"/>
136      <property name="dist.jsr166edocs.dir"   location="${dist.dir}/jsr166edocs"/>
137      <property name="dist.extra166ydocs.dir" location="${dist.dir}/extra166ydocs"/>
138    
139    <!-- Jar locations -->    <!-- Jar locations -->
140    <property name="product.jar"          location="${build.lib.dir}/jsr166.jar"/>    <property name="product.jar"      location="${build.dir}/jsr166.jar"/>
141    <property name="jsr166xproduct.jar"   location="${build.jsr166xlib.dir}/jsr166x.jar"/>    <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>
142    <property name="junit.jar"            location="${lib.dir}/junit.jar"/>    <property name="jsr166x.jar"      location="${build.jsr166x.dir}/jsr166x.jar"/>
143    <property name="concurrent.jar"       location="${lib.dir}/concurrent.jar"/>    <property name="jsr166y.jar"      location="${build.jsr166y.dir}/jsr166y.jar"/>
144      <property name="jsr166e.jar"      location="${build.jsr166e.dir}/jsr166e.jar"/>
145    <!-- Bootclasspath argument -->    <property name="extra166y.jar"    location="${build.extra166y.dir}/extra166y.jar"/>
146    <property name="bootclasspath.args"   value="-Xbootclasspath/p:${product.jar}"/>    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
147    
148      <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
149      <property name="jdkapi5docs.url"      value="http://docs.oracle.com/javase/1.5.0/docs/api/"/>
150      <property name="jdkapi6docs.url"      value="http://docs.oracle.com/javase/6/docs/api/"/>
151      <property name="jdkapi7docs.url"      value="http://docs.oracle.com/javase/7/docs/api/"/>
152    
153      <property name="jdkapi8docs.url"      value="http://download.java.net/jdk8/docs/api/"/>
154      <!-- The below does not yet exist as of 2013-01 -->
155      <!-- <property name="jdkapi8docs.url" value="http://docs.oracle.com/javase/8/docs/api/"/> -->
156    
157      <!-- Default jdk api doc location (latest stable release seems best) -->
158      <property name="jdkapidocs.url"       value="${jdkapi7docs.url}"/>
159    
160      <!-- Define the "jtreg" task -->
161      <!-- See the docs in "jtreg -onlineHelp" -->
162      <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant"
163               classpath="${lib.dir}/jtreg.jar" />
164    
165    <!-- Test classpath -->    <!-- Test classpath -->
166    <path id="test.classpath">    <path id="test.classpath">
# Line 77  Line 168 
168      <pathelement location="${junit.jar}"/>      <pathelement location="${junit.jar}"/>
169    </path>    </path>
170    
171      <macrodef name="run-tck-tests">
172        <attribute name="tck.src.dir" default="${tck.src.dir}"/>
173        <attribute name="source" default="6"/>
174        <attribute name="target"/>
175        <attribute name="workdir"/>
176        <attribute name="classes"/>
177        <attribute name="jvmflags" default=""/>
178        <sequential>
179    
180        <mkdir dir="@{workdir}/tck-classes"/>
181    
182        <javac srcdir="@{tck.src.dir}"
183               destdir="@{workdir}/tck-classes"
184               debug="${build.debug}"
185               debuglevel="${build.debuglevel}"
186               deprecation="${build.deprecation}"
187               source="@{source}"
188               classpath="${junit.jar}"
189               bootclasspath="@{classes}:${bootclasspath@{source}}"
190               includeAntRuntime="false"
191               includeJavaRuntime="false"
192               executable="${javac@{target}}"
193               fork="true">
194    
195          <include name="*.java"/>
196          <compilerarg value="-XDignore.symbol.file=true"/>
197          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
198          <compilerarg line="${build.args}"/>
199    
200        </javac>
201    
202        <java classname="JSR166TestCase"
203              failonerror="true"
204              jvm="${java@{target}}"
205              fork="true">
206            <jvmarg value="-Xbootclasspath/p:@{classes}"/>
207            <jvmarg line="@{jvmflags}"/>
208            <classpath>
209              <pathelement location="${junit.jar}"/>
210              <pathelement location="@{workdir}/tck-classes"/>
211            </classpath>
212        </java>
213    
214        </sequential>
215      </macrodef>
216    
217    <!-- ALoops classpath -->    <!-- ALoops classpath -->
218    <path id="loops.classpath">    <path id="loops.classpath">
219      <pathelement location="${build.loops.dir}"/>      <pathelement location="${build.loops.dir}"/>
220    </path>    </path>
221    
222    <!-- J1 classpath -->    <!-- Support @jls tag, used in jdk8+ javadoc -->
223    <path id="j1.classpath">    <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
224      <pathelement location="${build.classes.dir}"/>    <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
     <pathelement location="${build.j1.dir}"/>  
     <pathelement location="${junit.jar}"/>  
   
     <!-- Include dl.u.c for BoundedBuffer comparison -->  
     <pathelement location="${concurrent.jar}"/>  
   </path>  
   
225    
226    <!-- Main targets -->    <!-- Main targets -->
227    
228      <target name="dists"
229              depends="dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
230              description="Builds all public jars and docs"/>
231    
232    <target name="compile"    <target name="compile"
233            depends="init, configure-compiler"            depends="configure-compiler"
234            description="Compiles main sources to build folder">            description="Compiles src/main sources to build dir">
235    
236      <mkdir dir="${build.classes.dir}"/>      <mkdir dir="${build.classes.dir}"/>
237    
238      <javac srcdir="${src.dir}"      <javac srcdir="${src.dir}"
239            destdir="${build.classes.dir}"             destdir="${build.classes.dir}"
240              debug="${build.debug}"             debug="${build.debug}"
241         debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
242        deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
243             source="${build.sourcelevel}"             classpath=""
244               fork="true">             includeAntRuntime="false"
245               includeJavaRuntime="false"
246               executable="${javac8}"
247               fork="true">
248    
249        <include name="**/*.java"/>        <include name="**/*.java"/>
250  <!--        <compilerarg value="-XDignore.symbol.file=true"/>
251        <exclude name="java/lang/**"/>        <compilerarg value="-Xlint:all"/>
252        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
       <compilerarg line="-Xlint -Xmaxwarns 1000"/>  
 -->  
253    
254      </javac>      </javac>
   
255    </target>    </target>
256    
257    
   
258    <target name="jar"    <target name="jar"
259            depends="compile"            depends="compile"
260            description="Builds library jar from compiled sources">            description="Builds library jar from compiled sources">
261    
     <mkdir dir="${build.lib.dir}"/>  
   
262      <jar destfile="${product.jar}">      <jar destfile="${product.jar}">
263        <fileset dir="${build.classes.dir}"/>        <fileset dir="${build.classes.dir}"/>
264      </jar>      </jar>
   
265    </target>    </target>
266    
267    
   
268    <target name="test"    <target name="test"
269            depends="init, configure-tests, report-tests"            depends="configure-tests, report-tests"
270            description="Runs all tests (requires JUnit 3.8.1 in ${ant.home}/lib)" />            description="Runs all tests (requires JUnit 3.8.1 in ${ant.home}/lib)" />
271    
272    
   
273    <target name="docs"    <target name="docs"
274            description="Builds javadocs with custom tags to build folder">            description="Builds javadocs for src/main to dist dir">
275    
276      <delete dir="${build.javadocs.dir}"/>      <delete dir="${docs.dir}"/>
277      <mkdir dir="${build.javadocs.dir}"/>      <mkdir dir="${docs.dir}"/>
278    
279      <javadoc destdir="${build.javadocs.dir}"      <!-- the packagenames="none" hack below prevents scanning the -->
280                  link="http://java.sun.com/j2se/1.5.0/docs/api"      <!-- sourcepath for packages -->
             overview="${src.dir}/intro.html"  
             sourcepath="${src.dir}:/home/dl/1.6.0/j2se/martin/j2se/src/share/classes"  
     >            
281    
282        <packageset dir="${src.dir}"/>      <javadoc destdir="${docs.dir}"
283                 packagenames="none"
284      </javadoc>               link="${jdkapi8docs.url}"
285                 overview="${src.dir}/intro.html"
286    </target>               access="${build.javadoc.access}"
287                 sourcepath="${src.dir}:${jdk8src.dir}"
288                 classpath=""
289                 executable="${javadoc8}">
290    <target name="doccheck"        <fileset dir="${src.dir}" defaultexcludes="yes">
291            depends="filter-doccheck"          <include name="**/*.java"/>
292            description="Reports on javadoc style errors">        </fileset>
293          <arg value="-XDignore.symbol.file=true"/>
294      <delete dir="${build.doccheck.dir}"/>        <arg value="-tag"/>
295      <mkdir dir="${build.doccheck.dir}"/>        <arg value="${javadoc.jls.option}"/>
   
     <javadoc doclet="com.sun.tools.doclets.doccheck.DocCheck"  
          docletpath="${lib.dir}/doccheck.jar"  
             destdir="${build.doccheck.dir}">  
       <packageset dir="${build.dc-filter.dir}"/>  
296      </javadoc>      </javadoc>
   
     <echo>DocCheck output is in ${build.doccheck.dir}</echo>  
   
   </target>  
   
   
   
   <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-3.1.jar"/>  
   
     <mkdir dir="${build.checkstyle.dir}"/>  
   
     <checkstyle config="etc/checkstyle/sun_checks.xml"  
        failOnViolation="false">  
       <formatter type="xml" toFile="${build.checkstyle.dir}/checkstyle-report.xml"/>  
       <fileset dir="${build.filter.src.dir}" includes="**/*.java"/>  
     </checkstyle>  
   
     <style in="${build.checkstyle.dir}/checkstyle-report.xml"  
           out="${build.checkstyle.dir}/checkstyle-report.html"  
         style="${stylesheet.dir}/checkstyle-frames.xsl"/>  
   
297    </target>    </target>
298    
299    
   
300    <target name="dist"    <target name="dist"
301            depends="init, dist-clean, dist-jar, dist-docs"            depends="dist-clean, dist-jar, dist-docs"
302            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
303    
304    
   
305    <target name="release"    <target name="release"
306            depends="dist"            depends="dist"
307            description="Puts entire CVS tree, plus distribution productions, in a jar">            description="Puts entire CVS tree, plus distribution productions, in a jar">
# Line 226  Line 317 
317        <exclude name="**/SyntaxTest.java"/>        <exclude name="**/SyntaxTest.java"/>
318        <exclude name="**/SuperfluousAbstract.java"/>        <exclude name="**/SuperfluousAbstract.java"/>
319      </jar>      </jar>
   
320    </target>    </target>
321    
322    
   
323    <target name="clean"    <target name="clean"
324            description="Removes all build products">            description="Removes all build products">
325    
326      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
     <delete dir="${build.classes.dir}"/>  
     <delete dir="${build.lib.dir}"/>  
327    
328    </target>    </target>
329    
330    
   
331    <target name="dist-clean"    <target name="dist-clean"
332            description="Removes all build and distribution products">            description="Removes all build and distribution products">
333    
# Line 250  Line 336 
336    </target>    </target>
337    
338    
   
   <target name="dist-docs"  
           description="Builds javadocs without custom tags to dist folder">  
   
     <delete dir="${dist.javadocs.dir}"/>  
     <mkdir dir="${dist.javadocs.dir}"/>  
   
     <javadoc destdir="${dist.javadocs.dir}"  
               link="http://java.sun.com/j2se/1.5.0/docs/api"  
             overview="${src.dir}/intro.html"  
   
             sourcepath="${src.dir}:/home/dl/1.6.0/j2se/martin/j2se/src/share/classes"  
      >  
       <packageset dir="${src.dir}" defaultexcludes="yes">  
       <include name="java/util/concurrent"/>  
       <include name="java/util/concurrent/atomic"/>  
       <include name="java/util/concurrent/locks"/>  
       </packageset>  
       <fileset dir="${topsrc.dir}" defaultexcludes="yes">  
       <include name="main/java/util/*.java"/>  
       <include name="main/java/util/*.html"/>  
 <!--      <include name="jsr166x/*.java"/> -->  
       </fileset>  
     </javadoc>  
   
   </target>  
   
   
   
339    <!-- Internal targets -->    <!-- Internal targets -->
340    
341    
   <target name="init">  
   
     <!-- Version is kept in a separate file -->  
     <loadfile property="version" srcFile="version.properties"/>  
     <echo>Building JSR-166 version ${version}</echo>  
     <echo>java.home is ${java.home}</echo>  
   
   </target>  
   
   
342    <target name="dist-jar"    <target name="dist-jar"
343            depends="clean, jar">            depends="clean, jar">
   
344      <copy file="${product.jar}" todir="${dist.dir}"/>      <copy file="${product.jar}" todir="${dist.dir}"/>
   
345    </target>    </target>
346    
347      <target name="dist-docs"
348    <target name="compile-ant-filter"            depends="clean, docs">
349            depends="init">      <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
   
     <mkdir dir="${build.ant.dir}"/>  
   
     <javac srcdir="${ant.src.dir}"  
           destdir="${build.ant.dir}"  
            source="1.4"/>  
   
   </target>  
   
   
   <target name="filter-src"  
           depends="compile-ant-filter">  
   
     <mkdir dir="${build.filter.src.dir}"/>  
   
     <copy todir="${build.filter.src.dir}">  
       <fileset dir="${src.dir}">  
         <include name="**/*.html"/>  
       </fileset>  
     </copy>  
   
     <copy todir="${build.filter.src.dir}">  
       <fileset dir="${src.dir}">  
         <exclude name="**/*.html"/>  
         <!-- Files excluded from dist-docs -->  
         <exclude name="java/util/Random.*"/>  
         <exclude name="sun/misc/Unsafe.*"/>  
       </fileset>  
       <!--  
       <filterchain>  
       -->  
   
         <!--  
          # 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.)  
          -->  
   
         <!--  
         <filterreader classname="jsr166.ant.filters.ReplaceFilter"  
                       classpath="${build.ant.dir}">  
           <param name="notmatching" value="^\s+\*\s.*$"/>  
           <param name="pattern"     value="&lt;[^|>()]+?>+"/>  
           <param name="replacement" value=" "/>  
         </filterreader>  
         -->  
   
       <!--  
       </filterchain>  
       -->  
     </copy>  
   
   </target>  
   
   
   <target name="filter-doccheck"  
           depends="filter-src">  
   
     <mkdir dir="${build.dc-filter.dir}"/>  
   
     <copy todir="${build.dc-filter.dir}">  
       <fileset dir="${build.filter.src.dir}">  
         <include name="**/*.html"/>  
       </fileset>  
     </copy>  
   
     <property name="generic.declarations"  
              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 {}"  
     />  
   
     <copy todir="${build.dc-filter.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>  
   
       </filterchain>  
     </copy>  
   
350    </target>    </target>
351    
352    
# Line 417  Line 356 
356      <mkdir dir="${build.testcases.dir}"/>      <mkdir dir="${build.testcases.dir}"/>
357    
358      <javac srcdir="${tck.src.dir}"      <javac srcdir="${tck.src.dir}"
359            destdir="${build.testcases.dir}"             destdir="${build.testcases.dir}"
360              debug="${build.debug}"             debug="${build.debug}"
361         debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
362        deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
363             source="${build.sourcelevel}"             source="6"
364               fork="true">             classpath="${junit.jar}"
365               bootclasspath="@{product.jar}:${bootclasspath6}"
366               includeAntRuntime="false"
367               includeJavaRuntime="false"
368               executable="${javac8}"
369               fork="true">
370    
371        <compilerarg value="${bootclasspath.args}"/>        <include name="**/*.java"/>
372          <compilerarg value="-XDignore.symbol.file=true"/>
373          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
374        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
375    
       <classpath refid="test.classpath"/>  
   
376      </javac>      </javac>
377    
378      <javac srcdir="${test.src.dir}"      <javac srcdir="${test.src.dir}"
379            destdir="${build.testcases.dir}"             destdir="${build.testcases.dir}"
380              debug="${build.debug}"             debug="${build.debug}"
381         debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
382        deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
383             source="${build.sourcelevel}"             source="6"
384               fork="true">             classpath=""
385               bootclasspath="@{product.jar}:${bootclasspath6}"
386        <include name="jsr166/test/**"/>             includeAntRuntime="false"
387               includeJavaRuntime="false"
388        <compilerarg value="${bootclasspath.args}"/>             executable="${javac8}"
389               fork="true">
390    
391          <include name="jsr166/test/**/*.java"/>
392          <compilerarg value="-XDignore.symbol.file=true"/>
393          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
394        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
395    
       <classpath refid="test.classpath"/>  
   
396      </javac>      </javac>
397    
398  <!--  <!--
# Line 457  Line 404 
404             source="${build.sourcelevel}"             source="${build.sourcelevel}"
405               fork="true">               fork="true">
406    
407        <compilerarg value="${bootclasspath.args}"/>        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
408          <compilerarg value="-XDignore.symbol.file=true"/>
409        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
410    
       <classpath refid="test.classpath"/>  
   
411      </javac>      </javac>
412  -->  -->
413    
414    </target>    </target>
415    
416      <target name="test-tck"
417              depends="jar"
418              description="Runs tck tests for main directly">
419    
420        <run-tck-tests
421          target="8"
422          workdir="${build.dir}"
423          classes="${product.jar}"/>
424      </target>
425    
426    <target name="run-tests"    <target name="run-tests"
427            depends="compile-tests">            depends="compile-tests">
# Line 481  Line 436 
436            errorProperty="junit.failed"            errorProperty="junit.failed"
437          failureProperty="junit.failed"          failureProperty="junit.failed"
438                      dir="${build.reports.dir}"                      dir="${build.reports.dir}"
439                        jvm="${java8}"
440                     fork="true">                     fork="true">
441    
442        <jvmarg value="${bootclasspath.args}"/>        <jvmarg value="-Xbootclasspath/p:${product.jar}"/>
443        <jvmarg value="-server"/>        <jvmarg value="-server"/>
444        <jvmarg value="-showversion"/>        <jvmarg value="-showversion"/>
445    
# Line 531  Line 487 
487        <fileset dir="${build.reports.dir}">        <fileset dir="${build.reports.dir}">
488          <include name="TEST-*.xml"/>          <include name="TEST-*.xml"/>
489        </fileset>        </fileset>
490        <report styledir="${stylesheet.dir}"        <report format="${junit.report.format}" todir="${build.reports.dir}"
                 format="${junit.report.format}"  
                  todir="${build.reports.dir}"  
491        />        />
492      </junitreport>      </junitreport>
493    
# Line 583  Line 537 
537    </target>    </target>
538    
539    
540      <!-- Various demos and test programs -->
541    
   <!-- Anthill targets -->  
542    
543    <target name="anthill-build">    <target name="loops" depends="configure-compiler"
544              description="Benchmark from Doug Lea's AQS paper">
545    
546      <!-- Override this in user.properties -->      <mkdir dir="${build.loops.dir}"/>
     <property name="tiger.home" location="e:/j2sdk1.5.0"/>  
547    
548      <exec resultproperty="result.property" dir="${basedir}" executable="${tiger.home}/bin/java">      <javac srcdir="${loops.src.dir}"
549        <arg value="-Xmx256000000"/>            destdir="${build.loops.dir}"
550        <!-- classpath of new JVM -->              debug="${build.debug}"
551        <arg value="-classpath"/> <arg path="${java.class.path}"/>         debuglevel="${build.debuglevel}"
552        <!-- location of Ant home directory -->        deprecation="${build.deprecation}"
553        <arg value="-Dant.home=${ant.home}"/>             source="${build.sourcelevel}"
554        <!-- the Ant main class -->               fork="true">
       <arg value="org.apache.tools.ant.Main"/>  
       <!-- The build file -->  
       <arg value="-buildfile"/>  <arg value="build.xml"/>  
       <!-- the target to build on the new Ant instance -->  
       <arg value="-DJAVA_HOME=${tiger.home}"/>  
       <arg value="do-anthill-build"/>  
     </exec>  
   </target>  
555    
556    <target name="do-anthill-build"        <compilerarg line="${build.args}"/>
557            depends="jar, test, docs, dist-docs"/>        <classpath refid="loops.classpath"/>
558          <compilerarg value="-XDignore.symbol.file=true"/>
559    
560    <target name="anthill-publish">      </javac>
561    
562      <copy todir="${deployDir}/docs/private">      <java classname="ALoops" fork="true">
563        <fileset dir="${build.javadocs.dir}"/>        <classpath refid="loops.classpath"/>
564      </copy>      </java>
565    
566      <copy todir="${deployDir}/docs/public">    </target>
       <fileset dir="${dist.javadocs.dir}"/>  
     </copy>  
567    
     <copy tofile="${deployDir}/index.html"  
           file="${basedir}/etc/anthill-index.html"/>  
568    
569      <copy todir="${deployDir}/notes">    <!-- jsr166 4jdk7 -->
       <fileset dir="${basedir}/etc/notes"/>  
     </copy>  
570    
571    </target>    <target name="4jdk7compile"
572              depends="configure-compiler"
573              description="Compiles src/jdk7 sources, targeting jdk7">
574    
575        <mkdir dir="${build.4jdk7.classes.dir}"/>
576    
577        <javac srcdir="${4jdk7src.dir}"
578               destdir="${build.4jdk7.classes.dir}"
579               debug="${build.debug}"
580               debuglevel="${build.debuglevel}"
581               deprecation="${build.deprecation}"
582               source="6"
583               classpath=""
584               bootclasspath="${bootclasspath6}"
585               includeAntRuntime="false"
586               includeJavaRuntime="false"
587               executable="${javac7}"
588               fork="true">
589    
590          <include name="**/*.java"/>
591          <compilerarg value="-XDignore.symbol.file=true"/>
592          <compilerarg value="-Xlint:all"/>
593          <compilerarg line="${build.args}"/>
594    
595        </javac>
596      </target>
597    
   <!-- Various demos and test programs -->  
598    
599      <target name="4jdk7jar"
600              depends="4jdk7compile"
601              description="Builds library jar from compiled sources">
602    
603    <target name="sample" depends="init, configure-compiler"      <jar destfile="${4jdk7product.jar}">
604            description="Standalone demo program">        <fileset dir="${build.4jdk7.classes.dir}"/>
605        </jar>
606    
607      <mkdir dir="${build.testcases.dir}"/>    </target>
608    
     <javac srcdir="${test.src.dir}"  
           destdir="${build.testcases.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
609    
610        <include name="jsr166/test/Sample.java"/>    <target name="4jdk7-test-tck"
611              depends="4jdk7jar"
612              description="Runs tck tests for jsr166-4jdk7 directly">
613    
614      </javac>      <run-tck-tests
615          target="7"
616          workdir="${build.4jdk7.dir}"
617          classes="${4jdk7product.jar}"/>
618      </target>
619    
     <copy todir="${build.testcases.dir}">  
       <fileset dir="${test.src.dir}">  
         <include name="**/*.properties"/>  
       </fileset>  
     </copy>  
620    
621      <target name="4jdk7-test-tck-junit"
622              depends="4jdk7compile"
623              description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">
624    
625      <java classname="jsr166.test.Sample" fork="true">      <junit printsummary="true"
626        <classpath refid="test.classpath"/>             showoutput="true"
627        <!-- <jvmarg value="-ea"/> -->             errorProperty="junit.failed"
628        <!-- <jvmarg value="-server"/> -->             failureProperty="junit.failed"
629        <!-- <arg value="1000"/> -->             includeantruntime="true"
630      </java>             jvm="${java7}"
631    </target>             fork="true">
632    
633          <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
634          <jvmarg value="-server"/>
635    
636    <target name="loops" depends="init, configure-compiler"        <classpath>
637            description="Benchmark from Doug Lea's AQS paper">          <pathelement location="${junit.jar}"/>
638            <pathelement location="${build.4jdk7.tck.classes.dir}"/>
639          </classpath>
640    
641      <mkdir dir="${build.loops.dir}"/>        <formatter type="brief"/>
642    
643      <javac srcdir="${loops.src.dir}"        <test name="JSR166TestCase" haltonfailure="no">
644            destdir="${build.loops.dir}"        </test>
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
645    
646        <compilerarg line="${build.args}"/>      </junit>
647        <classpath refid="loops.classpath"/>    </target>
648    
649      </javac>    <target name="4jdk7-test-jtreg"
650              depends="4jdk7compile"
651              description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">
652        <delete dir="${build.4jdk7.dir}/JTwork"   quiet="true"/>
653        <delete dir="${build.4jdk7.dir}/JTreport" quiet="true"/>
654        <mkdir dir="${build.4jdk7.dir}/JTwork/scratch"/>
655        <mkdir dir="${build.4jdk7.dir}/JTreport"/>
656        <jtreg dir="${jtreg.src.dir}"
657               jdk="${jdk7.home}"
658               workDir="${build.4jdk7.dir}/JTwork"
659               reportDir="${build.4jdk7.dir}/JTreport">
660    
661          <arg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
662          <arg value="-agentvm"/>
663          <arg value="-v:nopass,fail"/>
664          <arg value="-vmoptions:-esa -ea"/>
665          <arg value="-automatic"/>
666          <arg value="-k:!ignore"/>
667        </jtreg>
668      </target>
669    
     <java classname="ALoops" fork="true">  
       <classpath refid="loops.classpath"/>  
     </java>  
670    
671      <target name="4jdk7-test"
672              depends="4jdk7-test-tck, 4jdk7-test-jtreg"
673              description="Runs tck and jtreg tests for jsr166-4jdk7">
674    </target>    </target>
675    
676    
677    <target name="compile-j1" depends="init, configure-compiler, compile">    <target name="4jdk7docs"
678              description="Builds javadocs for src/jdk7 to dist dir">
679    
680        <delete dir="${4jdk7docs.dir}"/>
681        <mkdir dir="${4jdk7docs.dir}"/>
682    
683        <javadoc destdir="${4jdk7docs.dir}"
684                 packagenames="none"
685                 link="${jdkapi7docs.url}"
686                 overview="${4jdk7src.dir}/intro.html"
687                 access="${build.javadoc.access}"
688                 sourcepath="${4jdk7src.dir}:${jdk7src.dir}"
689                 classpath=""
690                 executable="${javadoc7}">
691          <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
692            <include name="**/*.java"/>
693          </fileset>
694          <arg value="-XDignore.symbol.file=true"/>
695        </javadoc>
696      </target>
697    
     <mkdir dir="${build.j1.dir}"/>  
698    
699      <javac srcdir="${j1.src.dir}"    <target name="4jdk7dist"
700            destdir="${build.j1.dir}"            depends="4jdk7dist-jar, 4jdk7dist-docs"
701              debug="${build.debug}"            description="Puts all distributable products in single hierarchy"/>
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}" >  
702    
       <include name="**/*.java"/>  
       <exclude name="**/dijkstra/**"/>  
703    
704        <compilerarg line="${build.args}"/>    <target name="4jdk7clean"
705        <classpath refid="j1.classpath"/>            description="Removes all 4jdk7 build products">
706    
707      </javac>      <delete dir="${build.4jdk7.dir}"/>
708    
709    </target>    </target>
710    
711    
712    <target name="sw" depends="compile-j1"    <target name="4jdk7dist-clean"
713            description="Runs the SwingWorker demo">            description="Removes all build and distribution products">
714    
715      <!--    </target>
     <java classname="jsr166.swing.SwingWorkerDemo" fork="true">  
       <classpath refid="j1.classpath"/>  
     </java>  
     -->  
716    
717      <copy todir="${build.j1.dir}" file="${j1.src.dir}/jsr166/swing/SwingWorker.html"/>    <target name="4jdk7dist-jar"
718              depends="4jdk7clean, 4jdk7jar">
719        <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
720      </target>
721    
     <exec dir="${build.j1.dir}" executable="appletviewer.exe">  
       <arg value="${build.j1.dir}/SwingWorker.html"/>  
     </exec>  
722    
723      <target name="4jdk7dist-docs"
724              depends="4jdk7clean, 4jdk7docs">
725        <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
726    </target>    </target>
727    
   <target name="j1" depends="compile-j1"  
           description="Runs a standalone JavaOne program">  
728    
729      <java classname="${j1.test}" fork="true">    <!-- jsr166x -->
       <classpath refid="j1.classpath"/>  
       <jvmarg value="-client"/>  
730    
731        <!-- TestPseudoRandom args -->    <target name="jsr166xcompile"
732        <arg value="2"/>            depends="configure-compiler"
733        <arg value="25"/>            description="Compiles jsr166x sources to build dir">
       <arg value="100000"/>  
734    
735        <!-- WebCrawler args -->      <mkdir dir="${build.jsr166x.classes.dir}"/>
       <!--  
       <arg value="jsr166.webcrawler.WebCrawler3"/>  
       <arg value="http://www.priorartisans.com"/>  
       <arg value="25"/>  
       -->  
736    
737      </java>      <javac srcdir="${topsrc.dir}"
738               destdir="${build.jsr166x.classes.dir}"
739               debug="${build.debug}"
740               debuglevel="${build.debuglevel}"
741               deprecation="${build.deprecation}"
742               classpath=""
743               bootclasspath="${bootclasspath6}"
744               source="5"
745               includeAntRuntime="false"
746               includeJavaRuntime="false"
747               executable="${javac7}"
748               fork="true">
749    
750          <include name="jsr166x/**/*.java"/>
751          <compilerarg value="-XDignore.symbol.file=true"/>
752          <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
753          <compilerarg line="${build.args}"/>
754    
755        </javac>
756    </target>    </target>
757    
758    
759    <target name="test-j1" depends="compile-j1"    <target name="jsr166xjar"
760            description="Runs testcases from the JavaOne source directories">            depends="jsr166xcompile"
761              description="Builds library jar from compiled sources">
     <junit printsummary="true"  
              showoutput="true"  
           errorProperty="junit.failed"  
         failureProperty="junit.failed"  
                     dir="${build.j1.dir}"  
                    fork="true">  
762    
763        <!-- <jvmarg value="-server"/> -->      <jar destfile="${jsr166x.jar}">
764        <classpath refid="j1.classpath"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
765        <formatter type="xml"/>      </jar>
766    
767        <batchtest todir="${build.j1.dir}">    </target>
         <fileset dir="${j1.src.dir}">  
           <include name="**/*Test.java"/>  
         </fileset>  
       </batchtest>  
768    
     </junit>  
769    
770      <available property="junit.report.format"    <target name="jsr166xdocs"
771                    value="frames"            description="Builds javadocs to dist dir">
               classname="org.apache.xalan.lib.Redirect"/>  
     <property name="junit.report.format" value="noframes"/>  
772    
773      <junitreport todir="${build.j1.dir}">      <delete dir="${jsr166xdocs.dir}"/>
774        <fileset dir="${build.j1.dir}">      <mkdir dir="${jsr166xdocs.dir}"/>
         <include name="TEST-*.xml"/>  
       </fileset>  
       <report styledir="${stylesheet.dir}"  
                 format="${junit.report.format}"  
                  todir="${build.j1.dir}"  
       />  
     </junitreport>  
775    
776      <fail message="Test Cases Failed" if="junit.failed"/>      <javadoc destdir="${jsr166xdocs.dir}"
777                 packagenames="jsr166x.*"
778                 link="${jdkapidocs.url}"
779                 access="${build.javadoc.access}"
780                 sourcepath="${topsrc.dir}:${jdk6src.dir}"
781                 bootclasspath="${bootclasspath6}"
782                 source="5"
783                 executable="${javadoc7}">
784          <arg value="-XDignore.symbol.file=true"/>
785    
786        </javadoc>
787    </target>    </target>
788    
789    
790      <target name="jsr166xdist"
791              depends="jsr166xdist-jar, jsr166xdist-docs"
792              description="Puts all distributable products in single hierarchy"/>
793    
   <!-- C++ and JNI definitions and demos -->  
794    
795    <target name="configure-cpp">    <target name="jsr166xclean"
796              description="Removes all jsr166x build products">
797    
798      <!-- Define tasks and types -->      <delete dir="${build.jsr166x.dir}"/>
799    
800      <path id="cpptasks.path">    </target>
       <pathelement location="${lib.dir}/cpptasks.jar"/>  
     </path>  
     <taskdef resource="cpptasks.tasks" classpathref="cpptasks.path"/>  
     <typedef resource="cpptasks.types" classpathref="cpptasks.path"/>  
801    
     <!-- Set platform property for JNI includes -->  
802    
803      <condition property="platform" value="linux">    <target name="jsr166xdist-clean"
804        <os name="Linux"/>            description="Removes all build and distribution products">
     </condition>  
     <condition property="platform" value="win32">  
       <os family="windows"/>  
     </condition>  
     <condition property="platform" value="solaris">  
       <os name="SunOS"/>  
     </condition>  
805    
806    </target>    </target>
807    
808    
809    <target name="cppdemo" depends="configure-cpp">    <target name="jsr166xdist-jar"
810              depends="jsr166xclean, jsr166xjar">
811        <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
812      </target>
813    
814      <target name="jsr166xdist-docs"
815              depends="jsr166xclean, jsr166xdocs">
816        <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
817      </target>
818    
819      <mkdir dir="${build.dir}"/>    <!-- jsr166y -->
820    
     <cc multithreaded="true"  
                  name="g++"  
                objdir="${build.dir}"  
               outfile="${build.dir}/CppDemo">  
       <fileset dir="${test.src.dir}" includes="CppDemo.cpp"/>  
       <libset libs="stdc++"/>  
     </cc>  
821    
822      <exec executable="${build.dir}/CppDemo">    <target name="jsr166ycompile"
823        <arg line="count in word frequency of word in command line count"/>            depends="configure-compiler"
824      </exec>            description="Compiles jsr166y sources">
825    
826        <mkdir dir="${build.jsr166y.classes.dir}"/>
827    
828        <javac srcdir="${topsrc.dir}"
829               destdir="${build.jsr166y.classes.dir}"
830               debug="${build.debug}"
831               debuglevel="${build.debuglevel}"
832               deprecation="${build.deprecation}"
833               source="6"
834               classpath=""
835               bootclasspath="${bootclasspath6}"
836               includeAntRuntime="false"
837               includeJavaRuntime="false"
838               executable="${javac7}"
839               fork="true">
840    
841          <include name="jsr166y/**/*.java"/>
842          <compilerarg value="-XDignore.symbol.file=true"/>
843          <compilerarg value="-Xlint:all"/>
844          <compilerarg line="${build.args}"/>
845    
846        </javac>
847    </target>    </target>
848    
849    
850    <target name="jnidemo" depends="init, configure-compiler, configure-cpp">    <target name="jsr166yjar"
851              depends="jsr166ycompile"
852              description="Builds library jar from compiled sources">
853    
854        <jar destfile="${jsr166y.jar}" index="true">
855          <fileset dir="${build.jsr166y.classes.dir}"/>
856        </jar>
857    
858      <mkdir dir="${build.testcases.dir}"/>    </target>
859    
     <javac srcdir="${test.src.dir}"  
           destdir="${build.testcases.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
       <compilerarg value="${bootclasspath.args}"/>  
       <compilerarg line="${build.args}"/>  
       <classpath refid="test.classpath"/>  
       <include name="JniDemo.java"/>  
     </javac>  
860    
861      <javah destdir="${build.testcases.dir}"    <target name="jsr166ydocs"
862        classpathref="test.classpath">            description="Builds javadocs to dist dir">
863        <class name="JniDemo"/>  
864      </javah>      <delete dir="${jsr166ydocs.dir}"/>
865        <mkdir dir="${jsr166ydocs.dir}"/>
     <cc multithreaded="true"  
                  name="g++"  
                objdir="${build.dir}"  
               outfile="${build.dir}/JniDemo"  
               outtype="shared">  
   
       <compiler>  
         <defineset>  
           <define name="__int64" value="long long"/>  
         </defineset>  
         <includepath location="${java.home}/../include"/>  
         <includepath location="${java.home}/../include/${platform}"/>  
         <compilerarg value="-mno-cygwin"/>  
       </compiler>  
   
       <linker>  
         <linkerarg value="--add-stdcall-alias"/>  
       </linker>  
   
       <includepath location="${build.testcases.dir}"/>  
   
       <fileset dir="${test.src.dir}" includes="JniDemo.cpp"/>  
   
       <libset libs="stdc++"/>  
   
     </cc>  
   
     <!-- Necessary if windows, harmless if not -->  
     <copy file="${build.dir}/libJniDemo.so" tofile="${build.dir}/JniDemo.dll"/>  
   
     <java classname="JniDemo" fork="true">  
       <!-- Watch out: path separator hardwired to semicolon here! -->  
       <sysproperty key="java.library.path" path="${java.library.path};${build.dir}"/>  
       <classpath refid="test.classpath"/>  
       <arg line="count in word frequency of word in command line count"/>  
     </java>  
866    
867        <javadoc destdir="${jsr166ydocs.dir}"
868                 packagenames="jsr166y.*"
869                 link="${jdkapidocs.url}"
870                 access="${build.javadoc.access}"
871                 sourcepath="${topsrc.dir}:${jdk6src.dir}"
872                 bootclasspath="${bootclasspath6}"
873                 source="6"
874                 executable="${javadoc7}">
875          <arg value="-XDignore.symbol.file=true"/>
876    
877        </javadoc>
878    </target>    </target>
879    
880    
881      <target name="jsr166ydist"
882              depends="jsr166ydist-jar, jsr166ydist-docs"
883              description="Puts all distributable products in single hierarchy"/>
884    
   <!-- Backward compatibility, work in progress (some files not checked in) -->  
885    
886      <target name="jsr166yclean"
887              description="Removes all jsr166y build products">
888    
889        <delete dir="${build.jsr166y.dir}"/>
890    
891    <property name="pretiger.src.dir"     location="${build.dir}/pretiger/src"/>    </target>
   <property name="build.pretiger.dir"   location="${build.dir}/pretiger/classes"/>  
   <property name="pretiger.jar"         location="${build.lib.dir}/jsr166-pretiger.jar"/>  
   <property name="pretiger.sourcelevel" value="1.4"/>  
892    
   <target name="defang"  
        depends="init"  
    description="Generates pre-Tiger compatible source">  
893    
894      <delete dir="${pretiger.src.dir}"/>    <target name="jsr166ydist-clean"
895      <mkdir dir="${pretiger.src.dir}"/>            description="Removes all build and distribution products">
896    
897      <exec executable="perl">    </target>
       <arg file="etc/defang.pl"/>  
       <!-- <arg value="-v"/> -->  
       <arg value="-s"/> <arg file="${src.dir}"/>  
       <arg value="-t"/> <arg file="${pretiger.src.dir}"/>  
     </exec>  
898    
899      <target name="jsr166ydist-jar"
900              depends="jsr166yclean, jsr166yjar">
901        <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
902    </target>    </target>
903    
904    <target name="compile-pretiger"    <target name="jsr166ydist-docs"
905            depends="init, configure-compiler, defang"            depends="jsr166yclean, jsr166ydocs">
906            description="Compiles pre-Tiger sources to build folder">      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
907      </target>
908    
     <mkdir dir="${build.pretiger.dir}"/>  
909    
910      <javac srcdir="${pretiger.src.dir}"    <!-- extra166y -->
           destdir="${build.pretiger.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${pretiger.sourcelevel}"  
              fork="true">  
911    
912    
913      <target name="extra166ycompile"
914              depends="configure-compiler, jsr166yjar"
915              description="Compiles extra166y sources">
916    
917        <mkdir dir="${build.extra166y.classes.dir}"/>
918    
919        <javac srcdir="${topsrc.dir}"
920               destdir="${build.extra166y.classes.dir}"
921               debug="${build.debug}"
922               debuglevel="${build.debuglevel}"
923               deprecation="${build.deprecation}"
924               bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
925               classpath=""
926               source="6"
927               includeAntRuntime="false"
928               includeJavaRuntime="false"
929               executable="${javac7}"
930               fork="true">
931    
932          <include name="extra166y/**/*.java"/>
933          <compilerarg value="-XDignore.symbol.file=true"/>
934          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
935        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
       <exclude name="**/Thread.java"/>  
936    
937      </javac>      </javac>
   
938    </target>    </target>
939    
   <target name="pretiger" depends="compile-pretiger">  
940    
941      <mkdir dir="${build.lib.dir}"/>    <target name="extra166yjar"
942              depends="extra166ycompile"
943              description="Builds library jar from compiled sources">
944    
945      <jar destfile="${pretiger.jar}">      <jar destfile="${extra166y.jar}" index="true">
946        <fileset dir="${build.pretiger.dir}">        <fileset dir="${build.extra166y.classes.dir}"/>
       </fileset>  
947      </jar>      </jar>
948    
949    </target>    </target>
950    
   <!-- jsr166x -->  
951    
952      <target name="extra166ydocs"
953              description="Builds javadocs to build dir">
954    
955    <target name="jsr166xcompile"      <delete dir="${extra166ydocs.dir}"/>
956            depends="init, configure-compiler"      <mkdir dir="${extra166ydocs.dir}"/>
           description="Compiles jsr166x sources">  
   
     <mkdir dir="${build.jsr166x.dir}"/>  
957    
958      <javac srcdir="${jsr166xsrc.dir}"      <javadoc destdir="${extra166ydocs.dir}"
959            destdir="${build.jsr166x.dir}"               packagenames="extra166y.*"
960              debug="${build.debug}"               link="${jdkapidocs.url}"
961         debuglevel="${build.debuglevel}"               access="${build.javadoc.access}"
962        deprecation="${build.deprecation}"               sourcepath="${topsrc.dir}:${jdk6src.dir}"
963             source="${build.sourcelevel}"               bootclasspath="${bootclasspath6}"
964               fork="true">               source="6"
965                 executable="${javadoc7}">
966        <include name="**/*.java"/>        <arg value="-XDignore.symbol.file=true"/>
       <compilerarg line="${build.args}"/>  
   
     </javac>  
967    
968        </javadoc>
969    </target>    </target>
970    
971    
972      <target name="extra166ydist"
973              depends="extra166ydist-jar, extra166ydist-docs"
974              description="Puts all distributable products in single hierarchy"/>
975    
   <target name="jsr166xjar"  
           depends="jsr166xcompile"  
           description="Builds library jar from compiled sources">  
976    
977      <mkdir dir="${build.jsr166xlib.dir}"/>    <target name="extra166yclean"
978              description="Removes all extra166y build products">
979    
980      <jar destfile="${jsr166xproduct.jar}">      <delete dir="${build.extra166y.dir}"/>
       <fileset dir="${build.jsr166x.dir}"/>  
     </jar>  
981    
982    </target>    </target>
983    
984    
985      <target name="extra166ydist-clean"
986              description="Removes all build and distribution products">
987    
988    <target name="jsr166xdocs"    </target>
989            description="Builds javadocs with custom tags to build folder">  
990      <target name="extra166ydist-jar"
991              depends="extra166yclean, extra166yjar">
992        <copy file="${extra166y.jar}" todir="${dist.dir}"/>
993      </target>
994    
995      <target name="extra166ydist-docs"
996              depends="extra166yclean, extra166ydocs">
997        <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
998      </target>
999    
1000      <!-- jsr166e -->
1001    
1002      <target name="jsr166ecompile"
1003              depends="configure-compiler"
1004              description="Compiles jsr166e sources">
1005    
1006        <mkdir dir="${build.jsr166e.classes.dir}"/>
1007    
1008        <javac srcdir="${topsrc.dir}"
1009               destdir="${build.jsr166e.classes.dir}"
1010               debug="${build.debug}"
1011               debuglevel="${build.debuglevel}"
1012               deprecation="${build.deprecation}"
1013               source="7"
1014               classpath=""
1015               includeAntRuntime="false"
1016               includeJavaRuntime="false"
1017               executable="${javac7}"
1018               fork="true">
1019    
1020          <include name="jsr166e/**/*.java"/>
1021          <compilerarg value="-XDignore.symbol.file=true"/>
1022          <compilerarg value="-Xlint:all"/>
1023          <compilerarg line="${build.args}"/>
1024    
1025      <delete dir="${build.jsr166xjavadocs.dir}"/>      </javac>
1026      <mkdir dir="${build.jsr166xjavadocs.dir}"/>    </target>
1027    
     <javadoc destdir="${build.jsr166xjavadocs.dir}"  
                 link="http://java.sun.com/j2se/1.5.0/docs/api/"  
             sourcepath="${jsr166xsrc.dir}:/home/dl/1.5.0/j2se/martin/j2se/src/share/classes"  
   
     >  
       <packageset dir="${topsrc.dir}" defaultexcludes="yes">  
       <include name="jsr166x"/>  
       </packageset>  
1028    
1029      <target name="jsr166ejar"
1030              depends="jsr166ecompile"
1031              description="Builds library jar from compiled sources">
1032    
1033      </javadoc>      <jar destfile="${jsr166e.jar}" index="true">
1034          <fileset dir="${build.jsr166e.classes.dir}"/>
1035        </jar>
1036    
1037    </target>    </target>
1038    
1039    
1040    <target name="jsr166xdist"    <target name="jsr166edocs"
1041            depends="jsr166xdist-clean, jsr166xdist-jar, jsr166xdist-docs"            description="Builds javadocs to build dir">
           description="Puts all distributable products in single hierarchy"/>  
1042    
1043        <delete dir="${jsr166edocs.dir}"/>
1044        <mkdir dir="${jsr166edocs.dir}"/>
1045    
1046        <javadoc destdir="${jsr166edocs.dir}"
1047                 packagenames="jsr166e.*"
1048                 link="${jdkapidocs.url}"
1049                 access="${build.javadoc.access}"
1050                 sourcepath="${topsrc.dir}:${jdk7src.dir}"
1051                 source="7"
1052                 executable="${javadoc7}">
1053          <arg value="-XDignore.symbol.file=true"/>
1054    
1055    <target name="jsr166xclean"      </javadoc>
1056            description="Removes all build products">    </target>
1057    
     <delete dir="${build.jsr166x.dir}"/>  
     <delete dir="${build.jsr166xlib.dir}"/>  
1058    
1059      <target name="jsr166e-test-tck"
1060              depends="jsr166ejar"
1061              description="Runs tck tests for jsr166e">
1062    
1063        <run-tck-tests
1064          tck.src.dir="${test.src.dir}/tck-jsr166e"
1065          source="7"
1066          target="8"
1067          workdir="${build.jsr166e.dir}"
1068          classes="${jsr166e.jar}"/>
1069    </target>    </target>
1070    
1071    
1072      <target name="jsr166edist"
1073              depends="jsr166edist-jar, jsr166edist-docs"
1074              description="Puts all distributable products in single hierarchy"/>
1075    
   <target name="jsr166xdist-clean"  
           description="Removes all build and distribution products">  
1076    
1077      <target name="jsr166eclean"
1078              description="Removes all jsr166e build products">
1079        <delete dir="${build.jsr166e.dir}"/>
1080    </target>    </target>
1081    
1082    
1083      <target name="jsr166edist-clean"
1084              description="Removes all build and distribution products">
1085    
1086    <target name="jsr166xdist-docs"    </target>
           description="Builds javadocs without custom tags to dist folder">  
   
     <delete dir="${dist.jsr166xjavadocs.dir}"/>  
     <mkdir dir="${dist.jsr166xjavadocs.dir}"/>  
   
     <javadoc destdir="${dist.jsr166xjavadocs.dir}"  
                 link="http://java.sun.com/j2se/1.5.0/docs/api/"  
               source="${build.sourcelevel}">  
   
       <packageset dir="${topsrc.dir}" defaultexcludes="yes">  
       <include name="jsr166x"/>  
       </packageset>  
1087    
1088      </javadoc>    <target name="jsr166edist-jar"
1089              depends="jsr166eclean, jsr166ejar">
1090        <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1091      </target>
1092    
1093      <target name="jsr166edist-docs"
1094              depends="jsr166eclean, jsr166edocs">
1095        <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1096    </target>    </target>
1097    
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1098    
1099      <copy file="${jsr166xproduct.jar}" todir="${dist.dir}"/>  <!-- Find buglets that can be detected by static build tools -->
1100    
1101      <target name="lint">
1102        <antcall target="dists">
1103          <param name="build.javadoc.access" value="private"/>
1104        </antcall>
1105    </target>    </target>
1106    
1107    
1108  </project>  </project>

Legend:
Removed from v.1.73  
changed lines
  Added in v.1.131

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