source: greenstone3/branches/3-03/dist-resources/dist-build.xml@ 14510

Last change on this file since 14510 was 14510, checked in by oranfry, 17 years ago

made the distribution build script work with svn, and fixed an apparent bug where the XML-Parser tarball for mac was not retrieved from the web before an attempt was made to extract it

  • Property svn:keywords set to Author Date Id Revision
File size: 15.2 KB
Line 
1<?xml version="1.0"?>
2
3<!-- ======================================================================
4 March 2005
5
6 Greenstone3 build and install script
7
8 kjdon
9 ====================================================================== -->
10<project name="greenstone3-distribution" default="usage" basedir="..">
11
12 <!-- include standard build file -->
13 <import file="../build.xml"/>
14
15 <property name="documented.collections.home" value="/home/nzdl/for-distributions/collect"/>
16 <property name="greenstone3-change-date" value="Tue Feb 20 12:13:42 NZDT 2007"/>
17 <property name="gs2build-change-date" value="Wed Dec 13 10:35:57 NZDT 2006"/>
18
19 <!-- ====================== DISTRIBUTION Targets ========================= -->
20
21 <!-- these two, do we need tomcat and axis for compilation??-->
22 <!-- Create the binaries for windows distribution -->
23 <target name="prepare-windows" depends="init">
24 <antcall target="checkout-gs2build"/>
25 <antcall target="unzip-windows-packages"/>
26 <antcall target="unzip-windows-packages"/>
27 <antcall target="checkout-winbin"/>
28 <antcall target="get-perl-for-windows"/>
29 </target>
30
31 <target name="build-windows" depends="init">
32
33 <antcall target="svnupdate-distribution"/>
34 <antcall target="update-winbin"/>
35 <antcall target="get-windows-binaries"/>
36 <antcall target="rename-gs2build-files-windows"/>
37 <antcall target="compile-gs2build"/>
38 <antcall target="compile-packages"/>
39
40 </target>
41
42 <!-- Create the binaries for Unix/Mac distributions -->
43 <target name="prepare-unix" depends="init">
44 <antcall target="checkout-gs2build"/>
45 <antcall target="checkout-gli"/>
46 </target>
47
48 <target name="update-unix" depends="init">
49 <antcall target="svnupdate-distribution"/>
50 <antcall target="rename-gs2build-files-unix"/>
51 <antcall target="delete-windows-files"/>
52 </target>
53
54 <target name="configure-unix" depends="init">
55 <antcall target="configure-c++"/>
56 </target>
57 <target name="build-unix" depends="init">
58 <antcall target="compile-packages"/>
59 <antcall target="compile-gs2build"/>
60 </target>
61
62 <!-- creates the base distribution. Needs binaries copied in to it from other
63 greenstones (prepare-os targets) -->
64 <target name="create-distribution-1" depends="init" description="do all the initial downloading and setting up">
65 <antcall target="checkout-gs2build"/>
66 <antcall target="checkout-gli"/>
67 <delete file="${gli.home}/gli.bat"/>
68 <delete file="${gli.home}/gli.sh"/>
69 <delete file="${gli.home}/gems.bat"/>
70 <delete file="${gli.home}/gems.sh"/>
71 <antcall target="rename-gs2build-files-dist"/>
72 <delete dir="${gs2build-extra.home}"/>
73
74 <!--<antcall target="unzip-windows-packages"/> do we need this?-->
75 <antcall target="prepare-tomcat"/>
76 <delete file="${packages.home}/apache-tomcat-5.5.12.zip"/>
77 <delete file="${packages.home}/apache-tomcat-5.5.12-compat.zip"/>
78 <antcall target="prepare-axis"/>
79 <delete file="${packages.home}/axis-bin-1_2_1.zip"/>
80 <!-- delete old axis dir -->
81 <delete dir="${packages.home}/axis"/>
82 <mkdir dir="${web.home}/applet"/>
83 <mkdir dir="${web.home}/logs"/>
84 <antcall target="prepare-ant"/>
85 <delete file="${packages.home}/apache-ant-1.7.0-bin.zip"/>
86 <antcall target="prepare-collections"/>
87
88 <!-- get good XML-Parser - does this work? -->
89 <antcall target="get-xml-parser"/>
90 <!-- documented collections -->
91 <antcall target="get-documented-collections"/>
92
93 <delete file="${basedir}/README-CVS.txt"/>
94 <delete file="${basedir}/TODO.txt"/>
95
96 <!-- make the extra directories needed for a release -->
97 <mkdir dir="${basedir}/Linux/lib/jni"/>
98 <mkdir dir="${basedir}/Darwin/lib/jni"/>
99 <mkdir dir="${basedir}/Windows/lib/jni"/>
100 <mkdir dir="${gs2build.home}/Unix/bin/linux"/>
101 <mkdir dir="${gs2build.home}/Unix/bin/darwin"/>
102 <mkdir dir="${gs2build.home}/Windows/bin/windows"/>
103 <mkdir dir="${gs2build.home}/source/Windows"/>
104 <mkdir dir="${gs2build.home}/source/Unix"/>
105
106 </target>
107
108 <target name="create-distribution-2" description="do all the compilation">
109 <!-- compile the java stuff -->
110 <antcall target="compile-web"/>
111 <antcall target="configure-packages-and-indexers"/>
112 <antcall target="compile-packages-and-indexers-javaonly"/>
113 <antcall target="distclean-packages"/>
114 <antcall target="compile-core"/>
115 <antcall target="compile-gli"/>
116 </target>
117
118 <target name="create-distribution-3" depends="init" description="Do the rearranging of source code etc">
119
120 <!-- move top-level os dependent files -->
121 <copy todir="${basedir}/Linux">
122 <fileset dir="${basedir}">
123 <include name="*.sh"/>
124 </fileset>
125 </copy>
126 <chmod dir="${basedir}/Linux" perm="ugo+rx"
127 includes="*.sh"/>
128 <move todir="${basedir}/Darwin">
129 <fileset dir="${basedir}">
130 <include name="*.sh"/>
131 </fileset>
132 </move>
133 <chmod dir="${basedir}/Darwin" perm="ugo+rx"
134 includes="*.sh"/>
135 <move todir="${basedir}/Windows">
136 <fileset dir="${basedir}">
137 <include name="*.bat"/>
138 </fileset>
139 </move>
140
141 <!-- rearrange collection building stuff -->
142 <move file="${gs2build.home}/win32.mak" tofile="${gs2build.home}/source/Windows/win32.mak"/>
143 <move file="${gs2build.home}/setup.bat" tofile="${gs2build.home}/source/Windows/setup.bat"/>
144 <move file="${gs2build.home}/WIN32cfg.h" tofile="${gs2build.home}/source/Windows/WIN32cfg.h"/>
145 <move todir="${gs2build.home}/source/Unix/">
146 <fileset dir="${gs2build.home}">
147 <include name="config*"/>
148 <include name="ac*"/>
149 <include name="install-sh"/>
150 <include name="setup.bash"/>
151 <include name="Makefile.in"/>
152 </fileset>
153 </move>
154 <!-- general source files -->
155 <move todir="${gs2build.home}/source/src" failonerror="false">
156 <fileset dir="${gs2build.home}/src" defaultexcludes="no"/>
157 </move>
158 <move todir="${gs2build.home}/source/lib" failonerror="false">
159 <fileset dir="${gs2build.home}/lib" defaultexcludes="no"/>
160 </move>
161 <move todir="${gs2build.home}/source/packages" failonerror="false">
162 <fileset dir="${gs2build.home}/packages" defaultexcludes="no"/>
163 </move>
164 <move todir="${gs2build.home}/source/indexers" failonerror="false">
165 <fileset dir="${gs2build.home}/indexers" defaultexcludes="no"/>
166 </move>
167
168 <!-- generate modified build.xml file -->
169 <antcall target="run-xslt-binary"/>
170
171 <!-- clean up -->
172 <delete dir="${basedir}/build"/>
173 <delete dir="${basedir}/lib/jni"/>
174 </target>
175
176
177 <target name="create-source-distribution" depends="init">
178 <antcall target="checkout-gs2build"/>
179 <antcall target="checkout-gli"/>
180 <delete file="${gli.home}/gli.bat"/>
181 <delete file="${gli.home}/gli.sh"/>
182 <antcall target="rename-gs2build-files-dist"/>
183 <delete dir="${gs2build-extra.home}"/>
184 <antcall target="prepare-tomcat"/>
185 <delete file="${packages.home}/apache-tomcat-5.5.12.zip"/>
186 <delete file="${packages.home}/apache-tomcat-5.5.12-compat.zip"/>
187 <antcall target="prepare-ant"/>
188 <delete file="${packages.home}/apache-ant-1.7.0-bin.zip"/>
189 <antcall target="prepare-collections"/>
190 <antcall target="prepare-axis"/>
191 <delete file="${packages.home}/axis-bin-1_2_1.zip"/>
192 <!-- delete old axis dir -->
193 <delete dir="${packages.home}/axis"/>
194 <mkdir dir="${web.home}/applet"/>
195 <mkdir dir="${web.home}/logs"/>
196
197 <!-- download the mac XML parser just in case: it will only be unpacked if on a mac -->
198 <get src="http://www.greenstone.org/gs3files/XML-Parser.tar.gz"
199 dest="${gs2build.home}/perllib/cpan/XML-Parser.tar.gz"
200 usetimestamp="true"/>
201
202 <!-- generate modified build.xml file -->
203 <antcall target="run-xslt-source"/>
204 <!--<delete dir="${basedir}/dist-resources"/>-->
205
206 </target>
207
208 <!-- Supplementary targets -->
209
210 <target name="svnupdate-distribution" depends="init">
211 <antcall target="svnupdate-packages"/>
212 <antcall target="svnupdate-core"/>
213 <antcall target="svnupdate-gs2build"/>
214 <antcall target="svnupdate-web"/>
215 </target>
216
217 <target name="run-xslt-source" depends="init">
218 <xslt in="${basedir}/build.xml" out="${basedir}/dist-build.xml" style="${basedir}/dist-resources/convert-build-xml-source.xsl"/>
219 </target>
220
221 <target name="run-xslt-binary" depends="init">
222 <xslt in="${basedir}/build.xml" out="${basedir}/dist-build.xml" style="${basedir}/dist-resources/convert-build-xml.xsl"/>
223 </target>
224
225 <target name="rename-gs2build-files-dist" depends="init,rename-gs2build-files-unix">
226 <copy file="${gs2build-extra.home}/lib.win32.mak" tofile="${gs2build.home}/lib/win32.mak"/>
227 <copy file="${gs2build-extra.home}/win32.mak" tofile="${gs2build.home}/win32.mak"/>
228 <copy file="${gs2build-extra.home}/setup.bat" tofile="${gs2build.home}/setup.bat"/>
229 </target>
230
231 <target name="configure-packages-and-indexers" depends="init">
232 <exec executable="${indexers.home}/configure"
233 dir="${indexers.home}">
234 <arg value="--prefix=${basedir}"/>
235 <arg value="--libdir=${lib.jni}"/>
236 </exec>
237 <exec executable="${javagdbm.home}/configure"
238 dir="${javagdbm.home}">
239 <arg value="--prefix=${basedir}"/>
240 <arg value="--libdir=${lib.jni}"/>
241 </exec>
242
243 </target>
244 <target name="compile-packages-and-indexers-javaonly" depends="init">
245 <echo>Compiling Indexers</echo>
246 <exec executable="make" os="${os.unix}"
247 dir="${indexers.home}">
248 <arg value="javaonly"/>
249 </exec>
250 <exec executable="make" os="${os.unix}"
251 dir="${indexers.home}">
252 <arg value="install-javaonly"/>
253 </exec>
254 <!-- install the jar files -->
255 <copy file="${mg.home}/mg.jar" todir="${lib.jni}"/>
256 <copy file="${mgpp.home}/mgpp.jar" todir="${lib.jni}"/>
257 <copy file="${lucene.home}/LuceneWrapper.jar" todir="${web.lib}"/>
258
259 <!-- javagdbm -->
260 <exec executable="make" os="${os.unix}"
261 dir="${javagdbm.home}">
262 <arg value="javaonly"/>
263 </exec>
264 <exec executable="make" os="${os.unix}"
265 dir="${javagdbm.home}">
266 <arg value="installjava"/>
267 </exec>
268 <!-- install the jar file -->
269 <copy file="${javagdbm.home}/javagdbm.jar" todir="${lib.jni}"/>
270
271 </target>
272
273 <target name="delete-windows-files" depends="init" unless="current.os.iswindows">
274 <delete dir="${basedir}/winutil"/>
275 <delete>
276 <fileset dir="${lib.jni}" includes="*.dll"/>
277 </delete>
278 </target>
279
280 <target name="get-perl-for-windows" depends="init" if="current.os.iswindows">
281 <mkdir dir="${gs2build.home}/bin/windows"/>
282 <get src="http://www.greenstone.org/gs3files/perl-for-windows.zip"
283 dest="${gs2build.home}/bin/windows/perl-for-windows.zip"
284 usetimestamp="true"/>
285 <unzip src="${gs2build.home}/bin/windows/perl-for-windows.zip"
286 dest="${gs2build.home}/bin/windows"/>
287 <delete file="${gs2build.home}/bin/windows/perl-for-windows.zip"/>
288 </target>
289
290 <target name="distclean-packages" depends="init">
291 <!-- indexers : just call the make target -->
292 <exec executable="make" os="${os.unix}"
293 dir="${indexers.home}">
294 <arg value="distclean"/>
295 </exec>
296 <!-- javagdbm -->
297 <exec executable="make" os="${os.unix}"
298 dir="${javagdbm.home}">
299 <arg value="distclean"/>
300 </exec>
301 </target>
302
303 <!-- copy the doc eg colls from /home/nzdl - note we don't include the formatting ones -->
304 <target name="get-documented-collections" depends="init">
305 <property name="collect.home" value="${basedir}/web/sites/localsite/collect"/>
306 <copy todir="${collect.home}/MARC-e">
307 <fileset dir="${documented.collections.home}/MARC-e"/>
308 </copy>
309 <copy todir="${collect.home}/cltbib-e">
310 <fileset dir="${documented.collections.home}/cltbib-e"/>
311 </copy>
312 <copy todir="${collect.home}/dls-e">
313 <fileset dir="${documented.collections.home}/dls-e"/>
314 </copy>
315 <copy todir="${collect.home}/dspace-e">
316 <fileset dir="${documented.collections.home}/dspace-e"/>
317 </copy>
318 <copy todir="${collect.home}/gsarch-e">
319 <fileset dir="${documented.collections.home}/gsarch-e"/>
320 </copy>
321 <copy todir="${collect.home}/image-e">
322 <fileset dir="${documented.collections.home}/image-e"/>
323 </copy>
324 <copy todir="${collect.home}/isis-e">
325 <fileset dir="${documented.collections.home}/isis-e"/>
326 </copy>
327 <copy todir="${collect.home}/oai-e">
328 <fileset dir="${documented.collections.home}/oai-e"/>
329 </copy>
330 <copy todir="${collect.home}/pagedimg-e">
331 <fileset dir="${documented.collections.home}/pagedimg-e"/>
332 </copy>
333 <copy todir="${collect.home}/wrdpdf-e">
334 <fileset dir="${documented.collections.home}/wrdpdf-e"/>
335 </copy>
336 </target>
337
338 <target name="get-xml-parser" depends="init">
339 <get src="http://www.greenstone.org/gs3files/XML-Parser.tar.gz"
340 dest="${gs2build.home}/perllib/cpan/XML-Parser.tar.gz"
341 usetimestamp="true"/>
342 <untar src="${gs2build.home}/perllib/cpan/XML-Parser.tar.gz"
343 dest="${gs2build.home}/perllib/cpan/"
344 compression="gzip"/>
345 <delete file="${gs2build.home}/perllib/cpan/XML-Parser.tar.gz"/>
346 </target>
347
348<!-- <target name="create-changelog"> -->
349 <!-- generate greenstone 3 changelog -->
350<!-- <exec executable="/home/nzdl/for-distributions/bin/script/cvs2cl.pl"
351 dir="${basedir}">
352 <arg value="-P"/>
353 <arg value="-F"/>
354 <arg value="trunk"/>
355 <arg value="-r"/>
356 <arg value="-S"/>
357 <arg value="-l"/>
358 <arg value="-d'${greenstone3-change-date}&lt;tomorrow'"/>
359 <arg value="-f"/>
360 <arg value="greenstone-${app.version}-ChangeLog.txt"/>
361 <arg value="-I"/>
362 <arg value="gli/.*|gs2build/.*"/>
363 </exec> -->
364 <!-- generate coll building change log -->
365<!-- <exec executable="/home/nzdl/for-distributions/bin/script/cvs2cl.pl"
366 dir="${basedir}">
367 <arg value="-P"/>
368 <arg value="-F"/>
369 <arg value="trunk"/>
370 <arg value="-r"/>
371 <arg value="-S"/>
372 <arg value="-l"/>
373 <arg value="-d'${gs2build-change-date}&lt;tomorrow'"/>
374 <arg value="-f"/>
375 <arg value="greenstone-${app.version}-ChangeLog-collbuilding.txt"/>
376 <arg value="gli"/>
377 <arg value="gs2build"/>
378 </exec>
379 </target> -->
380
381
382 <!-- new targets to go in distribution build.xml files -->
383
384 <!-- new usage target for binary release -->
385 <target name="usage-for-binary-dist" description="Print a help message">
386 <echo message=" Execute 'ant -projecthelp' for a list of targets."/>
387 <echo message=" Execute 'ant -help' for Ant help."/>
388 </target>
389
390
391 <!-- new install target for source distribution -->
392 <target name="install-for-source-dist" depends="init" description="install the source distribution. Includes configuring and compiling">
393 <antcall target="unzip-windows-packages"/>
394 <!-- do the java version dependent stuff -->
395 <antcall target="configure-java-version"/>
396 <antcall target="install-macos-extra"/>
397 <!-- set gsdlhome in setup.bat -->
398 <antcall target="gs2build-edit-setup-bat"/>
399 <antcall target="install-indexer-files"/>
400 <antcall target="configure"/>
401 <antcall target="configure-c++"/>
402 <antcall target="compile"/>
403 <!-- make sure we have execute permission for the .sh files -->
404 <chmod dir="${basedir}" perm="ugo+rx"
405 includes="*.sh"/>
406
407 </target>
408
409</project>
410
411
Note: See TracBrowser for help on using the repository browser.