source: main/trunk/greenstone2/build-src/packages/configure@ 36311

Last change on this file since 36311 was 36311, checked in by kjdon, 21 months ago

compiling for 32 bit linux on new gs build system which is 64 bit - running config for openssl gives the wrong value for what machine you are on - we are on 64 bit, but don't want to be compiling for 64 bit. Will prob change the environment variable name, just temporarily putting it here so I can re-run the release kit

  • Property svn:executable set to *
File size: 15.3 KB
Line 
1#! /bin/sh
2
3PACKAGES=`pwd`
4cd ../..
5GSDLHOME=`pwd`
6cd $PACKAGES
7
8GSDLOS=`uname -s |tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
9# check for running bash under cygwin
10if test "`echo $GSDLOS | sed 's/cygwin//'`" != "$GSDLOS" ;
11then
12 GSDLOS=windows
13fi
14if test "x$crossOS" != "x" ; then
15 # Override derived value with value explicitly provided in crossOS
16 GSDLOS=$crossOS
17fi
18
19prefix=""
20bindir=""
21HOSTTARGETFLAGS=""
22
23# only some of the packages can take environment variables as options to
24# configure
25# format is VAR=value, e.g "LDFLAGS=-static"
26ENVIRONMENT=""
27
28# WVWARE compilation enabled by default, can switch it off with --disable-wvware
29USE_WVWARE=true
30# GDBM compilation enabled by default, can switch it off with --disable-gdbm
31USE_GDBM=true
32# JDBM compilation enabled by default, can switch it off with --disable-jdbm
33USE_JDBM=true
34# SQLite support enabled by default, can switch it off with --disable-sqlite
35USE_SQLITE=true
36# yaz compilation enabled by default, can switch it off with --disable-yaz
37USE_YAZ=true
38# z3950 server disabled by default, switch it on with --enable-z3950
39USE_Z3950=false
40# CORBA support disabled by default, switch it on with --enable-corba
41USE_CORBA=false
42MICO_DIR=default
43
44# parse any arguments given from toplevel configure
45while test $# -ne 0; do
46 case "$1" in
47 --cache-file=*)
48 cache_filename=`echo $1 | sed s/--cache-file=//`
49 # turn relative path into an absolute path
50 cache_dir=`echo $cache_filename | sed 's@/[^/]*$@@'`
51 cache_dir=`cd $cache_dir 2>/dev/null && pwd`
52
53 cache_basefile=`echo $cache_filename | sed 's@.*/@@'`
54 cache_file="$cache_dir/$cache_basefile"
55 if test ! -f "$cache_file"; then
56 CACHE_FILE=""
57 else
58 CACHE_FILE="--cache-file=$cache_file"
59 fi
60 ;;
61 --disable-wvware)
62 USE_WVWARE=false
63 ;;
64 --disable-gdbm)
65 USE_GDBM=false
66 ;;
67 --disable-jdbm)
68 USE_JDBM=false
69 ;;
70 --disable-sqlite)
71 USE_SQLITE=false
72 ;;
73 --disable-yaz)
74 USE_YAZ=false
75 ;;
76 --enable-z3950)
77 USE_Z3950=true
78 ;;
79 --enable-corba)
80 USE_CORBA=true
81 ;;
82 --with-micodir=*)
83 if test $1 = ""; then
84 $1 = "default"
85 fi
86 MICO_DIR=$1
87 ;;
88 --prefix=*)
89 prefix=`echo $1 | sed s/--prefix=//`
90 ;;
91 --bindir=*)
92 # where to install binaries to
93 bindir=`echo $1 | sed s/--bindir=//`
94 # turn relative path into an absolute path
95 if test -d "$bindir" ; then
96 bindir=`cd "$bindir" ; pwd `
97 cd "$PACKAGES"
98 elif test -z `echo $bindir | sed '/^\// p;D'` ; then
99 rel_bindir="`echo $bindir | sed s@/.*@@`"
100 cd "$rel_bindir"
101 bindir="`pwd`/`echo $bindir | sed s@^[^/]*/@@`"
102 cd "$PACKAGES"
103 else
104 # bindir doesn't exist, and isn't relative
105 true
106 fi
107 ;;
108 --host=* | --target=* | --build=*)
109 HOSTTARGETFLAGS="$HOSTTARGETFLAGS $1"
110 ;;
111 *)
112 # ignore all other options for now
113 ;;
114 esac
115 shift
116done
117
118# note! Our GSDL package currently always installs into it's source
119# directory, ignoring any --prefix given to configure.
120# When this is fixed, uncomment the relevant lines below...
121
122##if test -z "$prefix" ; then
123prefix="${GSDLHOME}"
124##fi
125
126##if test -z "$bindir" ; then
127bindir="${prefix}/bin/$GSDLOS"
128##fi
129
130libdir="${prefix}/lib/$GSDLOS"
131
132# This loads the top configure's cache file, with variables already set.
133if test -f "$cache_file" ; then
134 . $cache_file
135fi
136
137# we assume that gzip and tar are on the search path.
138# non-GNU versions of tar don't take the -z option.
139
140
141
142# The way common-src compiles up expat during the configure stage itself,
143# configure openssl (needs to be done before wget)
144# and compile openssl during the configure stage itself.
145# Needed by wget for https support
146
147echo ""
148echo "Configuring openssl"
149echo ""
150cd "$PACKAGES/openssl"
151openssl_pkgname=openssl-1.0.2l
152#openssl_pkgname=openssl-1.1.0f
153if test ! -d $openssl_pkgname ;
154then
155 gzip -dc $openssl_pkgname.tar.gz | tar -xf -
156fi
157cd $openssl_pkgname
158
159# configure
160# see the INSTALL file for OpenSSL to see config options for openssl
161# --prefix indicates where the generated lib, include and bin folders will go
162# --openssldir will contain the manuals and other non-essentials
163# BEWARE: The defaults for --prefix and meaning of --openssldir differ between
164# versions of openssl. In the earlier version (1.0.* like 1.0.2l), if
165# --prefix is not supplied, then the generated lib, include and bin folders
166# will also go into --openssldir.
167# In the newer version 1.1.* 1.1.0f, if --prefix is not supplied, it will
168# try to install the generated lib, include and bin folders into a system place.
169# So better to provide both --openssldir and --prefix, for both openssl versions
170# to compile succesfully.
171# If you ever want to have the .a libraries that building openssl generates,
172# then point the --prefix to the $bindir. We currently don't need to put them
173# into $bindir/openssl for wget to use, since wget is built against openssl's
174# static libraries and therefore wget doesn't need these when running.
175
176# for 64 bit Macs, need to run ./Configure with darwin64-x86_64-cc, rather than ./config
177# To overcome an error in openssl's perl script determining the LLVM version, we also need force the
178# compilers to be GNU since Clang comes back with an LLVM version that doesn't work out
179stored_CC=$CC
180stored_CXX=$CXX
181ssl_status=
182if [[ "x$GSDLOS" == "xdarwin" ]] && [[ `uname -m` == *"64" ]] ; then
183 export CC="gcc"
184 export CXX="g++"
185 echo ./Configure --openssldir=$PACKAGES/openssl no-shared darwin64-x86_64-cc
186 #CC="gcc" CXX="g++" ./Configure --openssldir=$PACKAGES/openssl no-shared darwin64-x86_64-cc
187 ./Configure --openssldir=$PACKAGES/openssl no-shared darwin64-x86_64-cc
188 ssl_status=$?
189elif [[ "x$RK32" != "x" ]] ; then
190 echo "in RK32 mode"
191 echo ./Configure --prefix=$PACKAGES/openssl --openssldir=$PACKAGES/openssl no-shared linux-generic32
192 # we found that the following needs bash to run as running it directly here (from within ant)
193 # as ./Configure had an error, even though the command worked fine on the command line
194 bash ./Configure --prefix=$PACKAGES/openssl --openssldir=$PACKAGES/openssl no-shared linux-generic32
195 ssl_status=$?
196
197else
198 # this will auto guess the system you are running on
199 echo ./config --prefix=$PACKAGES/openssl --openssldir=$PACKAGES/openssl no-shared
200 ./config --prefix=$PACKAGES/openssl --openssldir=$PACKAGES/openssl no-shared
201fi
202if [[ $ssl_status != 0 ]] ; then
203 echo "ERROR: something went wrong with configuring openssl"
204 exit $ssl_status
205fi
206# make
207echo make
208make
209# make 'install_sw' is a target this package has for installing just the software,
210# skipping the installation of, for example, the man pages
211echo make install_sw
212make install_sw
213# restore the compile flags
214export CC=$stored_CC
215export CXX=$stored_CXX
216
217# GS3 needs the now-built openssl to set up https. So we copy (hardlink?) the necessary openssl stuff
218# Copying is perhaps OK: <12Mb without the manual or 14.4Mb with manuals.
219# to GSDL3SRCHOME/bin/$GSDLOS. Not sure if GSDL3SRCHOME is even set during configure
220# if this is a GS3 installation. But we have $GSDLHOME.
221cd $PACKAGES
222gs3_bin_osdir=../../../bin/$GSDLOS
223if [[ -f ../../../gs3-setup.sh ]] && [[ -d $gs3_bin_osdir ]] ; then
224 # get rid of any openssl copy from a previous installation
225 if [ -d $gs3_bin_osdir/openssl ] ; then
226 rm -rf $gs3_bin_osdir/openssl
227 fi
228 mkdir $gs3_bin_osdir/openssl
229 cp -r $PACKAGES/openssl/bin $PACKAGES/openssl/certs $PACKAGES/openssl/include $PACKAGES/openssl/lib $PACKAGES/openssl/misc $PACKAGES/openssl/private $gs3_bin_osdir/openssl/.
230fi
231
232# now move the include, lib and bin folders to the correct place
233
234# configure the wvWare Word document converter
235echo ""
236echo "Configuring wvWare"
237echo ""
238
239# datadir flag is for default location of wvHtml.xml config file
240if test x$USE_WVWARE = xtrue ;
241then
242
243 # Look to see if gnome-lib extension is present and if so, source its devel.bash file
244 if [ -d ../../ext/gnome-lib ] ; then
245 pushd ../../ext/gnome-lib
246 source ./devel.bash
247 popd
248 fi
249
250 if [ -d ../../../ext/gnome-lib-minimal ] ; then
251 pushd ../../../ext/gnome-lib-minimal
252 source ./devel.bash
253 popd
254 fi
255
256 cd "$PACKAGES/wv"
257 if [ "x$GSDLOS" = "xdarwin" ]; then
258 WV_LDFLAGS="$LDFLAGS -framework CoreFoundation -framework Carbon"
259 else
260 WV_LDFLAGS="$LDFLAGS"
261 fi
262 gzip -dc wv-1.2.4-gs.tar.gz | tar -xf -
263 cd wv-gs && \
264 ./configure $CACHE_FILE --prefix=$PACKAGES/wv --bindir="$bindir" --libdir="$libdir" --datadir="$prefix/etc/packages" $HOSTTARGETFLAGS --disable-shared --enable-static LDFLAGS="$WV_LDFLAGS"
265else
266 echo "wvWare support disabled."
267 echo " add '--enable-wvware' to the configure command to include wvWare support."
268 echo ""
269fi
270
271if test x$? = x1 ;
272then
273 echo "Configuration of wvWare failed."
274 exit 1
275fi
276
277# configure the pdftohtml converter
278echo ""
279echo "Configuring pdftohtml"
280echo ""
281
282cd "$PACKAGES/pdftohtml"
283gzip -dc pdftohtml_0_36_gs.tar.gz | tar -xf -
284cd pdftohtml_gs && \
285./configure $CACHE_FILE --prefix="$prefix" --bindir="$bindir" $HOSTTARGETFLAGS $ENVIRONMENT
286
287if test x$? = x1 ;
288then
289 echo "Configuration of pdftohtml failed."
290 exit 1
291fi
292
293# rtftohtml converter
294echo ""
295echo "Configuring rtftohtml"
296echo ""
297
298cd "$PACKAGES/rtftohtml"
299gzip -dc rtftohtml-gs.tar.gz | tar -xf -
300cd rtftohtml_src && \
301./configure $CACHE_FILE --prefix="$prefix" --bindir="$bindir" $HOSTTARGETFLAGS
302
303if test x$? = x1 ;
304then
305 echo "Configuration of rtftohtml failed."
306 exit 1
307fi
308
309# On darwin, the wget binary that we build (in $GSDLHOME/bin/$GSDLOS/wget)
310# finds a system libiconv, as you'll notice when you run "otool -L wget"
311# That's because we expressly don't compile up libiconv on Macs anymore,
312# as the Mac system will have the right libiconv installed.
313
314# configure wget
315#wget_pkgname=wget-1.15-gs
316wget_pkgname=wget-1.17.1-gs
317#wget_pkgname=wget-1.19-gs
318echo ""
319echo "Configuring wget"
320echo ""
321cd "$PACKAGES/wget"
322gzip -dc $wget_pkgname.tar.gz | tar -xf -
323if test x$crossOS = "xandroid" ;
324then
325 wget_extraargs="gl_cv_header_working_stdint_h=yes ac_cv_func_getopt_long_only=no"
326else
327 wget_extraargs=
328fi
329
330# When compiling wget-1.15-gs without openssl as before:
331#./configure $CACHE_FILE --prefix=$PACKAGES/wget --without-ssl --bindir="$bindir" -disable-nls $HOSTTARGETFLAGS $wget_extraargs
332
333# We weren't compiling up wget statically before either and we still aren't
334# However, to compile up wget (statically or not) with openssl, as we do now to support retrieving from https urls, see
335# https://stackoverflow.com/questions/9817337/compiling-wget-with-static-linking-self-compiled-openssl-library-linking-issu
336# Note: contrary to the instructions at the link, if the cppflags and ldflags are set during the
337# configure stage, as we now do, then the make command needn't additionally set them as well.
338# So just make, make install works thereafter
339
340echo copying "$PACKAGES/wget/wgetrc-gs.in" file to "$bindir/wgetrc"
341cp "$PACKAGES/wget/wgetrc-gs.in" "$bindir/wgetrc"
342echo cd "$PACKAGES/wget/$wget_pkgname"
343
344# for wget-1.15-gs. (can also try adding --localstatedir="$bindir/wget" --enable-iri)
345##echo CPPFLAGS="-I$PACKAGES/openssl/include $CPPFLAGS" LDFLAGS="-L$PACKAGES/openssl/lib $LDFLAGS" ./configure $CACHE_FILE --prefix=$PACKAGES/wget --with-ssl=openssl --bindir="$bindir" -disable-nls $HOSTTARGETFLAGS $wget_extraarg
346##cd "$PACKAGES/wget/$wget_pkgname" && \
347##CPPFLAGS="-I$PACKAGES/openssl/include $CPPFLAGS" LDFLAGS="-L$PACKAGES/openssl/lib $LDFLAGS" ./configure $CACHE_FILE --prefix=$PACKAGES/wget --with-ssl=openssl --bindir="$bindir" -disable-nls $HOSTTARGETFLAGS $wget_extraargs
348
349# for wget-1.17.1-gs and wget-1.19-gs (can also try adding --localstatedir="$bindir/wget" --enable-iri)
350# The following ran in to a problem on a Linux (centos) machine with lib32 and lib64 libraries. It tested for
351# openssl/lib64 when in fact the folder we produce is 'openssl/lib' causing ./configure to bail
352#echo OPENSSL_CFLAGS="-I$PACKAGES/openssl/include" OPENSSL_LIBS="-L$PACKAGES/openssl/lib -lssl -lcrypto" ./configure $CACHE_FILE --prefix=$PACKAGES/wget --with-ssl=openssl --with-openssl=auto --with-libssl-prefix="$PACKAGES/openssl" --bindir="$bindir" -disable-nls $HOSTTARGETFLAGS $wget_extraargs
353#cd "$PACKAGES/wget/$wget_pkgname" && \
354#OPENSSL_CFLAGS="-I$PACKAGES/openssl/include" OPENSSL_LIBS="-L$PACKAGES/openssl/lib -lssl -lcrypto" ./configure $CACHE_FILE --prefix=$PACKAGES/wget --with-ssl=openssl --with-openssl=auto --with-libssl-prefix="$PACKAGES/openssl" --bindir="$bindir" -disable-nls $HOSTTARGETFLAGS $wget_extraargs
355
356
357echo OPENSSL_CFLAGS="-I$PACKAGES/openssl/include" OPENSSL_LIBS="-L$PACKAGES/openssl/lib -lssl -lcrypto -lz -ldl" ./configure $CACHE_FILE --prefix=$PACKAGES/wget --with-ssl=openssl --with-openssl=auto --bindir="$bindir" -disable-nls $HOSTTARGETFLAGS $wget_extraargs
358cd "$PACKAGES/wget/$wget_pkgname" && \
359OPENSSL_CFLAGS="-I$PACKAGES/openssl/include" OPENSSL_LIBS="-L$PACKAGES/openssl/lib -lssl -lcrypto -lz -ldl" ./configure $CACHE_FILE --prefix=$PACKAGES/wget --with-ssl=openssl --with-openssl=auto --bindir="$bindir" -disable-nls $HOSTTARGETFLAGS $wget_extraargs
360
361
362
363if test x$? = x1 ;
364then
365 echo "Configuration of wget failed."
366 exit 1
367fi
368
369# configure XML::Parser perl module
370echo ""
371echo "Configuring XML::Parser"
372echo ""
373cd "$PACKAGES/cpan"
374
375perl_dir=`echo 'my $vn = sprintf("%vd", $^V); $vn =~ s/\.\d+?$//; print "perl-$vn";' | perl`
376
377gzip -dc XML-Parser-2.41.tar.gz | tar -xf -
378cd "$PACKAGES/cpan/XML-Parser-2.41" && \
379
380perl Makefile.PL \
381 PREFIX="$GSDLHOME/perllib/cpan/XML" \
382 INSTALLSITELIB="$GSDLHOME/perllib/cpan/$perl_dir" \
383 INSTALLSITEARCH="$GSDLHOME/perllib/cpan/$perl_dir" \
384 INSTALLMAN1DIR="$GSDLHOME/perllib/cpan/$perl_dir" \
385 INSTALLMAN3DIR="$GSDLHOME/perllib/cpan/$perl_dir" \
386 SITEPREFIX="$GSDLHOME/perllib/cpan" \
387 EXPATINCPATH="$GSDLHOME/common-src/packages/expat/include" \
388 EXPATLIBPATH="$GSDLHOME/common-src/packages/expat/lib"
389
390if test x$? = x1 ;
391then
392 echo "Configuration of XML-Parser failed."
393 exit 1
394fi
395
396cpan_extras=1
397if test $cpan_extras = 1 ;
398then
399
400 for pack in Digest-MD5-2.55 Digest-SHA-5.92 Text-CSV-1.99 ;
401 do
402 cd "$PACKAGES/cpan"
403 gzip -dc $pack.tar.gz | tar -xf -
404 cd "$PACKAGES/cpan/$pack" \
405 && \
406 perl Makefile.PL \
407 PREFIX="$GSDLHOME/perllib/cpan" \
408 INSTALLSITELIB="$GSDLHOME/perllib/cpan/$perl_dir" \
409 INSTALLSITEARCH="$GSDLHOME/perllib/cpan/$perl_dir" \
410 INSTALLMAN1DIR="$GSDLHOME/perllib/cpan/$perl_dir" \
411 INSTALLMAN3DIR="$GSDLHOME/perllib/cpan/$perl_dir" \
412 SITEPREFIX="$GSDLHOME/perllib/cpan"
413
414 if test x$? = x1 ;
415 then
416 echo "Configuration of $pack failed."
417 exit 1
418 fi
419 done
420fi
421
422# configure powerpoint converter
423echo ""
424echo "Configuring xlhtml (powerpoint & excel converter)"
425echo ""
426cd "$PACKAGES/xlhtml"
427gzip -dc xlhtml-0.4.9.0-gs.tar.gz | tar -xf -
428cd xlhtml-0.4.9.0 && \
429./configure $CACHE_FILE --prefix="$prefix" --bindir="$bindir" $HOSTTARGETFLAGS
430
431if test x$? = x1 ;
432then
433 echo "Configuration of xlhtml failed."
434 exit 1
435fi
436
437# configure IsisGdl program
438echo ""
439echo "Configuring IsisGdl (CDS/ISIS database reader)"
440echo ""
441cd "$PACKAGES/isis-gdl" && \
442./configure $CACHE_FILE --prefix="$prefix" --bindir="$bindir" $HOSTTARGETFLAGS $ENVIRONMENT
443
444if test x$? = x1 ;
445then
446 echo "Configuration of IsisGdl failed."
447 exit 1
448fi
449
450# configure HTMLTidy program
451echo ""
452echo "Configuring HTMLTidy"
453echo ""
454cd "$PACKAGES/html-tidy"
455gzip -dc tidy.tgz | tar -xf -
456cd "$PACKAGES/html-tidy/tidy" && \
457./configure $CACHE_FILE --prefix="$prefix" --bindir="$bindir" $HOSTTARGETFLAGS $ENVIRONMENT
458
459if test x$? = x1 ;
460then
461 echo "Configuration of HTMLTidy failed."
462 exit 1
463fi
Note: See TracBrowser for help on using the repository browser.