root/main/trunk/release-kits/kits/rk2/ant-scripts/compile.xml @ 22389

Revision 22389, 17.2 KB (checked in by sjm84, 10 years ago)

The *.app folders are no longer included in non-mac versions

Line 
1<?xml version="1.0" encoding="utf-8" ?>
2<project name="rk2-compile">
3
4    <target name="compile" depends="init,gs2-init">
5    <!-- checkout greenstone2 (or gsdl if a pre-2.84 release is being created) and gli -->
6        <if>
7          <bool>
8            <or>
9              <equals arg1="${branch.path}" arg2="trunk"/>
10              <isgreaterthan arg1="${branch.tag.version}" arg2="2.83"/>
11            </or>
12          </bool>
13
14            <exec executable="svn">
15              <arg value="checkout"/>
16              <arg value="${svn.root}/main/${branch.path}/greenstone2"/>
17              <arg value="${basedir}/compiled"/>
18            </exec>       
19
20          <else>
21            <exec executable="svn">
22              <arg value="checkout"/>
23              <arg value="${svn.root}/main/${branch.path}/gsdl"/>
24              <arg value="${basedir}/compiled"/>
25            </exec>
26          </else>
27        </if>
28
29            <exec executable="svn">
30          <arg value="checkout"/>
31          <arg value="${svn.root}/main/${branch.path}/gli"/>
32          <arg value="${basedir}/compiled/gli"/>
33        </exec>
34
35        <!-- drop in documentation -->
36        <copy todir="compiled" overwrite="true">
37            <fileset dir="${rk.home}/shared/greenstone2/docs" excludes="READMEar.txt,READMEes.txt,READMEfr.txt,READMEru.txt"/>
38        </copy>
39
40        <!-- set version numbers -->
41        <antcall target="gsdl-set-version-numbers"><param name="gsdl.basedir" value="${basedir}/compiled"/></antcall>
42        <antcall target="gli-set-version-numbers"><param name="glibasedir" value="${basedir}/compiled/gli"/></antcall>
43
44        <!-- we do not want the *.app folders if we are not mac-->
45        <if><bool><not><equals arg1="${rk.os}" arg2="mac"/></not></bool>
46            <delete dir="${basedir}/compiled/client-gli.app"/>
47            <delete dir="${basedir}/compiled/gems.app"/>
48            <delete dir="${basedir}/compiled/gs2-server.app"/>
49        </if>
50       
51        <!-- windows only -->
52        <if><bool><equals arg1="${rk.os}" arg2="windows"/></bool>
53
54            <!-- unzip packages -->
55            <unzip src="${basedir}/compiled/common-src/packages/windows/crypt/crypt.zip" dest="${basedir}/compiled/common-src/packages/windows/crypt"/>
56            <unzip src="${basedir}/compiled/common-src/packages/windows/expat/expat.zip" dest="${basedir}/compiled/common-src/packages/windows/expat"/>
57            <unzip src="${basedir}/compiled/common-src/packages/windows/stlport/stlport.zip" dest="${basedir}/compiled/common-src/packages/windows/stlport"/>
58            <unzip src="${basedir}/compiled/common-src/indexers/packages/windows/iconv/iconv.zip" dest="${basedir}/compiled/common-src/indexers/packages/windows/iconv"/>
59            <untar src="${basedir}/compiled/common-src/packages/sqlite/sqlite-amalgamation-3.5.9.tar.gz" dest="${basedir}/compiled/common-src/packages/sqlite" compression="gzip"/>
60
61            <!-- get winbin from tags if the version is greater than 2.83 otherwise get it from trunk -->
62            <if><bool><not><available file="${basedir}/compiled/bin/windows"/></not></bool>
63                <if>
64                    <bool>
65                    <and>
66                        <not><equals arg1="${branch.path}" arg2="trunk"/></not>
67                        <isgreaterthan arg1="${branch.tag.version}" arg2="2.83"/>
68                    </and>
69                    </bool>
70                   
71                    <exec executable="svn">
72                        <arg value="export"/>
73                        <arg value="${svn.root}/main/${branch.path}/binaries/windows/bin"/>
74                        <arg value="${basedir}/compiled/bin/windows"/>
75                        <arg value="-r"/>
76                        <arg value="${branch.revision}"/>
77                    </exec>
78                   
79                    <else>
80                        <exec executable="svn">
81                            <arg value="export"/>
82                            <arg value="${svn.root}/main/trunk/binaries/windows/bin"/>
83                            <arg value="${basedir}/compiled/bin/windows"/>
84                            <arg value="-r"/>
85                            <arg value="${branch.revision}"/>
86                        </exec>
87                    </else>
88                </if>
89            </if>
90
91            <!-- insert windows perl -->
92            <unzip src="${rk.home}/shared/windows/perl.zip" dest="compiled/bin/windows"/>
93           
94            <if>
95                <bool>
96                    <and>
97                        <not><equals arg1="${branch.path}" arg2="trunk"/></not>
98                        <islessthan arg1="${branch.tag.version}" arg2="2.84"/>
99                    </and>
100                </bool>
101               
102                <exec executable="${basedir}/compiled/bin/windows/gunzip.exe" dir="${basedir}/compiled/runtime-src/packages/apache-httpd">
103                    <arg value="-d"/>
104                    <arg value="httpd-2.2.11-gs.tar.gz"/>
105                </exec>
106               
107                <exec executable="${basedir}/compiled/bin/windows/tar.exe" dir="${basedir}/compiled/runtime-src/packages/apache-httpd">
108                    <arg value="-xvf"/>
109                    <arg value="httpd-2.2.11-gs.tar"/>
110                </exec>
111            </if>
112           
113            <!-- compile c code -->
114            <exec dir="${basedir}/compiled" executable="nmake"><arg value="/f"/><arg value="win32.mak"/><arg value="clean"/></exec>
115            <exec dir="${basedir}/compiled" executable="nmake"><arg value="/f"/><arg value="win32.mak"/><arg value="APACHE_HTTPD=1"/></exec>
116            <exec dir="${basedir}/compiled" executable="nmake"><arg value="/f"/><arg value="win32.mak"/><arg value="LOCAL_LIBRARY=1"/></exec>
117            <mkdir dir="products"/>
118            <copy file="${basedir}/compiled/server.exe" tofile="${basedir}/products/server-${version}.exe"/>
119            <move file="${basedir}/compiled/server.exe" todir="${basedir}/compiled/bin/windows"/>
120
121
122        <!-- linux only -->
123        <else><if><bool><equals arg1="${rk.os}" arg2="linux"/></bool>
124
125            <!-- add static to configure.in -->
126            <rsr file="${basedir}/compiled/configure.in" pattern="^LDFLAGS=.*$" replacement="LDFLAGS=-static"/>
127            <exec dir="${basedir}/compiled" executable="autoconf" output="${basedir}/compiled/configure">
128                <arg value="configure.in"/>
129            </exec>
130
131            <!-- set environment in packages/configure -->
132            <rsr file="${basedir}/compiled/common-src/packages/configure" pattern="^ENVIRONMENT=.*$" replacement="ENVIRONMENT=&quot;LDFLAGS=-static&quot;"/>
133            <rsr file="${basedir}/compiled/build-src/packages/configure" pattern="^ENVIRONMENT=.*$" replacement="ENVIRONMENT=&quot;LDFLAGS=-static&quot;"/>
134
135            <!-- run configure -->
136            <exec dir="${basedir}/compiled" executable="${basedir}/compiled/configure" failonerror="true">
137                <arg line="--enable-apache-httpd"/>
138                <env key="LDFLAGS" value="-static"/>
139            </exec>
140
141            <!-- add -static to makefiles -->
142            <rsr file="${basedir}/compiled/build-src/packages/wv/wv-gs/Makefile" pattern="^LDFLAGS =.*$" replacement="LDFLAGS = -static" />
143            <rsr file="${basedir}/compiled/build-src/packages/xlhtml/xlhtml-0.4.9.0/xlhtml/Makefile" pattern="^LDFLAGS =.*$" replacement="LDFLAGS = -static"/>
144            <rsr file="${basedir}/compiled/build-src/packages/xlhtml/xlhtml-0.4.9.0/ppthtml/Makefile" pattern="^LDFLAGS =.*$" replacement="LDFLAGS = -static"/>
145            <rsr file="${basedir}/compiled/build-src/packages/rtftohtml/rtftohtml_src/Makefile" pattern="(-o rtftohtml.{2}EXEEXT.{1})" replacement="$1 -static"/>
146
147        <!-- mac only -->
148        <else><if><bool><equals arg1="${rk.os}" arg2="mac"/></bool>
149            <!-- run configure -->
150            <exec dir="${basedir}/compiled" executable="${basedir}/compiled/configure" failonerror="true">
151                <arg line="--enable-apache-httpd"/>
152            </exec>
153
154            <!-- tweak makefiles -->
155            <rsr file="${basedir}/compiled/runtime-src/src/recpt/Makefile" pattern="^(LIBS =.*)-L(.)\(PACKAGES_DIR\)/expat/lib -lexpat(.*)$" replacement="$1$2(PACKAGES_DIR)/expat/lib/libexpat.a$3"/>
156            <rsr file="${basedir}/compiled/runtime-src/src/oaiservr/Makefile" pattern="^(LIBS =.*)-L(.)\(PACKAGES_DIR\)/expat/lib -lexpat(.*)$" replacement="$1$2(PACKAGES_DIR)/expat/lib/libexpat.a$3"/>
157
158        </if></else></if></else></if>
159
160        <!-- mac and linux: compile -->
161        <if><bool><or><equals arg1="${rk.os}" arg2="mac"/><equals arg1="${rk.os}" arg2="linux"/></or></bool>
162
163            <!-- make -->
164            <exec dir="${basedir}/compiled" executable="make" failonerror="true"/>
165
166            <!-- make install -->
167            <exec dir="${basedir}/compiled" executable="make" failonerror="true"><arg value="install"/></exec>
168
169            <!-- make apache-for-dist -->
170            <exec dir="${basedir}/compiled" executable="make" failonerror="true"><arg value="apache-for-dist"/></exec>
171
172            <!-- strip executables -->
173            <exec dir="${basedir}/compiled/bin/${os.shell}" executable="find" failonerror="true">
174                <arg line=". ! -name . -type f -maxdepth 1 -exec strip {} &#59;"/>
175            </exec>
176        </if>
177
178        <!-- compile gli -->
179        <!-- (linux and mac) -->
180        <if><bool><or><equals arg1="${rk.os}" arg2="mac"/><equals arg1="${rk.os}" arg2="linux"/></or></bool>
181            <exec dir="compiled/gli" executable="/bin/bash"><arg value="-c"/><arg value="./makegli.sh"/></exec>
182            <exec dir="compiled/gli" executable="/bin/bash"><arg value="-c"/><arg value="./makejar.sh"/></exec>
183        <!-- windows -->
184        <else><if><bool><equals arg1="${rk.os}" arg2="windows"/></bool>
185            <exec dir="compiled/gli" executable="cmd.exe"><arg value="/c"/><arg value="makegli.bat"/></exec>
186            <exec dir="compiled/gli" executable="cmd.exe"><arg value="/c"/><arg value="makejar.bat"/></exec>
187        </if></else></if>
188
189        <delete dir="compiled/gli/jar"/>
190        <delete dir="compiled/gli/classes/org"/>
191        <move file="compiled/gli/GLIServer.jar" todir="compiled/bin/java"/>
192
193        <!-- compile uninstaller -->
194        <antcall target="insert-and-compile-uninstaller" />
195
196        <!-- build demo collection -->
197        <!-- the envs on these execs simulate the environment when you run setup.bat -->
198        <if>
199            <bool>
200                <equals arg1="${rk.os}" arg2="windows"/>
201            </bool>
202           
203            <exec dir="${basedir}/compiled" executable="${basedir}/compiled/bin/windows/perl/bin/perl">
204                <arg line="-S"/>
205                <arg line="bin/script/import.pl demo"/>
206                <env key="GSDLHOME" path="${basedir}/compiled"/>
207                <env key="GSDLCOLLECTDIR" path="${basedir}/compiled/collect"/>
208                <env key="GSDLOS" value="windows"/>
209                <env key="PATH" path="${basedir}/compiled/bin/windows/perl/bin:${basedir}/compiled/bin/windows:${basedir}/compiled/bin/script:${env.PATH}"/>
210            </exec>
211            <exec dir="${basedir}/compiled" executable="${basedir}/compiled/bin/windows/perl/bin/perl">
212                <arg line="-S"/>
213                <arg line="bin/script/buildcol.pl demo"/>
214                <env key="GSDLHOME" path="${basedir}/compiled"/>
215                <env key="GSDLCOLLECTDIR" path="${basedir}/compiled/collect"/>
216                <env key="GSDLOS" value="windows"/>
217                <env key="PATH" path="${basedir}/compiled/bin/windows/perl/bin:${basedir}/compiled/bin/windows:${basedir}/compiled/bin/script:${env.PATH}"/>
218            </exec>
219           
220            <else>
221                <exec dir="${basedir}/compiled" executable="perl">
222                    <arg line="-S"/>
223                    <arg line="bin/script/import.pl demo"/>
224                    <env key="GSDLHOME" path="${basedir}/compiled"/>
225                    <env key="GSDLCOLLECTDIR" path="${basedir}/compiled/collect"/>
226                    <env key="GSDLOS" value="linux"/>
227                    <env key="PATH" path="${basedir}/compiled/bin/linux:${basedir}/compiled/bin/script:${env.PATH}"/>
228                </exec>
229                <exec dir="${basedir}/compiled" executable="perl">
230                    <arg line="-S"/>
231                    <arg line="bin/script/buildcol.pl demo"/>
232                    <env key="GSDLHOME" path="${basedir}/compiled"/>
233                    <env key="GSDLCOLLECTDIR" path="${basedir}/compiled/collect"/>
234                    <env key="GSDLOS" value="linux"/>
235                    <env key="PATH" path="${basedir}/compiled/bin/linux:${basedir}/compiled/bin/script:${env.PATH}"/>
236                </exec>
237            </else>
238        </if>
239        <delete dir="${basedir}/compiled/collect/demo/index"/>
240        <move file="${basedir}/compiled/collect/demo/building" tofile="${basedir}/compiled/collect/demo/index"/>
241
242        <!-- delete the source code -->
243        <delete><fileset dir="compiled" includes="Makefile,config.cache,config.h,config.log,stamp-h,config.status"/></delete>
244        <delete dir="compiled/common-src"/>
245        <delete dir="compiled/build-src"/>
246        <delete dir="compiled/runtime-src"/>
247        <delete><fileset dir="compiled" includes="Install.txt,acconfig.h,aclocal.m4,config.guess,config.sub,configtest.pl,configure,configure.in,install-sh,Makefile.in,micotest.cpp,config.h.in,win32.mak,win32cfg.h"/></delete>
248
249        <!-- strip .svn working-copy dirs -->
250        <antcall target="strip-svn-dirs"><param name="dir" value="compiled"/></antcall>
251
252        <!-- create needed empty files -->
253        <mkdir dir="compiled/tmp"/>
254        <chmod dir="compiled/tmp" perm="a+rwx"/>
255        <echo file="compiled/etc/usage.txt"></echo>
256
257        <!-- windows -->
258        <if><bool><equals arg1="${rk.os}" arg2="windows"/></bool>
259
260            <!-- make a copy of server.exe in the root -->
261            <copy file="compiled/bin/windows/server.exe" tofile="compiled/server.exe"/>
262
263            <!-- delete sourcecode -->
264            <delete dir="${binzip.dir}/common-src"/>
265            <delete dir="${binzip.dir}/build-src"/>
266            <delete dir="${binzip.dir}/runtime-src"/>
267           
268            <!-- create simple zipped binary distribution
269            <mkdir dir="distributions"/>
270            <property name="binzip.dir" value="distributions/Greenstone-${version}-${os.suffix}-binary"/>
271            <copy todir="${binzip.dir}"><fileset dir="compiled"/></copy>
272            <delete><fileset dir="${binzip.dir}" includes="README*.txt,Uninstall.bat,Uninst.bat,uninst.jar,win32.mak,win32cfg.h,makegs2.bat" excludes="READMEen.txt"/></delete>
273            -->
274
275            <!-- delete unneeded files -->
276            <delete dir="compiled/bin/linux" />
277            <delete><fileset dir="compiled" includes="*.bash,*.sh,*.csh,.gstermrc"/></delete>
278            <delete><fileset dir="compiled/gli" includes="*.sh,*4gs3.bat"/></delete>
279            <delete dir="compiled/autom4te.cache" />
280
281        <!-- linux -->
282        <else><if><bool><equals arg1="${rk.os}" arg2="linux"/></bool>
283
284            <!-- grab imagemagick and wv binaries -->
285            <delete dir="compiled/bin/linux/imagemagick"/>
286            <delete dir="compiled/bin/linux/wv"/>
287
288            <if>
289              <bool>
290                <and>
291                <not><equals arg1="${branch.path}" arg2="trunk"/></not>
292                <isgreaterthan arg1="${branch.tag.version}" arg2="2.83"/>
293                </and>
294              </bool>
295
296              <exec executable="svn">
297                <arg value="export"/>
298                <arg value="${svn.root}/main/${branch.path}/binaries/linux/imagemagick"/>
299                <arg value="compiled/bin/linux/imagemagick"/>
300              </exec>
301
302              <exec executable="svn">
303                <arg value="export"/>
304                <arg value="${svn.root}/main/${branch.path}/binaries/linux/wv"/>
305                <arg value="compiled/bin/linux/wv"/>
306              </exec>
307
308              <else>
309                <exec executable="svn">
310                  <arg value="export"/>
311                  <arg value="${svn.root}/main/trunk/binaries/linux/imagemagick"/>
312                  <arg value="compiled/bin/linux/imagemagick"/>
313                </exec>
314
315                <exec executable="svn">
316                  <arg value="export"/>
317                  <arg value="${svn.root}/main/trunk/binaries/linux/wv"/>
318                  <arg value="compiled/bin/linux/wv"/>
319                </exec>
320              </else>
321            </if>
322
323            <!-- delete unneeded files -->
324            <delete><fileset dir="compiled" includes="win32.mak,win32cfg.h,Install.sh,Support.htm,micotest.cpp"/></delete>
325            <delete><fileset dir="compiled/gli" includes="*.bat"/></delete>
326            <delete><fileset dir="compiled" includes="*.bat"/></delete>
327            <delete dir="compiled/common-src/packages/windows"/>
328            <delete dir="compiled/common-src/indexers/packages/windows"/>
329
330        <!-- mac -->
331        <else><if><bool><equals arg1="${rk.os}" arg2="mac"/></bool>
332            <!-- grab imagemagick and ghostscript binaries -->
333            <delete dir="compiled/bin/darwin/imagemagick"/>
334            <delete dir="compiled/bin/darwin/ghostscript"/>
335
336            <if>
337              <bool>
338                <and>
339                <not><equals arg1="${branch.path}" arg2="trunk"/></not>
340                <isgreaterthan arg1="${branch.tag.version}" arg2="2.83"/>
341                </and>
342              </bool>
343
344              <exec executable="svn">
345                <arg value="export"/>
346                <arg value="${svn.root}/main/${branch.path}/binaries/mac/intel/imagemagick"/>
347                <arg value="compiled/bin/darwin/imagemagick"/>
348              </exec>
349             
350              <exec executable="svn">
351                <arg value="export"/>
352                <arg value="${svn.root}/main/${branch.path}/binaries/mac/intel/ghostscript"/>
353                <arg value="compiled/bin/darwin/ghostscript"/>
354              </exec>
355
356              <else>               
357                <exec executable="svn">
358                  <arg value="export"/>
359                  <arg value="${svn.root}/main/trunk/binaries/mac/intel/imagemagick"/>
360                  <arg value="compiled/bin/darwin/imagemagick"/>
361                </exec>
362               
363                <exec executable="svn">
364                  <arg value="export"/>
365                  <arg value="${svn.root}/main/trunk/binaries/mac/intel/ghostscript"/>
366                  <arg value="compiled/bin/darwin/ghostscript"/>
367                </exec>
368              </else>
369            </if>
370
371            <!-- delete unneeded files -->
372            <delete><fileset dir="compiled" includes="win32.mak,win32cfg.h,Install.sh,Support.htm,*.bat"/></delete>
373            <delete><fileset dir="compiled/gli" includes="*.bat"/></delete>
374            <delete dir="compiled/common-src/packages/windows"/>
375
376        </if></else></if></else></if>
377
378        <!-- delete unneeded files -->
379        <delete dir="compiled/uninstaller" />
380        <delete file="compiled/bin/java/SignedGatherer.jar" />
381
382        <!-- tidy up gli -->
383        <antcall target="gli-tidy-for-dist"><param name="glibasedir" value="compiled/gli"/></antcall>
384
385        <!-- mac and linux: insert export to cdrom package -->
386        <if><bool><or><equals arg1="${rk.os}" arg2="mac"/><equals arg1="${rk.os}" arg2="linux"/></or></bool>
387            <mkdir dir="compiled/bin/windows"/>
388            <get src="${server.exe.location}" dest="compiled/bin/windows/server.exe"/>
389
390            <if>
391              <bool>
392                <and>
393                <not><equals arg1="${branch.path}" arg2="trunk"/></not>
394                <isgreaterthan arg1="${branch.tag.version}" arg2="2.83"/>
395                </and>
396              </bool>
397             
398              <get src="${svn.root}/main/${branch.path}/binaries/windows/bin/Setup.exe" dest="compiled/bin/windows/Setup.exe"/>
399              <get src="${svn.root}/main/${branch.path}/binaries/windows/bin/gssetup.exe" dest="compiled/bin/windows/gssetup.exe"/>
400
401              <else>
402                <get src="${svn.root}/main/trunk/binaries/windows/bin/Setup.exe" dest="compiled/bin/windows/Setup.exe"/>
403                <get src="${svn.root}/main/trunk/binaries/windows/bin/gssetup.exe" dest="compiled/bin/windows/gssetup.exe"/>
404              </else>
405            </if>
406        </if>
407
408    </target>
409
410</project>
Note: See TracBrowser for help on using the browser.