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

Diff of /jsr166/build.xml

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

revision 1.10 by tim, Wed Dec 11 05:16:42 2002 UTC revision 1.21 by tim, Fri Mar 14 04:14:07 2003 UTC
# Line 1  Line 1 
1  <project name="jsr166" default="jar">  <project name="jsr166" default="usage">
2    
3    <description>    <description>
4      Build file for JSR-166      Build file for JSR-166
5    
6      Note that junit.jar must be in ${ant.home}/lib for the      JUnit 1.8 must be in ${ant.home}/lib for the test target to work.
     test target to work. [FIXME: This should be automatically  
     enforced by this build file by failing with a message if  
     junit.jar is not in the right place.]  
7    </description>    </description>
8    
9    
10      <target name="usage" description="Prints this message">
11        <echo>
12    ant [target], where target is one of:
13    
14     usage       (default) Prints this message
15     compile     Compiles all sources to build folder
16     jar         Builds library jar from compiled sources
17     test        Runs all tests (requires JUnit 1.8 in ${ant.home}/lib)
18     docs        Builds javadocs with custom tags to build folder
19     dist-docs   Builds javadocs without custom tags to dist folder
20     dist        Puts all distributable products in single hierarchy
21    
22     clean       Removes all build products
23     dist-clean  Removes all build and distribution products
24    
25     checkstyle  Reports on style errors in Java source (verbose, mostly chaff)
26     doccheck    Reports on javadoc style errors (not working yet)
27        </echo>
28      </target>
29    
30    
31    <!-- Compilation options -->    <!-- Compilation options -->
32      <property name="build.sourcelevel"    value="1.5"/>
33    <property name="build.debug"          value="true"/>    <property name="build.debug"          value="true"/>
34    <property name="build.debuglevel"     value="source,lines,vars"/>    <property name="build.debuglevel"     value="source,lines,vars"/>
35    <property name="build.deprecation"    value="false"/>    <property name="build.deprecation"    value="false"/>
36    <property name="build.sourcelevel"    value="1.5"/>    <!--
37      <property name="build.warnings"       value="true"/>
38      -->
39    
40    <!-- Build locations -->    <!-- Build locations -->
41    <property name="build.dir"            location="build"/>    <property name="build.dir"            location="build"/>
# Line 22  Line 44 
44    <property name="build.lib.dir"        location="${build.dir}/lib"/>    <property name="build.lib.dir"        location="${build.dir}/lib"/>
45    <property name="build.ant.dir"        location="${build.dir}/ant"/>    <property name="build.ant.dir"        location="${build.dir}/ant"/>
46    <property name="build.javadocs.dir"   location="${build.dir}/javadocs"/>    <property name="build.javadocs.dir"   location="${build.dir}/javadocs"/>
47      <property name="build.stripped.dir"   location="${build.dir}/stripped"/>
48    <property name="build.reports.dir"    location="${build.dir}/reports"/>    <property name="build.reports.dir"    location="${build.dir}/reports"/>
49      <property name="build.doccheck.dir"   location="${build.dir}/doccheck"/>
50    <property name="build.filter.src.dir" location="${build.dir}/filtersrc"/>    <property name="build.filter.src.dir" location="${build.dir}/filtersrc"/>
51    
52    <!-- Source locations -->    <!-- Source locations -->
# Line 43  Line 67 
67    <property name="junit.jar"            location="${lib.dir}/junit.jar"/>    <property name="junit.jar"            location="${lib.dir}/junit.jar"/>
68    <property name="rt.jar"               location="${java.home}/lib/rt.jar"/>    <property name="rt.jar"               location="${java.home}/lib/rt.jar"/>
69    
70    <property name="gj.compiler.args"    <property name="javac.args"           value='-J-Xbootclasspath/p:${javac.jar}'/>
            value='-J-Xbootclasspath/p:${javac.jar} -deprecation -warnunchecked'  
   />  
71    
72    <path id="gj.compiler.bootclasspath">    <path id="javac.bootclasspath">
73      <pathelement location="${collect.jar}"/>      <pathelement location="${collect.jar}"/>
74      <pathelement location="${rt.jar}"/>      <pathelement location="${rt.jar}"/>
75    </path>    </path>
# Line 57  Line 79 
79    </path>    </path>
80    
81    
82    <target name="compile">    <!-- Main targets -->
83    
84      <target name="compile" depends="init"
85              description="Compiles all sources to build folder">
86      <mkdir dir="${build.classes.dir}"/>      <mkdir dir="${build.classes.dir}"/>
87      <javac srcdir="${src.dir}"      <javac srcdir="${src.dir}"
88            destdir="${build.classes.dir}"            destdir="${build.classes.dir}"
# Line 67  Line 92 
92             source="${build.sourcelevel}"             source="${build.sourcelevel}"
93               fork="true">               fork="true">
94    
95        <bootclasspath refid="gj.compiler.bootclasspath"/>        <bootclasspath refid="javac.bootclasspath"/>
96        <compilerarg line="${gj.compiler.args}"/>        <compilerarg line="${javac.args} ${build.warnings.option}"/>
97    
98        <!-- need this because srcdir is basedir! -->        <!-- need this because srcdir is basedir! -->
99        <include name="java/**/*.java"/>        <include name="java/**/*.java"/>
# Line 77  Line 102 
102    </target>    </target>
103    
104    
105    <target name="jar" depends="compile">    <target name="jar" depends="compile"
106              description="Builds library jar from compiled sources">
107      <mkdir dir="${build.lib.dir}"/>      <mkdir dir="${build.lib.dir}"/>
108      <jar basedir="${build.classes.dir}"      <jar basedir="${build.classes.dir}"
109          destfile="${product.jar}"          destfile="${product.jar}"
# Line 85  Line 111 
111    </target>    </target>
112    
113    
114    <target name="test" depends="report-tests"/>    <target name="test" depends="init, check-junit, report-tests"
115              description="Runs all tests (requires JUnit 1.8 in ${ant.home}/lib)"/>
116    
117    
118      <target name="checkstyle" depends="filter-src"
119              description="Reports on style errors in Java source (verbose, mostly chaff)">
120        <taskdef resource="checkstyletask.properties"
121                classpath="${lib.dir}/checkstyle-all-2.4.jar"/>
122    
123        <checkstyle>
124          <formatter type="plain"/>  <!-- also available: type="xml" -->
125          <fileset dir="${build.filter.src.dir}" includes="**/*.java"/>
126        </checkstyle>
127      </target>
128    
129    
130    <target name="docs" depends="clean-filtered-src, filter-src"    <target name="doccheck" depends="filter-src"
131              description="Reports on javadoc style errors (not working yet)">
132        <delete dir="${build.doccheck.dir}"/>
133        <mkdir dir="${build.doccheck.dir}"/>
134        <javadoc doclet="com.sun.tools.doclets.doccheck.DocCheck"
135             docletpath="${lib.dir}/doccheck.jar"
136                destdir="${build.doccheck.dir}">
137          <packageset dir="${build.filter.src.dir}">
138            <include name="java/**"/>
139          </packageset>
140        </javadoc>
141      </target>
142    
143    
144      <target name="docs" depends="filter-src"
145            description="Builds javadocs with custom tags to build folder">            description="Builds javadocs with custom tags to build folder">
146      <delete dir="${build.javadocs.dir}"/>      <delete dir="${build.javadocs.dir}"/>
147      <mkdir dir="${build.javadocs.dir}"/>      <mkdir dir="${build.javadocs.dir}"/>
# Line 109  Line 162 
162    </target>    </target>
163    
164    
165    <target name="dist-docs" depends="clean-filtered-src, filter-src"    <target name="strip" depends="init">
166            description="Builds javadocs without custom tags to dist folder">      <mkdir dir="${build.stripped.dir}"/>
167      <delete dir="${dist.javadocs.dir}"/>      <javac srcdir="${src.dir}"
168      <mkdir dir="${dist.javadocs.dir}"/>            destdir="${build.stripped.dir}"
169      <javadoc destdir="${dist.javadocs.dir}"              debug="${build.debug}"
170                  link="http://java.sun.com/j2se/1.4.1/docs/api"         debuglevel="${build.debuglevel}"
171              overview="${src.dir}/intro.html"        deprecation="${build.deprecation}"
172                source="${build.sourcelevel}">             source="${build.sourcelevel}"
173                 fork="true">
       <packageset dir="${build.filter.src.dir}">  
         <include name="java/**"/>  
       </packageset>  
174    
175      </javadoc>        <bootclasspath refid="javac.bootclasspath"/>
176    </target>        <compilerarg line="${javac.args} ${build.warnings.option} -s"/>
177    
178          <!-- need this because srcdir is basedir! -->
179          <include name="java/**/*.java"/>
180    
181    <target name="dist-jar" depends="clean, jar">      </javac>
     <copy file="${product.jar}" todir="${dist.dir}"/>  
182    </target>    </target>
183    
184    
185    <target name="dist" depends="dist-clean, dist-jar, dist-docs"/>    <target name="dist" depends="init, dist-clean, dist-jar, dist-docs"
186              description="Puts all distributable products in single hierarchy"/>
187    
188    
189    <target name="clean">    <target name="clean"
190              description="Removes all build products">
191      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
192      <delete dir="${build.classes.dir}"/>      <delete dir="${build.classes.dir}"/>
193      <delete dir="${build.lib.dir}"/>      <delete dir="${build.lib.dir}"/>
194    </target>    </target>
195    
196    
197    <target name="dist-clean" depends="clean">    <target name="dist-clean"
198              description="Removes all build and distribution products">
199      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
200    </target>    </target>
201    
202    
203    <target name="clean-filtered-src">    <!-- Anthill targets -->
204      <delete dir="${build.filter.src.dir}"/>  
205      <!-- Should really run the tests instead of just the jar target -->
206      <target name="anthill-build" depends="jar, docs, dist-docs"/>
207    
208      <target name="anthill-publish">
209        <copy todir="${deployDir}/docs/private">
210          <fileset dir="${build.javadocs.dir}"/>
211        </copy>
212        <copy todir="${deployDir}/docs/public">
213          <fileset dir="${dist.javadocs.dir}"/>
214        </copy>
215        <copy tofile="${deployDir}/index.html"
216              file="${basedir}/etc/anthill-index.html"/>
217        <copy todir="${deployDir}/notes">
218          <fileset dir="${basedir}/etc/notes"/>
219        </copy>
220    </target>    </target>
221    
222    
223    <!-- Internal targets used by docs target -->    <!-- Internal targets -->
224    
225      <target name="set-warnings-if" if="build.warnings">
226        <property name="build.warnings.option" value="-warnunchecked"/>
227      </target>
228    
229    
230      <target name="set-warnings-unless" unless="build.warnings">
231        <property name="build.warnings.option" value=""/>
232      </target>
233    
234    <target name="compile-ant">  
235      <target name="init" depends="set-warnings-if, set-warnings-unless">
236        <!-- Version is kept in a separate file -->
237        <loadfile property="version" srcFile="version.properties"/>
238        <echo>Building JSR-166 version ${version}</echo>
239      </target>
240    
241    
242      <target name="dist-jar" depends="clean, jar">
243        <copy file="${product.jar}" todir="${dist.dir}"/>
244      </target>
245    
246    
247      <target name="dist-docs" depends="filter-src"
248              description="Builds javadocs without custom tags to dist folder">
249        <delete dir="${dist.javadocs.dir}"/>
250        <mkdir dir="${dist.javadocs.dir}"/>
251        <javadoc destdir="${dist.javadocs.dir}"
252                    link="http://java.sun.com/j2se/1.4.1/docs/api"
253                overview="${src.dir}/intro.html"
254                  source="${build.sourcelevel}">
255    
256          <packageset dir="${build.filter.src.dir}">
257            <include name="java/**"/>
258          </packageset>
259    
260        </javadoc>
261      </target>
262    
263    
264      <target name="compile-ant-filter" depends="init">
265      <mkdir dir="${build.ant.dir}"/>      <mkdir dir="${build.ant.dir}"/>
266      <javac srcdir="${ant.src.dir}"      <javac srcdir="${ant.src.dir}"
267            destdir="${build.ant.dir}"            destdir="${build.ant.dir}"
# Line 162  Line 270 
270    </target>    </target>
271    
272    
273    <target name="filter-src" depends="compile-ant">    <target name="filter-src" depends="compile-ant-filter">
274      <mkdir dir="${build.filter.src.dir}"/>      <mkdir dir="${build.filter.src.dir}"/>
275      <copy todir="${build.filter.src.dir}">      <copy todir="${build.filter.src.dir}">
276        <fileset dir="${src.dir}">        <fileset dir="${src.dir}">
277          <include name="**/*.java"/>          <include name="java/**/*.java"/>
278        </fileset>        </fileset>
279        <filterchain>        <filterchain>
280          <filterreader classname="jsr166.ant.filters.ReplaceFilter"          <filterreader classname="jsr166.ant.filters.ReplaceFilter"
# Line 203  Line 311 
311    </target>    </target>
312    
313    
   <!-- Internal targets used by test target -->  
   
314    <target name="compile-tests" depends="jar">    <target name="compile-tests" depends="jar">
315      <mkdir dir="${build.testcases.dir}"/>      <mkdir dir="${build.testcases.dir}"/>
316      <javac srcdir="${test.src.dir}"      <javac srcdir="${test.src.dir}"
# Line 215  Line 321 
321             source="${build.sourcelevel}"             source="${build.sourcelevel}"
322               fork="true">               fork="true">
323    
324        <bootclasspath refid="gj.compiler.bootclasspath"/>        <bootclasspath refid="javac.bootclasspath"/>
325        <compilerarg line="${gj.compiler.args}"/>        <compilerarg line="${javac.args} ${build.warnings.option}"/>
326        <classpath refid="test.classpath"/>        <classpath refid="test.classpath"/>
       <include name="**/*Test.java"/>  
327    
328      </javac>      </javac>
329    </target>    </target>
330    
331    
332    <target name="run-tests" depends="compile-tests">    <target name="run-tests" depends="compile-tests">
333      <mkdir dir="${build.reports.dir}"/>      <mkdir dir="${build.reports.dir}"/>
334      <junit printsummary="true"      <junit printsummary="true"
335               showoutput="true"               showoutput="true"
336            errorProperty="junit.failed"            errorProperty="junit.failed"
337          failureProperty="junit.failed"          failureProperty="junit.failed"
338                      dir="${build.reports.dir}">                      dir="${build.reports.dir}"
339                       fork="true">
340    
341        <classpath>        <!--
342          <path refid="test.classpath"/>         ! This nastiness is so JUnit can test classes we are inserting
343          <pathelement location="${build.testcases.dir}"/>         ! into the java.* packages.
344        </classpath>         -->
345          <jvmarg value="-Xbootclasspath/p:${product.jar};${build.testcases.dir};${junit.jar}"/>
346    
347        <formatter type="xml"/>        <formatter type="xml"/>
348    
# Line 271  Line 379 
379    </target>    </target>
380    
381    
382      <target name="check-junit">
383        <!-- FIXME: this test isn't specific enough -->
384        <available property="junit.available"
385                   classname="junit.framework.TestCase"/>
386        <fail message="Need JUnit 3.8 to run tests" unless="junit.available"/>
387      </target>
388    
389    
390  </project>  </project>

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.21

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