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

Diff of /jsr166/build.xml

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

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

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

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