root/main/trunk/greenstone2/configure.in @ 31960

Revision 28509, 16.1 KB (checked in by ak19, 6 years ago)

Bugfix to bug Kathy and I discovered when trying to compile source comp with GS2 binary: GS2 binary has a gnome-lib-minimal folder but it's cut down just to the lib subfolder to help wvware run. The cut down version doesn't help with compiling wvware however, so the test for an existing gnome-lib-minimal has to check for whether it is a cut-down version or the full version.

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
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 -f ext/gnome-lib-minimal/devel.bash ; 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      svn --version
241      result=$?
242      if test $result = 0; then
243         cd ext
244     svn co http://svn.greenstone.org/gs2-extensions/gnome-lib/trunk/src gnome-lib
245     cd ..
246     AC_DEFINE(ENABLE_GNOMELIB_EXT, 1)
247      else
248         echo "**** WARNING: No gnome-lib or gnome-lib-minimal(/devel.bash) in gs2build/ext folder. Unable to check out gnome-lib. Disabling gnome-lib-ext."
249     AC_DEFINE(ENABLE_GNOMELIB_EXT, 0)
250      fi
251   fi
252fi
253AC_SUBST(ENABLE_GNOMELIB_EXT)
254
255
256dnl Checks for programs.
257LDFLAGS=$LDFLAGS
258AC_SUBST(LDFLAGS)
259dnl only set CFLAGS if not already set in environment
260if test -z "$CFLAGS"; then
261CFLAGS=-O2
262fi
263AC_SUBST(CFLAGS)
264
265
266AC_PROG_CC
267AC_PROG_CXX
268AC_PROG_AWK
269AC_PROG_YACC
270dnl get $target_cpu, $target_vendor, and $target_os
271dnl (as well as host_*)
272AC_CANONICAL_SYSTEM
273dnl do we actually want this? It adds a prefix based on host, system etc
274dnl AC_ARG_PROGRAM
275AC_PROG_INSTALL
276AC_PROG_LN_S
277AC_PROG_MAKE_SET
278AC_PROG_RANLIB
279
280AC_MSG_CHECKING(to see if architecture is 64-bit)
281arch_64bit=no
282case "$host_cpu" in
283x86_64) arch_64bit=yes ;;
284esac
285
286if test "$arch_64bit" = yes; then
287  AC_MSG_RESULT(yes)
288  if test -z "$ARCH_DEP_FLAGS" ; then
289    ARCH_DEP_FLAGS=-fPIC
290  fi
291else
292  AC_MSG_RESULT(no)
293  if test -z "$ARCH_DEP_FLAGS" ; then
294    ARCH_DEP_FLAGS=
295  fi
296fi
297
298export ARCH_DEP_FLAGS
299AC_SUBST(ARCH_DEP_FLAGS)
300
301
302#moved CORBA MICO directory test to get version of MICO
303if test $USE_CORBA = 1; then
304
305if test $MICO_DIR = "default"; then
306#do something
307MICO_INC="-I packages/mico/mico/include"
308else
309#build the micotest program
310MICO_INC= ""
311if test $MICO_DIR != yes; then
312MICO_INC="-I $MICO_DIR"
313fi
314fi
315
316#get MICO_VER value
317sh -c "$CC -c micotest.cpp -o micotest.o $MICO_INC 2>&1" > /dev/null
318sh -c "$CC -o micotest micotest.o -lstdc++ 2>&1" > /dev/null
319MICO_VER=`./micotest` || MICO_VER=2.3.5
320sh -c "rm micotest"
321sh -c "rm micotest.o"
322
323#do test of MICO_VER
324if test MICO_VER != 0; then
325AC_DEFINE(MICO_VER)
326AC_SUBST(MICO_VER)
327fi
328#end USE_CORBA test
329fi
330
331dnl Checks for typedefs, structures, and compiler characteristics.
332AC_AIX
333AC_ISC_POSIX
334AC_MINIX
335fp_C_PROTOTYPES
336AC_C_CONST
337AC_TYPE_OFF_T
338AC_TYPE_SIZE_T
339AC_HEADER_TIME
340AC_STRUCT_TM
341
342dnl --- This should be in the stdc checking -----------------
343if test "$ac_cv_prog_cc_stdc" = '-Xc'; then
344dnl The Pyramids running SMP_DC.OSx on MIPS r3000 chips with
345dnl /usr/opt/cc3.11/bin/cc treat -Xc as full ANSI mode - no POSIX or
346dnl XOPEN extensions (like popen).
347dnl Unfortunately -D_{XOPEN,POSIX}_SOURCE can't provide all that mg
348dnl needs. So drop back to -Xa
349AC_TRY_COMPILE(
350[#include <stdio.h>
351], [ FILE *rubbish = popen("yes", "r"); ],,
352[CC="`echo $CC | sed 's/-Xc/-Xa/'`"    ac_cv_prog_cc_stdc='-Xa'])
353fi
354dnl ----------------------
355
356
357dnl Checks for libraries.
358dnl check for -lg:
359AC_HAVE_LIBRARY(g)
360dnl check for -lm:
361AC_HAVE_LIBRARY(m)
362dnl check for -lcrypt:
363AC_HAVE_LIBRARY(crypt)
364#if test $ENABLE_ACCENTFOLD = 1; then
365#AC_HAVE_LIBRARY(iconv)
366#fi
367
368dnl Checks for header files.
369AC_HEADER_DIRENT
370AC_HEADER_STDC
371AC_CHECK_HEADERS(fcntl.h limits.h sys/time.h unistd.h crypt.h string.h memory.h sys/procfs.h sys/stat.h)
372AC_EGREP_HEADER(fread, stdio.h, AC_DEFINE(HAVE_FREAD_DECL))
373AC_EGREP_HEADER(fgetc, stdio.h, AC_DEFINE(HAVE_FGETC_DECL))
374AC_EGREP_HEADER(pr_brksize, sys/procfs.h, AC_DEFINE(HAVE_PR_BRKSIZE))
375
376dnl Checks for library functions.
377AC_FUNC_ALLOCA
378AC_PROG_GCC_TRADITIONAL
379AC_TYPE_SIGNAL
380AC_FUNC_VPRINTF
381AC_CHECK_FUNCS(ftime select strftime strtol getrusage times mallinfo setbuffer getpagesize strerror)
382AC_REPLACE_FUNCS(ftruncate strstr strcasecmp)
383
384dnl see if gettext is in libc. (try the textdomain() function).
385AC_CHECK_FUNC(textdomain, AC_DEFINE(ENABLE_NLS ,1) )
386
387# *** Custom checking (based on GNU tar configure.in) ***
388# ---------------------------------------------------------------------------
389AC_MSG_CHECKING(for HP-UX needing gmalloc)
390if test "`(uname -s) 2> /dev/null`" = 'HP-UX'; then
391  AC_MSG_RESULT(yes)
392  AC_LIBOBJ([gmalloc])
393  AC_DEFINE(HAVE_VALLOC)
394else
395  AC_MSG_RESULT(no)
396  AC_CHECK_FUNCS(valloc)
397fi
398
399# we cannot generate static libraries under Darwin
400AC_MSG_CHECKING(for Apple MacOS X/Darwin)
401if test "`(uname -s) 2> /dev/null`" = 'Darwin'; then
402  AC_MSG_RESULT(yes)
403  STATIC=""
404else
405  AC_MSG_RESULT(no)
406  STATIC="-static "
407fi
408AC_SUBST(STATIC)
409
410fp_WITH_DMALLOC
411fp_WITH_REGEX
412
413# ---------------------------------------------------------------------------
414if test "$ac_cv_func_alloca" = 'no'; then
415dnl    support functions for alloca.c
416  AC_LIBOBJ([xmalloc])
417  AC_LIBOBJ([error])
418fi
419
420
421# ---------------------------------------------------------------------------
422
423dnl
424dnl Switch into C++
425dnl
426AC_LANG_CPLUSPLUS
427
428dnl
429dnl Now check that Perl is actually around, and can be found
430dnl
431AC_MSG_CHECKING(that Perl 5 is available)
432success="no"
433pl_path="$PATH"
434IFS="${IFS=   }"; pl_save_ifs="$IFS"; IFS=":"
435for pl_dir in $pl_path; do
436  test -z "$pl_dir" && pl_dir=.
437  if test -x $pl_dir/perl; then
438    success="yes"
439    break
440  fi
441done
442IFS="$pl_save_ifs"
443
444dnl
445dnl Perl actually can be run; now we see if it is version 5 by
446dnl running a sample script (which returns a "clean" version number
447dnl and then tests the result using expr.  If perl errors in some
448dnl way (eg. broken Perl executable, missing script), we set a failure
449dnl value ("0") and then proceed as best we can
450dnl
451if test $success = "yes"; then
452try=`perl configtest.pl` || try="0"
453try=`expr $try \> 5.000`
454if test $try = "1"; then
455AC_MSG_RESULT("yes")
456else
457success="no"
458fi
459fi
460
461if test $success = "no"; then
462AC_MSG_RESULT("no")
463AC_MSG_ERROR("Perl 5 not available - cannot install")
464fi
465
466dnl
467dnl Check if the STL library has any known faults;
468dnl In GCC 2.7.2.x series, some STL library headers are missing
469dnl a file called "new" which is referred to by other headers
470dnl (eg. vector/vector.h); if this applies, then all use of the
471dnl STL will cause a compile fail, so we'd better let the user
472dnl know now, before things really go wrong!
473dnl
474success=no
475AC_MSG_CHECKING("whether STL library has known faults")
476
477dnl - first shot, try simple good old vector on its own
478AC_TRY_COMPILE(
479[#include <vector>
480],
481[],
482success=yes,
483)
484
485dnl - try using the .h equivalent
486if test $success = "no"; then
487AC_TRY_COMPILE(
488[#include <vector.h>
489],
490[],
491success="yes",
492)
493fi
494
495dnl - now try for the objectspace headers
496if test $success = "no"; then
497AC_TRY_COMPILE(
498[#include <ospace\\std\\vector>
499],
500[],
501success="yes",
502)
503fi
504
505if test $success = yes; then
506AC_MSG_RESULT("no")
507else
508AC_MSG_RESULT("yes")
509AC_MSG_ERROR("STL Broken - Obtain newer version of GNU C Compiler")
510fi
511
512gsdlos=`uname | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
513# check for running bash under cygwin
514 if test "`echo $gsdlos | sed 's/cygwin//'`" != "$gsdlos" ;
515 then
516  gsdlos=windows
517 fi
518AC_SUBST(gsdlos)
519
520# check for endianness
521AC_C_BIGENDIAN
522# ---------------------------------------------------------------------------
523if test "$ac_cv_func_alloca" = 'no'; then
524dnl    support functions for alloca.c
525  AC_LIBOBJ([xmalloc.o])
526  AC_LIBOBJ([error])
527fi
528
529# ---------------------------------------------------------------------------
530
531dnl
532dnl Locate all children of the modules folder
533dnl
534moduleDirs=""
535MODULEDIRS=""
536if test -d modules ; then
537  for x in `find modules -mindepth 1 -maxdepth 2`; do
538    if test -d "$x"; then
539      d="$x/Makefile.in"
540      if test -e "$d"; then
541  dnl      echo $d
542        moduleDirs="$moduleDirs $x/Makefile"
543        MODULEDIRS="$MODULEDIRS $x"
544      fi
545    fi
546  done
547  echo "Making $moduleDirs in modules directory"
548  AC_SUBST(MODULEDIRS)
549fi
550
551
552#----------------------------------------------------------------------------
553# GS2 uses this configure to set up gnome-lib env, GS3 uses the one in gs2build/build-src
554# For gnome-lib-minimal need to source its ./devel.bash before wvware can even be configured
555# For a gnome-lib that's already compiled, don't need to its source ./devel.bash to configure wvware
556# If a gnome-lib is not yet compiled, we compile it first with CASCADE-MAKE.sh
557# Need to make sure that the gnome-lib-minimal is not the cut-down gnome-lib-minimal (which contains
558# only the linux/lib subfolder) that's included with linux and mac binaries, because we can't compile
559# wvware with the cut-down one, only run wvware with it. The test for the cut-down version is that
560# it does not contain devel.bash.
561
562if test -f ext/gnome-lib-minimal/devel.bash; then
563   echo "*** gnome-lib (minimal) detected. Sourcing the gnomelib env for configuring wvware..."
564   cd ext/gnome-lib-minimal
565   source ./devel.bash
566   cd ../..
567elif test -d ext/gnome-lib; then
568  if test -d ext/gnome-lib/$gsdlos; then
569    echo "*** gnome-lib already compiled up in ext/gnome-lib/$gsdlos"
570    echo "*** Sourcing the gnomelib env for configuring wvware for GS2 (although it's not necessary)..."
571    cd ext/gnome-lib
572    source ./devel.bash
573    cd ../..
574  else
575    echo "*** Compiling up gnome-lib..."
576    cd ext/gnome-lib
577    ./CASCADE-MAKE.sh
578    gnomestatus=$?
579    if test $gnomestatus != 0; then
580       echo "****************************************"
581       echo "@@@ Failed to compile up gnomelib successfully"
582       echo "****************************************"
583       exit -1
584    fi
585    cd ../..
586  fi
587fi
588
589# ---------------------------------------------------------------------------
590dnl for Darwin, as our packages don't (yet) correctly guess our system type.
591dnl not needed any more?
592dnl ac_configure_args="$ac_configure_args --build=$build --target=$target"
593
594# indexers needs a bindir option to get the binaries into the right place
595gsdlprefix=`pwd`
596ac_configure_args="$ac_configure_args --bindir=$gsdlprefix/bin/$gsdlos --libdir=$gsdlprefix/lib/$gsdlos"
597AC_CONFIG_SUBDIRS(common-src)
598AC_CONFIG_SUBDIRS(build-src)
599
600# the list of folders in the src folder
601srclist="common-src/Makefile \
602         build-src/Makefile"
603
604if test -d runtime-src; then
605   AC_CONFIG_SUBDIRS(runtime-src)
606   srclist="$srclist \
607         runtime-src/Makefile"
608fi
609
610AC_OUTPUT(Makefile $srclist $moduleDirs)
611
612
Note: See TracBrowser for help on using the browser.