ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/server/build.xml
Revision: 1.9
Committed: Sat May 19 16:28:25 2001 UTC (23 years ago) by tdb
Content type: text/xml
Branch: MAIN
Changes since 1.8: +8 -2 lines
Log Message:
Fully commented the configuration file.

File Contents

# Content
1 <!-- build file for i-scream DCMS server -->
2 <!-- $Id$ -->
3
4 <project name="iscream-server" default="usage">
5
6 <!--
7 =====================================================
8 Initialisation & Configuration
9 =====================================================
10 -->
11
12 <property name="SOURCEROOT" value="${basedir}"/>
13 <property name="CONFIGFILE" value="build.config"/>
14
15 <target name="config">
16 <echo message="Reading build configuration"/>
17 <property file="${CONFIGFILE}"/>
18 </target>
19
20 <!--
21 =====================================================
22 Usage
23 =====================================================
24 -->
25
26 <target name="usage">
27 <echo>
28
29 These are the targets supported by this ANT build script:
30
31 fetch - fetch all the JAR library files
32
33 idl - generate java source from IDL
34 build - compile all source code
35 package - generate JAR package and distributions
36 packageutil - generate UTIL JAR package
37
38 cvsbuild - build from cvs tag
39 use -Drev=TAG switch to specify cvs tag
40
41 javadoc - generate javadoc API
42 install - install server
43 use -Dprefix=/path/ switch to specify dest
44 run - run the server
45
46 clean - clean all generated files
47 distclean - remove 'fetched' libraries + clean
48
49 Recommend to run the following target order:
50
51 fetch packageutil package javadoc install
52 </echo>
53 </target>
54
55 <target name="help">
56 <antcall target="usage"/>
57 </target>
58
59 <!--
60 =====================================================
61 Fetch required libraries (not in dependency tree)
62 =====================================================
63 -->
64
65 <!-- this uses static names, which is messy -->
66 <!-- distclean target has same problem -->
67 <target name="fetch" depends="config">
68 <get
69 src="${LIBURL}/crimson.jar"
70 dest="${LIBDIR}/crimson.jar"
71 verbose="true" usetimestamp="true"
72 />
73 <get
74 src="${LIBURL}/idl.jar"
75 dest="${LIBDIR}/idl.jar"
76 verbose="true" usetimestamp="true"
77 />
78 <get
79 src="${LIBURL}/jacorb.jar"
80 dest="${LIBDIR}/jacorb.jar"
81 verbose="true" usetimestamp="true"
82 />
83 <get
84 src="${LIBURL}/jaxp.jar"
85 dest="${LIBDIR}/jaxp.jar"
86 verbose="true" usetimestamp="true"
87 />
88 <get
89 src="${LIBURL}/mm.mysql-2.0.4-bin.jar"
90 dest="${LIBDIR}/mm.mysql-2.0.4-bin.jar"
91 verbose="true" usetimestamp="true"
92 />
93 <!-- also get jacorb.properties? -->
94 </target>
95
96 <!--
97 =====================================================
98 IDL Generation
99 =====================================================
100 -->
101
102 <!-- generate java code from idl files -->
103 <target name="idl" depends="config">
104 <echo message="Generating Java source from IDL"/>
105 <java classname="${IDLPARSER}">
106 <arg line="-d ${IDLDIR} ${IDLFILE}"/>
107 <classpath path="${IDLPARSERJAR}"/>
108 </java>
109 </target>
110
111 <!--
112 =====================================================
113 Source code compilation (including idl-generated)
114 =====================================================
115 -->
116
117 <target name="buildidl" depends="idl">
118 <javac
119 srcdir="${IDLDIR}"
120 destdir="${BUILDDIR}"
121 classpath="${JCCLASSPATH}"
122 includes="uk/**/*.java"
123 debug="${JCDEBUG}"
124 optimize="${JCOPTIM}"
125 deprecation="${JCDEPRE}"
126 />
127 </target>
128
129 <target name="build" depends="buildidl">
130 <javac
131 srcdir="${SOURCEROOT}"
132 destdir="${BUILDDIR}"
133 classpath="${JCCLASSPATH}"
134 includes="uk/**/*.java"
135 debug="${JCDEBUG}"
136 optimize="${JCOPTIM}"
137 deprecation="${JCDEPRE}"
138 />
139 </target>
140
141 <!--
142 =====================================================
143 Package creation
144 =====================================================
145 -->
146
147 <target name="makejar" depends="build">
148 <echo file="${BUILDDIR}/MANIFEST_TMP"
149 >Manifest-Version: 1.0
150 Created-By: www.i-scream.org.uk
151 Main-Class: ${MFMAINCLASS}
152 Class-Path: ${MFCLPATH}
153 </echo>
154 <jar
155 jarfile="${BUILDDIR}/${SERVERJAR}"
156 basedir="${BUILDDIR}"
157 includes="uk/**/*.class"
158 manifest="${BUILDDIR}/MANIFEST_TMP"
159 />
160 <delete file="${BUILDDIR}/MANIFEST_TMP"/>
161 </target>
162
163 <target name="maketardist" depends="makejar">
164 <tar
165 longfile="fail"
166 basedir="${BUILDDIR}"
167 tarfile="${BUILDDIR}/${TARFILE}"
168 includes="${SERVERJAR}, run.sh, lib/**, etc/**, README"
169 />
170 <gzip src="${BUILDDIR}/${TARFILE}" zipfile="${BUILDDIR}/${TARGZFILE}"/>
171 <delete file="${BUILDDIR}/${TARFILE}"/>
172 </target>
173
174 <target name="makezipdist" depends="makejar">
175 <zip
176 basedir="${BUILDDIR}"
177 zipfile="${BUILDDIR}/${ZIPFILE}"
178 includes="${SERVERJAR}, run.bat, lib/**, etc/**, README"
179 />
180 </target>
181
182 <target name="package" depends="maketardist, makezipdist"/>
183
184 <!--
185 =====================================================
186 Cleaning
187 =====================================================
188 -->
189
190 <target name="clean" depends="config">
191 <delete dir="${IDLDIR}/${ROOTPKG}"/>
192 <delete dir="${BUILDDIR}/${ROOTPKG}"/>
193 <delete dir="${JDOCDIR}"/>
194 <delete dir="${CVSBUILDTEMP}"/>
195 <delete>
196 <fileset dir="${BUILDDIR}">
197 <include name="${SERVERJAR}"/>
198 <include name="${UTILJAR}"/>
199 <include name="${ARCNAME}*${TAREXT}"/>
200 <include name="${ARCNAME}*${TARGZEXT}"/>
201 <include name="${ARCNAME}*${ZIPEXT}"/>
202 </fileset>
203 </delete>
204 </target>
205
206 <target name="distclean" depends="clean">
207 <!-- this is messy, we should only delete specific jars -->
208 <delete>
209 <fileset dir="${LIBDIR}" includes="*.jar"/>
210 </delete>
211 </target>
212
213 <!--
214 =====================================================
215 Running
216 =====================================================
217 -->
218
219 <!-- is this really the best way to do this? no... -->
220 <target name="run" depends="config">
221 <java classname="${MFMAINCLASS}" dir="${BUILDDIR}" fork="yes">
222 <arg line="-f ${RUNFILTERNAME}"/>
223 <classpath path="${BUILDDIR}/${SERVERJAR}"/>
224 </java>
225 </target>
226
227 <!--
228 =====================================================
229 Javadoc
230 =====================================================
231 -->
232
233 <target name="javadoc" depends="config, idl">
234 <mkdir dir="${JDOCDIR}"/>
235 <!-- link in here requires a live net link! -->
236 <javadoc
237 packagenames="${JDOCPKGS}"
238 destdir="${JDOCDIR}"
239 classpath="${JCCLASSPATH}"
240 author="true"
241 version="true"
242 private="true"
243 use="true"
244 windowtitle="${JDOCTITLE}"
245 header="${JDOCHEADER}"
246 bottom="${JDOCBOTTOM}"
247 link="${JDOCJAPI}"
248 >
249 <!-- need to do idl generated source too -->
250 <sourcepath>
251 <pathelement path="${SOURCEROOT}"/>
252 <pathelement path="${IDLDIR}"/>
253 </sourcepath>
254 </javadoc>
255 </target>
256
257 <!--
258 =====================================================
259 Util Package
260 =====================================================
261 -->
262
263 <!-- MUST clean here to ensure util package is tidy -->
264 <target name="buildutil" depends="config, clean">
265 <javac
266 srcdir="${SOURCEROOT}"
267 destdir="${BUILDDIR}"
268 classpath="${JCCLASSPATH}"
269 includes="${UTILSRC}"
270 debug="${JCDEBUG}"
271 optimize="${JCOPTIM}"
272 deprecation="${JCDEPRE}"
273 />
274 </target>
275
276 <target name="packageutil" depends="buildutil">
277 <jar
278 jarfile="${BUILDDIR}/${UTILJAR}"
279 basedir="${BUILDDIR}"
280 includes="uk/**/*.class"
281 />
282 </target>
283
284 <!--
285 =====================================================
286 Install
287 =====================================================
288 -->
289
290 <target name="install" depends="config, makejar">
291 <mkdir dir="${INSTALLDEST}"/>
292 <mkdir dir="${INSTALLDEST}/etc"/>
293 <mkdir dir="${INSTALLDEST}/lib"/>
294 <copy file="${BUILDDIR}/${SERVERJAR}" todir="${INSTALLDEST}"/>
295 <copy file="${BUILDDIR}/run.sh" todir="${INSTALLDEST}"/>
296 <copy file="${BUILDDIR}/run.bat" todir="${INSTALLDEST}"/>
297 <copy todir="${INSTALLDEST}/lib" >
298 <fileset dir="${LIBDIR}">
299 <include name="**/*.jar"/>
300 <exclude name="**/CVS/*"/>
301 </fileset>
302 </copy>
303 <copy todir="${INSTALLDEST}/etc" >
304 <fileset dir="${BUILDDIR}/etc">
305 <include name="**/*"/>
306 <exclude name="**/CVS/*"/>
307 </fileset>
308 </copy>
309 <copy file="${BUILDDIR}/README" todir="${INSTALLDEST}"/>
310 </target>
311
312 <!--
313 =====================================================
314 CVS Build
315 =====================================================
316 -->
317
318 <target name="cvsbuild" depends="config">
319 <mkdir dir="${CVSBUILDTEMP}"/>
320 <cvs
321 cvsRoot="${CVSROOT}"
322 command="export -d ${CVSBUILDTEMP}"
323 tag="${REVISION}"
324 package="${CVSMODULE}"
325 />
326 <!-- it would be IDEAL to use the ant target here.
327 BUT, it would need to use it's OWN properties.
328 exec is a poor substitute.
329 no idea about windows compatibility. -->
330 <exec executable="ant" dir="${CVSBUILDTEMP}">
331 <arg value="fetch"/>
332 </exec>
333 <exec executable="ant" dir="${CVSBUILDTEMP}">
334 <arg value="packageutil"/>
335 </exec>
336 <exec executable="ant" dir="${CVSBUILDTEMP}">
337 <arg value="package"/>
338 </exec>
339 <copy file="${CVSBUILDTEMP}/build/${TARGZFILE}"
340 tofile="${BUILDDIR}/${ARCNAME}-${REVISION}${TARGZEXT}"/>
341 <copy file="${CVSBUILDTEMP}/build/${ZIPFILE}"
342 tofile="${BUILDDIR}/${ARCNAME}-${REVISION}${ZIPEXT}"/>
343 <!-- should we be overwriting any old util jar here? -->
344 <copy file="${CVSBUILDTEMP}/build/${UTILJAR}" todir="${BUILDDIR}"/>
345 </target>
346
347 </project>