~ubuntu-branches/ubuntu/lucid/trove/lucid

1 by Arnaud Vandyck
Import upstream version 2.0.1.dfsg.1
1
<project name="Trove4j" default="jar" basedir=".">
2
    <description>
3
        Builds the Trove4j library
4
    </description>
5
    
6
    <property name="Name" value="GNU Trove for Java"/>
7
    <property name="name" value="trove"/>
1.1.3 by Michael Koch
Import upstream version 2.1.0
8
    <property name="version" value="2.1.0"/>
9
    <property name="year" value="2001-2009"/>
1 by Arnaud Vandyck
Import upstream version 2.0.1.dfsg.1
10
    
11
    <property name="debug" value="on"/>
12
    <property name="deprecation" value="on"/>
13
14
    
15
    <property name="jar_name" value="trove.jar"/>
16
    
17
    <property name="generator_subtree" value="gnu/trove/generate"/>
18
    
19
    <property name="output.dir" value="output"/>
20
    <property name="output.dest" value="${output.dir}/classes"/>
21
    <property name="output.tests" value="${output.dir}/test_classes"/>
22
    <property name="output.generator_classes" value="${output.dir}/generator_classes"/>
23
    <property name="output.generated" value="${output.dir}/gen_src"/>
24
    <property name="output.lib" value="${output.dir}/lib"/>
25
    <property name="output.tests" value="${output.dir}/tests"/>
26
    <property name="output.javadocs" value="${output.dir}/javadocs"/>
27
    <property name="output.tmp" value="${output.dir}/tmp"/>
28
29
    <property name="dist.root" value="${output.dir}/dist"/>
30
    <property name="dist.dir" value="${dist.root}/${name}-${version}"/>
31
    
32
    <property name="src" value="src"/>
33
    <property name="test_src" value="test"/>
34
    <property name="lib" value="lib"/>
35
    
36
    
37
    <!-- =============================================================== -->
38
    <!-- The main target for building a release. This will perform a     -->
39
    <!-- "clean" followed by a "dist".                                   -->
40
    <!-- =============================================================== -->
41
    <target name="release"
42
        description="Do everything for a release: clean, build everything and test">
43
        <antcall target="clean"/>
44
        <antcall target="dist"/>
45
        <antcall target="test"/>
46
        
47
        <tar tarfile="${name}-${version}.tar" basedir="${dist.root}"/>
48
        <gzip src="${name}-${version}.tar" 
49
            zipfile="${dist.root}/${name}-${version}.tar.gz" />
50
        <delete file="${name}-${version}.tar" />
51
    </target>
52
    
53
    
54
    <!-- =============================================================== -->
55
    <!-- Clean all output                                                -->
56
    <!-- =============================================================== -->
57
    <target name="clean" description="Remove all generated/compiled files">
58
        <delete dir="${output.dir}"/>
59
    </target>
60
    
61
    
62
    <!-- =============================================================== -->
63
    <!-- Generate classes based on templates.                            -->
64
    <!-- =============================================================== -->
65
    <target name="generate" depends="-build_generator"
66
        description="Generate classes from templates">
67
        <java classname="gnu.trove.generate.Generate">
1.1.3 by Michael Koch
Import upstream version 2.1.0
68
            <arg value="${src}/${generator_subtree}"/>
1 by Arnaud Vandyck
Import upstream version 2.0.1.dfsg.1
69
            <arg value="${output.generated}/gnu/trove/"/>
70
            <classpath>
71
                <pathelement path="${output.generator_classes}"/>
72
            </classpath>
73
        </java>
74
    </target>
75
    
76
    
77
    <!-- =============================================================== -->
78
    <!-- Compile the source directory.                                   -->
79
    <!-- =============================================================== -->
80
    <target name="compile" depends="generate">
81
        <javac destdir="${output.dest}"
82
            classpath="${lib}/junit.jar"
83
            debug="${debug}" target="1.5">
84
            <src path="${src}"/>
85
            <src path="${output.generated}"/>
86
        </javac>
87
    </target>
88
    
89
    
90
    <!-- =============================================================== -->
91
    <!-- Build the main jar.                                             -->
92
    <!-- =============================================================== -->
93
    <target name="jar" depends="compile">
94
        <jar destfile="${output.lib}/${name}-${version}.jar">
95
            <fileset dir="${output.dest}">
96
                <exclude name="gnu/trove/benchmark/**"/>
97
                <exclude name="gnu/trove/test/**"/>
98
                <exclude name="gnu/trove/generate/**"/>
99
            </fileset>
100
            <manifest>
101
                <attribute name="Built-By" value="${user.name}"/>
102
                <attribute name="Implementation-Title" value="${Name}"/>
103
                <attribute name="Implementation-Version" value="${version}"/>
104
                <attribute name="Implementation-URL" value="http://trove4j.sourceforge.net/"/>
105
                <attribute name="Sealed" value="false"/>
106
            </manifest>
107
        </jar>
108
    </target>
109
110
111
    <!-- =============================================================== -->
112
    <!-- Build the source jar.                                           -->
113
    <!-- =============================================================== -->
114
    <target name="jarsrc" depends="compile">
115
        <jar destfile="${output.lib}/${name}-src-${version}.jar">
116
            <fileset dir="${src}">
117
                <exclude name="gnu/trove/generate/**"/>
118
                <exclude name="gnu/trove/benchmark/**"/>
119
            </fileset>
120
            <fileset dir="${output.generated}"/>
121
            <manifest>
122
                <attribute name="Built-By" value="${user.name}"/>
123
                <attribute name="Implementation-Title" value="${Name}"/>
124
                <attribute name="Implementation-Version" value="${version}"/>
125
                <attribute name="Implementation-URL" value="http://trove4j.sourceforge.net/"/>
126
                <attribute name="Sealed" value="false"/>
127
            </manifest>
128
        </jar>
129
    </target>
130
    
131
    
132
    <!-- =============================================================== -->
133
    <!-- Places files to prepare for a release.                          -->
134
    <!-- This build javadocs and copies misc. files.                     -->
135
    <!-- =============================================================== -->
136
    <target name="dist" depends="jar,jarsrc,javadoc"
137
        description="Build all files for distribution">
138
139
        <mkdir dir="${dist.root}"/>
140
        <mkdir dir="${dist.dir}"/>
141
        <mkdir dir="${dist.dir}/src"/>
142
        
143
        <!-- Copy source -->
144
        <copy todir="${dist.dir}/src">
145
            <fileset dir="${src}"/>
146
        </copy>
147
        <copy todir="${dist.dir}/test">
148
            <fileset dir="${test_src}"/>
149
        </copy>
150
        
151
        <!-- Copy javadocs & libs -->
152
        <copy todir="${dist.dir}">
153
            <fileset dir="${output.dir}" includes="lib/**,javadocs/**" />
154
        </copy>
155
        <copy todir="${dist.dir}/lib" file="${lib}/junit.jar"/>
156
        
157
        <!-- Misc. Files -->
158
        <copy todir="${dist.dir}" file="AUTHORS"/>
159
        <copy todir="${dist.dir}" file="ChangeLog"/>
160
        <copy todir="${dist.dir}" file="LICENSE.txt"/>
161
        <copy todir="${dist.dir}" file="README-license.txt"/>
162
        <copy todir="${dist.dir}" file="README.txt"/>
163
        <copy todir="${dist.dir}" file="build.xml"/>
164
    </target>
165
    
166
    
167
    <!-- =============================================================== -->
168
    <!-- Create the javadocs.                                            -->
169
    <!-- =============================================================== -->
170
    <target name="javadoc" depends="compile">
171
        <mkdir dir="${output.javadocs}"/>
172
    
173
        <copy file="${src}/gnu/trove/decorator/package.html"
174
            tofile="${output.generated}/gnu/trove/decorator/package.html"/>
175
    
176
        <javadoc destdir="${output.javadocs}"
177
            packagenames="gnu.trove.*"
178
            author="true"
179
            version="true"
180
            use="true"
181
            splitindex="true"
182
            noindex="false"
183
            windowtitle="${Name} API v${version}"
184
            doctitle="${Name} API v${version}"
185
            header="&lt;a href=&quot;http://trove4j.sourceforge.net/&quot;>GNU Trove&lt;/a>"
186
            bottom="GNU Trove is copyright &#169; ${year} Eric D. Friedman. All Rights Reserved.">
187
            <fileset dir="${src}">
188
                <exclude name="**/*.html"/>
189
                <exclude name="gnu/trove/benchmark/**"/>
190
                <exclude name="gnu/trove/generate/**"/>
191
                <exclude name="gnu/trove/test/**"/>
192
            </fileset>
193
            <fileset dir="${output.generated}">
194
                <exclude name="**/*.html"/>
195
                <exclude name="gnu/trove/benchmark/**"/>
196
                <exclude name="gnu/trove/test/**"/>
197
            </fileset>
198
        </javadoc>
199
    </target>
200
    
201
    
202
    <!-- =============================================================== -->
203
    <!-- Compile and run the unit tests.                                 -->
204
    <!-- =============================================================== -->
205
    <target name="test" depends="compile"
206
        description="Compile unit tests and run them using JUnit.">
207
        
208
        <echo message="output.dest = ${output.dest}"/>
209
            
210
        <javac destdir="${output.tests}" debug="${debug}" target="1.5">
211
            <src path="${test_src}"/>
212
            <classpath>
213
                <pathelement location="${lib}/junit.jar"/>
214
                <pathelement location="${output.dest}"/>
215
            </classpath>
216
        </javac>
1.1.2 by Torsten Werner
Import upstream version 2.0.4
217
218
        <copy todir="${output.tests}">
219
            <fileset dir="${test_src}">
220
                <include name="**/*.obj"/>
221
            </fileset>
222
        </copy>
1 by Arnaud Vandyck
Import upstream version 2.0.1.dfsg.1
223
        
224
        <!-- Verify that JUnit is available on the classpath -->
225
        <available classname="junit.framework.TestCase" property="junit.present"/>
226
        <fail unless="junit.present" message="To run this task, install junit.jar and optional.jar into ${ant.home}/lib/ JUnit is available free at http://www.junit.org"/>
227
        <!-- Execute JUnit tests -->
228
        <junit printsummary="true" showoutput="false" fork="on"
229
            errorProperty="test.failed" failureProperty="test.failed">
230
            <assertions>
231
                <enable/>
232
            </assertions>
233
            <classpath path="${output.tests}:${output.dest}:${lib}/junit.jar"/>
234
            <formatter type="brief" usefile="false"/>
235
            <batchtest fork="no" todir="${output.dir}">
236
                <fileset dir="${output.tests}/" includes="**/**Test.class"/>
237
            </batchtest>
238
        </junit>
239
        <fail message="Tests failed. Check test output." if="test.failed"/>
240
    </target>
241
    
242
    
243
    <!-- =============================================================== -->
244
    <!-- Build generator classes.                                        -->
245
    <!-- =============================================================== -->
246
    <target name="-build_generator" depends="-init">
247
        <javac srcdir="${src}/${generator_subtree}"
248
            destdir="${output.generator_classes}"
249
            defaultexcludes="yes"
250
            debug="${debug}"
251
            source="1.5" target="1.5"/>
252
        
253
        <copy todir="${output.generator_classes}">
254
            <fileset dir="${src}">
255
                <include name="${generator_subtree}/*.template"/>
256
            </fileset>
257
        </copy>
258
    </target>
259
    
260
    <!-- =================================================================== -->
261
    <!-- Initialization target                                               -->
262
    <!-- =================================================================== -->
263
    <target name="-init">
264
        <tstamp/>
265
    
266
        <mkdir dir="${output.dir}"/>
267
        <mkdir dir="${output.generator_classes}"/>
268
        <mkdir dir="${output.dest}"/>
269
        <mkdir dir="${output.tests}"/>
270
        <mkdir dir="${output.generated}"/>
271
        <mkdir dir="${output.generated}/gnu"/>
272
        <mkdir dir="${output.generated}/gnu/trove"/>
273
        <mkdir dir="${output.lib}"/>
274
        <mkdir dir="${dist.root}"/>
275
276
        <echo message="----------- ${Name} ${version} [${year}] ------------"/>
277
    </target>
278
</project>