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

Diff of /jsr166/build.xml

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

revision 1.1 by tim, Mon Oct 7 04:07:37 2002 UTC revision 1.19 by tim, Mon Jan 20 18:25: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        JUnit 1.8 must be in ${ant.home}/lib for the test target to work.
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.4"/>    <!--
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 17  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 26  Line 55 
55    <property name="ant.src.dir"          location="${basedir}/etc/ant"/>    <property name="ant.src.dir"          location="${basedir}/etc/ant"/>
56    <property name="stylesheet.dir"       location="${basedir}/etc/xsl"/>    <property name="stylesheet.dir"       location="${basedir}/etc/xsl"/>
57    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
58      <property name="dist.dir"             location="${basedir}/dist"/>
59    
60      <!-- Distribution locations -->
61      <property name="dist.javadocs.dir"    location="${dist.dir}/docs"/>
62    
63    <!-- Jar locations -->    <!-- Jar locations -->
64    <property name="product.jar"          location="${build.lib.dir}/jsr166.jar"/>    <property name="product.jar"          location="${build.lib.dir}/jsr166.jar"/>
# Line 34  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} -bootclasspath ${collect.jar};${rt.jar} -gj'  
   />  
71    
72      <path id="javac.bootclasspath">
73        <pathelement location="${collect.jar}"/>
74        <pathelement location="${rt.jar}"/>
75      </path>
76    
77    <target name="compile">    <path id="test.classpath">
78        <pathelement location="${product.jar}"/>
79      </path>
80    
81    
82      <!-- 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 49  Line 92 
92             source="${build.sourcelevel}"             source="${build.sourcelevel}"
93               fork="true">               fork="true">
94    
95        <compilerarg line="${gj.compiler.args}"/>        <bootclasspath refid="javac.bootclasspath"/>
96          <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 58  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 66  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="docs" depends="filter-src">    <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="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">
146      <delete dir="${build.javadocs.dir}"/>      <delete dir="${build.javadocs.dir}"/>
147      <mkdir dir="${build.javadocs.dir}"/>      <mkdir dir="${build.javadocs.dir}"/>
148      <javadoc destdir="${build.javadocs.dir}"      <javadoc destdir="${build.javadocs.dir}"
# Line 79  Line 152 
152    
153        <tag name="revised" description="Last revised:"/>        <tag name="revised" description="Last revised:"/>
154        <tag name="spec" description="Specified by:"/>        <tag name="spec" description="Specified by:"/>
155          <tag name="editor" description="Last edited by:"/>
156          <tag name="fixme" description="FIX ME:"/>
157        <packageset dir="${build.filter.src.dir}">        <packageset dir="${build.filter.src.dir}">
158          <include name="java/**"/>          <include name="java/**"/>
159        </packageset>        </packageset>
# Line 88  Line 162 
162    </target>    </target>
163    
164    
165    <target name="clean">    <target name="strip" depends="init">
166        <mkdir dir="${build.stripped.dir}"/>
167        <javac srcdir="${src.dir}"
168              destdir="${build.stripped.dir}"
169                debug="${build.debug}"
170           debuglevel="${build.debuglevel}"
171          deprecation="${build.deprecation}"
172               source="${build.sourcelevel}"
173                 fork="true">
174    
175          <bootclasspath refid="javac.bootclasspath"/>
176          <compilerarg line="${javac.args} ${build.warnings.option} -s"/>
177    
178          <!-- need this because srcdir is basedir! -->
179          <include name="java/**/*.java"/>
180    
181        </javac>
182      </target>
183    
184    
185      <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"
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}"/>
     <delete dir="${build.javadocs.dir}"/>  
194    </target>    </target>
195    
196    
197    <!-- Internal targets used by docs target -->    <target name="dist-clean"
198              description="Removes all build and distribution products">
199        <delete dir="${dist.dir}"/>
200      </target>
201    
202    
203      <!-- Anthill targets -->
204    
205    <target name="compile-ant">    <!-- 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        <mkdir dir="${deployDir}/notes}"/>
218        <copy todir="${deployDir}/notes">
219          <fileset dir="${basedir}/etc/notes"/>
220        </copy>
221      </target>
222    
223    
224      <!-- Internal targets -->
225    
226      <target name="set-warnings-if" if="build.warnings">
227        <property name="build.warnings.option" value="-warnunchecked"/>
228      </target>
229    
230    
231      <target name="set-warnings-unless" unless="build.warnings">
232        <property name="build.warnings.option" value=""/>
233      </target>
234    
235    
236      <target name="init" depends="set-warnings-if, set-warnings-unless">
237        <!-- Version is kept in a separate file -->
238        <loadfile property="version" srcFile="version.properties"/>
239        <echo>Building JSR-166 version ${version}</echo>
240      </target>
241    
242    
243      <target name="dist-jar" depends="clean, jar">
244        <copy file="${product.jar}" todir="${dist.dir}"/>
245      </target>
246    
247    
248      <target name="dist-docs" depends="filter-src"
249              description="Builds javadocs without custom tags to dist folder">
250        <delete dir="${dist.javadocs.dir}"/>
251        <mkdir dir="${dist.javadocs.dir}"/>
252        <javadoc destdir="${dist.javadocs.dir}"
253                    link="http://java.sun.com/j2se/1.4.1/docs/api"
254                overview="${src.dir}/intro.html"
255                  source="${build.sourcelevel}">
256    
257          <packageset dir="${build.filter.src.dir}">
258            <include name="java/**"/>
259          </packageset>
260    
261        </javadoc>
262      </target>
263    
264    
265      <target name="compile-ant-filter" depends="init">
266      <mkdir dir="${build.ant.dir}"/>      <mkdir dir="${build.ant.dir}"/>
267      <javac srcdir="${ant.src.dir}"      <javac srcdir="${ant.src.dir}"
268            destdir="${build.ant.dir}"            destdir="${build.ant.dir}"
# Line 107  Line 271 
271    </target>    </target>
272    
273    
274    <target name="filter-src" depends="compile-ant">    <target name="filter-src" depends="compile-ant-filter">
275      <mkdir dir="${build.filter.src.dir}"/>      <mkdir dir="${build.filter.src.dir}"/>
276      <copy todir="${build.filter.src.dir}">      <copy todir="${build.filter.src.dir}">
277        <fileset dir="${src.dir}">        <fileset dir="${src.dir}">
278          <include name="**/*.java"/>          <include name="java/**/*.java"/>
279        </fileset>        </fileset>
280        <filterchain>        <filterchain>
281          <filterreader classname="jsr166.ant.filters.ReplaceFilter"          <filterreader classname="jsr166.ant.filters.ReplaceFilter"
# Line 148  Line 312 
312    </target>    </target>
313    
314    
   <!-- Internal targets used by test target -->  
   
315    <target name="compile-tests" depends="jar">    <target name="compile-tests" depends="jar">
316      <mkdir dir="${build.testcases.dir}"/>      <mkdir dir="${build.testcases.dir}"/>
317      <javac srcdir="${test.src.dir}"      <javac srcdir="${test.src.dir}"
# Line 160  Line 322 
322             source="${build.sourcelevel}"             source="${build.sourcelevel}"
323               fork="true">               fork="true">
324    
325        <compilerarg line="${gj.compiler.args}"/>        <bootclasspath refid="javac.bootclasspath"/>
326          <compilerarg line="${javac.args} ${build.warnings.option}"/>
327        <classpath id="test.classpath">        <classpath refid="test.classpath"/>
         <pathelement location="${product.jar}"/>  
         <pathelement location="${junit.jar}"/>  
       </classpath>  
   
328        <include name="**/*Test.java"/>        <include name="**/*Test.java"/>
329    
330      </javac>      </javac>
331    </target>    </target>
332    
333    
334    <target name="run-tests" depends="compile-tests">    <target name="run-tests" depends="compile-tests">
335      <mkdir dir="${build.reports.dir}"/>      <mkdir dir="${build.reports.dir}"/>
336      <junit printsummary="true"      <junit printsummary="true"
337               showoutput="true"               showoutput="true"
338            errorProperty="junit.failed"            errorProperty="junit.failed"
339          failureProperty="junit.failed"          failureProperty="junit.failed"
340                      dir="${build.reports.dir}">                      dir="${build.reports.dir}"
341                       fork="true">
342    
343          <jvmarg value="-Xbootclasspath/p:${product.jar}"/>
344    
345        <classpath>        <classpath>
346          <path refid="test.classpath"/>          <!-- <path refid="test.classpath"/> -->
347          <pathelement location="${build.testcases.dir}"/>          <pathelement location="${build.testcases.dir}"/>
348        </classpath>        </classpath>
349    
# Line 220  Line 382 
382    </target>    </target>
383    
384    
385      <target name="check-junit">
386        <!-- FIXME: this test isn't specific enough -->
387        <available property="junit.available"
388                   classname="junit.framework.TestCase"/>
389        <fail message="Need JUnit 1.8 to run tests" unless="junit.available"/>
390      </target>
391    
392    
393  </project>  </project>

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.19

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