source: main/trunk/greenstone2/configure.in@ 28316

Last change on this file since 28316 was 28316, checked in by ak19, 11 years ago

Adding in the enable-gnome-lib-ext configure flag for GS2's configure as well: this additionally checks out the gnome-lib package from SVN before compiling it.

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 15.8 KB
Line 
1dnl Process this file with autoconf to produce a configure script.
2dnl Use autoconf-2.59 or later... it might not work anymore with
3dnl the older 2.1x versions - jrm21 12/2004
4AC_INIT()
5AC_CONFIG_HEADER(config.h)
6
7PACKAGE=gsdl
8VERSION=2.x-svn
9AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
10AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
11AC_SUBST(PACKAGE)
12AC_SUBST(VERSION)
13
14
15dnl
16dnl Set use of fast cgi
17dnl
18USE_FASTCGI=0
19if test USE_FASTCGI = 1; then
20AC_DEFINE(USE_FASTCGI)
21AC_SUBST(USE_FASTCGI)
22fi
23
24dnl
25dnl Set use of langaction
26dnl
27dnl USE_LANGACTION=0
28if test USE_LANGACTION = 1; then
29AC_DEFINE(USE_LANGACTION)
30AC_SUBST(USE_LANGACTION)
31fi
32
33dnl
34dnl Set use of corba
35dnl
36AC_ARG_ENABLE(corba, [ --enable-corba Enable CORBA support], USE_CORBA=$enableval, USE_CORBA=no)
37if test $USE_CORBA = "yes" -o $USE_CORBA = "1" ; then
38 USE_CORBA=1
39 AC_DEFINE(USE_CORBA,[])
40else
41 USE_CORBA=0
42fi
43AC_SUBST(USE_CORBA)
44
45AC_ARG_WITH(micodir, [ --with-micodir Use installed MICO directory], MICO_DIR=$withval, MICO_DIR="default")
46AC_DEFINE_UNQUOTED(MICO_DIR, "$MICO_DIR")
47AC_SUBST(MICO_DIR)
48
49dnl
50dnl Disable all Java compilation
51dnl
52AC_ARG_ENABLE(java, [ --disable-java Disable Java compilation], ENABLE_JAVA=$enableval, ENABLE_JAVA=yes)
53if test $ENABLE_JAVA = "yes" -o $ENABLE_JAVA = "1" ; then
54 ENABLE_JAVA=1
55 if test "x$JAVA_HOME" != "x" ; then
56 echo "Detected JAVA_HOME is set, however this will not be used during compilation"
57 echo "To control the version of 'javac' and 'java' set environment variables JAVAC"
58 echo "and JAVA respectively"
59 export JAVA_HOME=
60 fi
61else
62 ENABLE_JAVA=0
63fi
64AC_SUBST(ENABLE_JAVA)
65
66dnl
67dnl Set use of z39.50
68dnl
69AC_ARG_ENABLE(z3950, [ --enable-z3950 Enable Z39.50 client support], USE_Z3950=$enableval, USE_Z3950=no)
70if test $USE_Z3950 = "yes" -o $USE_Z3950 = "1" ; then
71 USE_Z3950=1
72 AC_DEFINE(USE_Z3950,[])
73else
74 USE_Z3950=0
75fi
76AC_SUBST(USE_Z3950)
77
78dnl
79dnl Set use of yaz - now compiled by default even when z3950 support not required
80dnl
81AC_ARG_ENABLE(yaz, [ --disable-yaz Disable YAZ compilation], USE_YAZ=$enableval, USE_YAZ=yes)
82if test $USE_YAZ = "yes" -o $USE_YAZ = "1" ; then
83 USE_YAZ=1
84 AC_DEFINE(USE_YAZ,[])
85else
86 USE_YAZ=0
87fi
88AC_SUBST(USE_YAZ)
89
90dnl
91dnl Set use of wvware (enabled by default)
92dnl
93AC_ARG_ENABLE(wvware, [ --disable-wvware Disable wvWare compilation], USE_WVWARE=$enableval, USE_WVWARE=yes)
94if test $USE_WVWARE = "yes" -o $USE_WVWARE = "1" ; then
95 USE_WVWARE=1
96 AC_DEFINE(USE_WVWARE,[])
97else
98 USE_WVWARE=0
99fi
100AC_SUBST(USE_WVWARE)
101
102dnl
103dnl Set use of JDBM (enabled by default)
104dnl
105AC_ARG_ENABLE(jdbm, [ --disable-jdbm Disable JDBM compilation], USE_JDBM=$enableval, USE_JDBM=yes)
106if test $ENABLE_JAVA = "1" -a \( $USE_JDBM = "yes" -o $USE_JDBM = "1" \) ; then
107 USE_JDBM=1
108 AC_DEFINE(USE_JDBM,[])
109else
110 USE_JDBM=0
111fi
112AC_SUBST(USE_JDBM)
113
114dnl
115dnl Set use of GDBM (enabled by default)
116dnl
117AC_ARG_ENABLE(gdbm, [ --disable-gdbm Disable GDBM compilation], USE_GDBM=$enableval, USE_GDBM=yes)
118if test $USE_GDBM = "yes" -o $USE_GDBM = "1" ; then
119 USE_GDBM=1
120 AC_DEFINE(USE_GDBM,[])
121else
122 USE_GDBM=0
123fi
124AC_SUBST(USE_GDBM)
125
126dnl
127dnl disable compilation of accent folding stuff for mgpp (and one day mg)
128dnl
129AC_ARG_ENABLE(accentfold, [ --disable-accentfold Disable Accent Folding for MGPP], ENABLE_ACCENTFOLD=$enableval, ENABLE_ACCENTFOLD=yes)
130if test $ENABLE_ACCENTFOLD = "yes" -o $ENABLE_ACCENTFOLD = "1" ; then
131 ENABLE_ACCENTFOLD=1
132 AC_DEFINE(ENABLE_ACCENTFOLD,[])
133else
134 ENABLE_ACCENTFOLD=0
135fi
136AC_SUBST(ENABLE_ACCENTFOLD)
137
138dnl
139dnl Set use of SQLite (enabled by default)
140dnl
141AC_ARG_ENABLE(sqlite, [ --disable-sqlite Disable SQLite support], USE_SQLITE=$enableval, USE_SQLITE=yes)
142if test $USE_SQLITE = "yes" -o $USE_SQLITE = "1" ; then
143 USE_SQLITE=1
144 AC_DEFINE(USE_SQLITE,[])
145else
146 USE_SQLITE=0
147fi
148AC_SUBST(USE_SQLITE)
149
150dnl
151dnl Set use of RSS (enabled by default)
152dnl
153AC_ARG_ENABLE(rss, [ --disable-rss Disable RSS support], USE_RSS=$enableval, USE_RSS=yes)
154if test $USE_RSS = "yes" -o $USE_RSS = "1" ; then
155 USE_RSS=1
156 AC_DEFINE(USE_RSS,[])
157else
158 USE_RSS=0
159fi
160AC_SUBST(USE_RSS)
161
162
163dnl
164dnl Set use of Apache httpd (disabled by default)
165dnl
166if test -d runtime-src; then
167 AC_ARG_ENABLE(apache-httpd, [ --enable-apache-httpd Enable Apache httpd support], USE_APACHE_HTTPD=$enableval, USE_APACHE_HTTPD=no)
168 if test $USE_APACHE_HTTPD = "yes" -o $USE_APACHE_HTTPD = "1" ; then
169 USE_APACHE_HTTPD=1
170 AC_DEFINE(USE_APACHE_HTTPD,[])
171 else
172 USE_APACHE_HTTPD=0
173 fi
174 AC_SUBST(USE_APACHE_HTTPD)
175fi
176
177dnl
178dnl Set compilation of JNI parts of MG and MGPP indexers (disabled by default, which is GS2's default behaviour)
179dnl
180AC_ARG_ENABLE(jni, [ --enable-jni Enable JNI compilation], ENABLE_JNI=$enableval, ENABLE_JNI=no)
181if test $ENABLE_JAVA = "1" -a \( $ENABLE_JNI = "yes" -o $ENABLE_JNI = "1" \) ; then
182 ENABLE_JNI=1
183 AC_DEFINE(ENABLE_JNI,[])
184else
185 ENABLE_JNI=0
186fi
187AC_SUBST(ENABLE_JNI)
188
189dnl
190dnl Set compilation of MG (enabled by default)
191dnl
192AC_ARG_ENABLE(mg, [ --disable-mg Disable MG compilation], ENABLE_MG=$enableval, ENABLE_MG=yes)
193if test $ENABLE_MG = "yes" -o $ENABLE_MG = "1" ; then
194 ENABLE_MG=1
195 AC_DEFINE(ENABLE_MG,[])
196 else
197 ENABLE_MG=0
198 fi
199AC_SUBST(ENABLE_MG)
200
201
202dnl
203dnl Set compilation of MGPP (enabled by default)
204dnl
205AC_ARG_ENABLE(mgpp, [ --disable-mgpp Disable MGPP compilation], ENABLE_MGPP=$enableval, ENABLE_MGPP=yes)
206if test $ENABLE_MGPP = "yes" -o $ENABLE_MGPP = "1" ; then
207 ENABLE_MGPP=1
208 AC_DEFINE(ENABLE_MGPP,[])
209else
210 ENABLE_MGPP=0
211fi
212AC_SUBST(ENABLE_MGPP)
213
214dnl
215dnl Set compilation of lucene (enabled by default)
216dnl
217AC_ARG_ENABLE(lucene, [ --disable-lucene Disable Lucene compilation], ENABLE_LUCENE=$enableval, ENABLE_LUCENE=yes)
218if test $ENABLE_JAVA = "1" -a \( $ENABLE_LUCENE = "yes" -o $ENABLE_LUCENE = "1" \) ; then
219 ENABLE_LUCENE=1
220 AC_DEFINE(ENABLE_LUCENE,[])
221else
222 ENABLE_LUCENE=0
223fi
224AC_SUBST(ENABLE_LUCENE)
225
226
227dnl
228dnl Set compilation and/or sourcing of gnome-lib extension (disabled by default)
229dnl
230AC_ARG_ENABLE(gnome-lib-ext, [ --enable-gnome-lib-ext Enable the gnome-lib extension], ENABLE_GNOMELIB_EXT=1, ENABLE_GNOMELIB_EXT=0)
231if test -d ext/gnome-lib ; then
232 AC_DEFINE(ENABLE_GNOMELIB_EXT, $ENABLE_GNOMELIB_EXT)
233elif test -d ext/gnome-lib-minimal ; then
234 AC_DEFINE(ENABLE_GNOMELIB_EXT, $ENABLE_GNOMELIB_EXT)
235else
236 # Running `svn` returns 127 if no svn is installed. It returns 1 if svn is installed,
237 # since it suggests running svn --help. It returns 0 if running `svn --version`
238
239 if test $ENABLE_GNOMELIB_EXT = 1; then
240 echo "@@@@ TOTO"
241 svn --version
242 result=$?
243 if test $result = 0; then
244 cd ext
245 svn co http://svn.greenstone.org/gs2-extensions/gnome-lib/trunk/src gnome-lib
246 cd ..
247 AC_DEFINE(ENABLE_GNOMELIB_EXT, 1)
248 else
249 echo "**** WARNING: No gnome-lib or gnome-lib-minimal in gs2build/ext folder. Unable to check out gnome-lib. Disabling gnome-lib-ext."
250 AC_DEFINE(ENABLE_GNOMELIB_EXT, 0)
251 fi
252 fi
253fi
254AC_SUBST(ENABLE_GNOMELIB_EXT)
255
256
257dnl Checks for programs.
258LDFLAGS=$LDFLAGS
259AC_SUBST(LDFLAGS)
260dnl only set CFLAGS if not already set in environment
261if test -z "$CFLAGS"; then
262CFLAGS=-O2
263fi
264AC_SUBST(CFLAGS)
265
266
267AC_PROG_CC
268AC_PROG_CXX
269AC_PROG_AWK
270AC_PROG_YACC
271dnl get $target_cpu, $target_vendor, and $target_os
272dnl (as well as host_*)
273AC_CANONICAL_SYSTEM
274dnl do we actually want this? It adds a prefix based on host, system etc
275dnl AC_ARG_PROGRAM
276AC_PROG_INSTALL
277AC_PROG_LN_S
278AC_PROG_MAKE_SET
279AC_PROG_RANLIB
280
281AC_MSG_CHECKING(to see if architecture is 64-bit)
282arch_64bit=no
283case "$host_cpu" in
284x86_64) arch_64bit=yes ;;
285esac
286
287if test "$arch_64bit" = yes; then
288 AC_MSG_RESULT(yes)
289 if test -z "$ARCH_DEP_FLAGS" ; then
290 ARCH_DEP_FLAGS=-fPIC
291 fi
292else
293 AC_MSG_RESULT(no)
294 if test -z "$ARCH_DEP_FLAGS" ; then
295 ARCH_DEP_FLAGS=
296 fi
297fi
298
299export ARCH_DEP_FLAGS
300AC_SUBST(ARCH_DEP_FLAGS)
301
302
303#moved CORBA MICO directory test to get version of MICO
304if test $USE_CORBA = 1; then
305
306if test $MICO_DIR = "default"; then
307#do something
308MICO_INC="-I packages/mico/mico/include"
309else
310#build the micotest program
311MICO_INC= ""
312if test $MICO_DIR != yes; then
313MICO_INC="-I $MICO_DIR"
314fi
315fi
316
317#get MICO_VER value
318sh -c "$CC -c micotest.cpp -o micotest.o $MICO_INC 2>&1" > /dev/null
319sh -c "$CC -o micotest micotest.o -lstdc++ 2>&1" > /dev/null
320MICO_VER=`./micotest` || MICO_VER=2.3.5
321sh -c "rm micotest"
322sh -c "rm micotest.o"
323
324#do test of MICO_VER
325if test MICO_VER != 0; then
326AC_DEFINE(MICO_VER)
327AC_SUBST(MICO_VER)
328fi
329#end USE_CORBA test
330fi
331
332dnl Checks for typedefs, structures, and compiler characteristics.
333AC_AIX
334AC_ISC_POSIX
335AC_MINIX
336fp_C_PROTOTYPES
337AC_C_CONST
338AC_TYPE_OFF_T
339AC_TYPE_SIZE_T
340AC_HEADER_TIME
341AC_STRUCT_TM
342
343dnl --- This should be in the stdc checking -----------------
344if test "$ac_cv_prog_cc_stdc" = '-Xc'; then
345dnl The Pyramids running SMP_DC.OSx on MIPS r3000 chips with
346dnl /usr/opt/cc3.11/bin/cc treat -Xc as full ANSI mode - no POSIX or
347dnl XOPEN extensions (like popen).
348dnl Unfortunately -D_{XOPEN,POSIX}_SOURCE can't provide all that mg
349dnl needs. So drop back to -Xa
350AC_TRY_COMPILE(
351[#include <stdio.h>
352], [ FILE *rubbish = popen("yes", "r"); ],,
353[CC="`echo $CC | sed 's/-Xc/-Xa/'`" ac_cv_prog_cc_stdc='-Xa'])
354fi
355dnl ----------------------
356
357
358dnl Checks for libraries.
359dnl check for -lg:
360AC_HAVE_LIBRARY(g)
361dnl check for -lm:
362AC_HAVE_LIBRARY(m)
363dnl check for -lcrypt:
364AC_HAVE_LIBRARY(crypt)
365#if test $ENABLE_ACCENTFOLD = 1; then
366#AC_HAVE_LIBRARY(iconv)
367#fi
368
369dnl Checks for header files.
370AC_HEADER_DIRENT
371AC_HEADER_STDC
372AC_CHECK_HEADERS(fcntl.h limits.h sys/time.h unistd.h crypt.h string.h memory.h sys/procfs.h sys/stat.h)
373AC_EGREP_HEADER(fread, stdio.h, AC_DEFINE(HAVE_FREAD_DECL))
374AC_EGREP_HEADER(fgetc, stdio.h, AC_DEFINE(HAVE_FGETC_DECL))
375AC_EGREP_HEADER(pr_brksize, sys/procfs.h, AC_DEFINE(HAVE_PR_BRKSIZE))
376
377dnl Checks for library functions.
378AC_FUNC_ALLOCA
379AC_PROG_GCC_TRADITIONAL
380AC_TYPE_SIGNAL
381AC_FUNC_VPRINTF
382AC_CHECK_FUNCS(ftime select strftime strtol getrusage times mallinfo setbuffer getpagesize strerror)
383AC_REPLACE_FUNCS(ftruncate strstr strcasecmp)
384
385dnl see if gettext is in libc. (try the textdomain() function).
386AC_CHECK_FUNC(textdomain, AC_DEFINE(ENABLE_NLS ,1) )
387
388# *** Custom checking (based on GNU tar configure.in) ***
389# ---------------------------------------------------------------------------
390AC_MSG_CHECKING(for HP-UX needing gmalloc)
391if test "`(uname -s) 2> /dev/null`" = 'HP-UX'; then
392 AC_MSG_RESULT(yes)
393 AC_LIBOBJ([gmalloc])
394 AC_DEFINE(HAVE_VALLOC)
395else
396 AC_MSG_RESULT(no)
397 AC_CHECK_FUNCS(valloc)
398fi
399
400# we cannot generate static libraries under Darwin
401AC_MSG_CHECKING(for Apple MacOS X/Darwin)
402if test "`(uname -s) 2> /dev/null`" = 'Darwin'; then
403 AC_MSG_RESULT(yes)
404 STATIC=""
405else
406 AC_MSG_RESULT(no)
407 STATIC="-static "
408fi
409AC_SUBST(STATIC)
410
411fp_WITH_DMALLOC
412fp_WITH_REGEX
413
414# ---------------------------------------------------------------------------
415if test "$ac_cv_func_alloca" = 'no'; then
416dnl support functions for alloca.c
417 AC_LIBOBJ([xmalloc])
418 AC_LIBOBJ([error])
419fi
420
421
422# ---------------------------------------------------------------------------
423
424dnl
425dnl Switch into C++
426dnl
427AC_LANG_CPLUSPLUS
428
429dnl
430dnl Now check that Perl is actually around, and can be found
431dnl
432AC_MSG_CHECKING(that Perl 5 is available)
433success="no"
434pl_path="$PATH"
435IFS="${IFS= }"; pl_save_ifs="$IFS"; IFS=":"
436for pl_dir in $pl_path; do
437 test -z "$pl_dir" && pl_dir=.
438 if test -x $pl_dir/perl; then
439 success="yes"
440 break
441 fi
442done
443IFS="$pl_save_ifs"
444
445dnl
446dnl Perl actually can be run; now we see if it is version 5 by
447dnl running a sample script (which returns a "clean" version number
448dnl and then tests the result using expr. If perl errors in some
449dnl way (eg. broken Perl executable, missing script), we set a failure
450dnl value ("0") and then proceed as best we can
451dnl
452if test $success = "yes"; then
453try=`perl configtest.pl` || try="0"
454try=`expr $try \> 5.000`
455if test $try = "1"; then
456AC_MSG_RESULT("yes")
457else
458success="no"
459fi
460fi
461
462if test $success = "no"; then
463AC_MSG_RESULT("no")
464AC_MSG_ERROR("Perl 5 not available - cannot install")
465fi
466
467dnl
468dnl Check if the STL library has any known faults;
469dnl In GCC 2.7.2.x series, some STL library headers are missing
470dnl a file called "new" which is referred to by other headers
471dnl (eg. vector/vector.h); if this applies, then all use of the
472dnl STL will cause a compile fail, so we'd better let the user
473dnl know now, before things really go wrong!
474dnl
475success=no
476AC_MSG_CHECKING("whether STL library has known faults")
477
478dnl - first shot, try simple good old vector on its own
479AC_TRY_COMPILE(
480[#include <vector>
481],
482[],
483success=yes,
484)
485
486dnl - try using the .h equivalent
487if test $success = "no"; then
488AC_TRY_COMPILE(
489[#include <vector.h>
490],
491[],
492success="yes",
493)
494fi
495
496dnl - now try for the objectspace headers
497if test $success = "no"; then
498AC_TRY_COMPILE(
499[#include <ospace\\std\\vector>
500],
501[],
502success="yes",
503)
504fi
505
506if test $success = yes; then
507AC_MSG_RESULT("no")
508else
509AC_MSG_RESULT("yes")
510AC_MSG_ERROR("STL Broken - Obtain newer version of GNU C Compiler")
511fi
512
513gsdlos=`uname | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
514# check for running bash under cygwin
515 if test "`echo $gsdlos | sed 's/cygwin//'`" != "$gsdlos" ;
516 then
517 gsdlos=windows
518 fi
519AC_SUBST(gsdlos)
520
521# check for endianness
522AC_C_BIGENDIAN
523# ---------------------------------------------------------------------------
524if test "$ac_cv_func_alloca" = 'no'; then
525dnl support functions for alloca.c
526 AC_LIBOBJ([xmalloc.o])
527 AC_LIBOBJ([error])
528fi
529
530# ---------------------------------------------------------------------------
531
532dnl
533dnl Locate all children of the modules folder
534dnl
535moduleDirs=""
536MODULEDIRS=""
537if test -d modules ; then
538 for x in `find modules -mindepth 1 -maxdepth 2`; do
539 if test -d "$x"; then
540 d="$x/Makefile.in"
541 if test -e "$d"; then
542 dnl echo $d
543 moduleDirs="$moduleDirs $x/Makefile"
544 MODULEDIRS="$MODULEDIRS $x"
545 fi
546 fi
547 done
548 echo "Making $moduleDirs in modules directory"
549 AC_SUBST(MODULEDIRS)
550fi
551
552
553#----------------------------------------------------------------------------
554# GS2 uses this configure to set up gnome-lib env, GS3 uses the one in gs2build/build-src
555# For gnome-lib-minimal need to source its ./devel.bash before wvware can even be configured
556# For a gnome-lib that's already compiled, don't need to its source ./devel.bash to configure wvware
557# If a gnome-lib is not yet compiled, we compile it first with CASCADE-MAKE.sh
558
559if test -d ext/gnome-lib-minimal; then
560 echo "*** gnome-lib (minimal) detected. Sourcing the gnomelib env for configuring wvware..."
561 cd ext/gnome-lib-minimal
562 source ./devel.bash
563 cd ../..
564elif test -d ext/gnome-lib; then
565 if [ -d ext/gnome-lib/$gsdlos ]; then
566 echo "*** gnome-lib already compiled up in ext/gnome-lib/$gsdlos"
567 echo "*** Sourcing the gnomelib env for configuring wvware for GS2 (although it's not necessary)..."
568 cd ext/gnome-lib
569 source ./devel.bash
570 cd ../..
571 else
572 echo "*** Compiling up gnome-lib..."
573 cd ext/gnome-lib
574 ./CASCADE-MAKE.sh
575 gnomestatus=$?
576 if [ $gnomestatus != 0 ] ; then
577 echo "****************************************"
578 echo "@@@ Failed to compile up gnomelib successfully"
579 echo "****************************************"
580 exit -1
581 fi
582 cd ../..
583 fi
584fi
585
586# ---------------------------------------------------------------------------
587dnl for Darwin, as our packages don't (yet) correctly guess our system type.
588dnl not needed any more?
589dnl ac_configure_args="$ac_configure_args --build=$build --target=$target"
590
591# indexers needs a bindir option to get the binaries into the right place
592gsdlprefix=`pwd`
593ac_configure_args="$ac_configure_args --bindir=$gsdlprefix/bin/$gsdlos --libdir=$gsdlprefix/lib/$gsdlos"
594AC_CONFIG_SUBDIRS(common-src)
595AC_CONFIG_SUBDIRS(build-src)
596
597# the list of folders in the src folder
598srclist="common-src/Makefile \
599 build-src/Makefile"
600
601if test -d runtime-src; then
602 AC_CONFIG_SUBDIRS(runtime-src)
603 srclist="$srclist \
604 runtime-src/Makefile"
605fi
606
607AC_OUTPUT(Makefile $srclist $moduleDirs)
608
609
Note: See TracBrowser for help on using the repository browser.