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

Revision 25149, 13.4 KB (checked in by kjdon, 8 years ago)

getting greenstone to work properly on 64 bit machines. COMPAT32BITFLAGS is no more. Don't need -m32 option. Instead, have ARCH_DEP_FLAGS, which gets -fPIC on 64 bit machines. Note that I have used version 2.63 of autoconf. SOme configure files had previously been generated with v 2.65. Have also got rid of lib64 for compiling expat and iconv - only need one version now, not 32 bit version for greenstone and 64 bit version for apache

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