root/main/trunk/greenstone2/runtime-src/configure.in @ 24108

Revision 23356, 11.7 KB (checked in by sjm84, 9 years ago)

Updated several configure scripts and Makefiles to make use of the JAVA, JAVAC and JAVACFLAGS environment variables, also added a --disable-java option to several of the configure scripts

  • Property svn:executable set to *
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
7
8
9PACKAGE=gsdl
10VERSION=2.x-svn
11AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
12AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
13AC_SUBST(PACKAGE)
14AC_SUBST(VERSION)
15
16dnl
17dnl Set use of fast cgi
18dnl
19USE_FASTCGI=0
20if test USE_FASTCGI = 1; then
21AC_DEFINE(USE_FASTCGI)
22AC_SUBST(USE_FASTCGI)
23fi
24
25dnl
26dnl Set use of langaction
27dnl
28dnl USE_LANGACTION=0
29if test USE_LANGACTION = 1; then
30AC_DEFINE(USE_LANGACTION)
31AC_SUBST(USE_LANGACTION)
32fi
33
34dnl
35dnl Set use of corba
36dnl
37AC_ARG_ENABLE(corba, [  --enable-corba          Enable CORBA support], USE_CORBA=$enableval, USE_CORBA=no)
38if test $USE_CORBA = "yes" -o $USE_CORBA = "1" ; then
39  USE_CORBA=1
40  AC_DEFINE(USE_CORBA,[])
41else
42  USE_CORBA=0
43fi
44AC_SUBST(USE_CORBA)
45
46AC_ARG_WITH(micodir, [  --with-micodir          Use installed MICO directory], MICO_DIR=$withval, MICO_DIR="default")
47AC_DEFINE_UNQUOTED(MICO_DIR, "$MICO_DIR")
48AC_SUBST(MICO_DIR)
49
50dnl
51dnl Set use of z39.50
52dnl
53AC_ARG_ENABLE(z3950, [  --enable-z3950          Enable Z39.50 client support], USE_Z3950=$enableval, USE_Z3950=no)
54if test $USE_Z3950 = "yes" -o $USE_Z3950 = "1" ; then
55  USE_Z3950=1
56  AC_DEFINE(USE_Z3950,[])
57else
58  USE_Z3950=0
59fi
60AC_SUBST(USE_Z3950)
61
62dnl
63dnl Set use of yaz - now compiled by default even when z3950 support not required
64dnl
65AC_ARG_ENABLE(yaz, [  --disable-yaz           Disable YAZ compilation], USE_YAZ=$enableval, USE_YAZ=yes)
66if test $USE_YAZ = "yes" -o $USE_YAZ = "1" ; then
67  USE_YAZ=1
68  AC_DEFINE(USE_YAZ,[])
69else
70  USE_YAZ=0
71fi
72AC_SUBST(USE_YAZ)
73
74dnl
75dnl Disable all Java compilation
76dnl
77AC_ARG_ENABLE(java, [  --disable-java          Disable Java compilation], ENABLE_JAVA=$enableval, ENABLE_JAVA=yes)
78if test $ENABLE_JAVA = "yes" -o $ENABLE_JAVA = "1" ; then
79  ENABLE_JAVA=1
80  if test "x$JAVA_HOME" != "x" ; then
81    echo "Detected JAVA_HOME is set, however this will not be used during compilation"
82    echo "To control the version of 'javac' and 'java' set environment variables JAVAC"
83    echo "and JAVA respectively"
84    export JAVA_HOME=
85  fi
86else
87  ENABLE_JAVA=0
88fi
89AC_SUBST(ENABLE_JAVA)
90
91dnl
92dnl Set use of JDBM (enabled by default)
93dnl
94AC_ARG_ENABLE(jdbm, [  --disable-jdbm        Disable JDBM compilation], USE_JDBM=$enableval, USE_JDBM=yes)
95if test $ENABLE_JAVA = "1" -a \( $USE_JDBM = "yes" -o $USE_JDBM = "1" \) ; then
96  USE_JDBM=1
97  AC_DEFINE(USE_JDBM,[])
98else
99  USE_JDBM=0
100fi
101AC_SUBST(USE_JDBM)
102
103dnl
104dnl Set use of GDBM (enabled by default)
105dnl
106AC_ARG_ENABLE(gdbm, [  --disable-gdbm        Disable GDBM compilation], USE_GDBM=$enableval, USE_GDBM=yes)
107if test $USE_GDBM = "yes" -o $USE_GDBM = "1" ; then
108  USE_GDBM=1
109  AC_DEFINE(USE_GDBM,[])
110else
111  USE_GDBM=0
112fi
113AC_SUBST(USE_GDBM)
114
115dnl
116dnl disable compilation of accent folding stuff for mgpp (and one day mg)
117dnl
118AC_ARG_ENABLE(accentfold, [  --disable-accentfold    Disable Accent Folding for MGPP], ENABLE_ACCENTFOLD=$enableval, ENABLE_ACCENTFOLD=yes)
119if test $ENABLE_ACCENTFOLD = "yes" -o $ENABLE_ACCENTFOLD = "1" ; then
120  ENABLE_ACCENTFOLD=1
121  AC_DEFINE(ENABLE_ACCENTFOLD,[])
122else
123  ENABLE_ACCENTFOLD=0
124fi
125AC_SUBST(ENABLE_ACCENTFOLD)
126
127dnl
128dnl Set use of SQLite (enabled by default)
129dnl
130AC_ARG_ENABLE(sqlite, [  --disable-sqlite        Disable SQLite support], USE_SQLITE=$enableval, USE_SQLITE=yes)
131if test $USE_SQLITE = "yes" -o $USE_SQLITE = "1" ; then
132  USE_SQLITE=1
133  AC_DEFINE(USE_SQLITE,[])
134else
135  USE_SQLITE=0
136fi
137AC_SUBST(USE_SQLITE)
138
139dnl
140dnl Set use of Apache httpd (disabled by default)
141dnl
142AC_ARG_ENABLE(apache-httpd, [  --enable-apache-httpd  Enable Apache httpd support], USE_APACHE_HTTPD=$enableval, USE_APACHE_HTTPD=no)
143if test $USE_APACHE_HTTPD = "yes" -o $USE_APACHE_HTTPD = "1" ; then
144  USE_APACHE_HTTPD=1
145  AC_DEFINE(USE_APACHE_HTTPD,[])
146else
147  USE_APACHE_HTTPD=0
148fi
149AC_SUBST(USE_APACHE_HTTPD)
150
151
152dnl
153dnl Set compilation of MG (enabled by default)
154dnl
155AC_ARG_ENABLE(mg, [  --disable-mg        Disable MG compilation], ENABLE_MG=$enableval, ENABLE_MG=yes)
156if test $ENABLE_MG = "yes" -o $ENABLE_MG = "1" ; then
157  ENABLE_MG=1
158  AC_DEFINE(ENABLE_MG,[])
159else
160  ENABLE_MG=0
161fi
162AC_SUBST(ENABLE_MG)
163
164dnl
165dnl Set compilation of MGPP (enabled by default)
166dnl
167AC_ARG_ENABLE(mgpp, [  --disable-mgpp        Disable MGPP compilation], ENABLE_MGPP=$enableval, ENABLE_MGPP=yes)
168if test $ENABLE_MGPP = "yes" -o $ENABLE_MGPP = "1" ; then
169  ENABLE_MGPP=1
170  AC_DEFINE(ENABLE_MGPP,[])
171else
172  ENABLE_MGPP=0
173fi
174AC_SUBST(ENABLE_MGPP)
175
176dnl
177dnl Set compilation of lucene (enabled by default)
178dnl
179AC_ARG_ENABLE(lucene, [  --disable-lucene        Disable Lucene compilation], ENABLE_LUCENE=$enableval, ENABLE_LUCENE=yes)
180if test $ENABLE_JAVA = "1" -a \( $ENABLE_LUCENE = "yes" -o $ENABLE_LUCENE = "1" \) ; then
181  ENABLE_LUCENE=1
182  AC_DEFINE(ENABLE_LUCENE,[])
183else
184  ENABLE_LUCENE=0
185fi
186AC_SUBST(ENABLE_LUCENE)
187
188dnl Checks for programs.
189LDFLAGS=$LDFLAGS
190AC_SUBST(LDFLAGS)
191dnl only set CFLAGS if not already set in environment
192if test -z "$CFLAGS"; then
193CFLAGS=-O2
194fi
195AC_SUBST(CFLAGS)
196
197
198AC_PROG_CC
199AC_PROG_CXX
200if test $ENABLE_JAVA = "1" ; then
201  AC_PROG_JAVAC
202  AC_PROG_JAVA
203fi
204AC_PROG_AWK
205AC_PROG_YACC
206dnl get $target_cpu, $target_vendor, and $target_os
207dnl (as well as host_*)
208AC_CANONICAL_SYSTEM
209dnl do we actually want this? It adds a prefix based on host, system etc
210dnl AC_ARG_PROGRAM
211AC_PROG_INSTALL
212AC_PROG_LN_S
213AC_PROG_MAKE_SET
214AC_PROG_RANLIB
215
216AC_MSG_CHECKING(to see if architecture is 64-bit)
217arch_64bit=no
218case "$host_cpu" in
219x86_64) arch_64bit=yes ;;
220esac
221
222if test "$arch_64bit" = yes; then
223  AC_MSG_RESULT(yes)
224  if test -z "$COMPAT32BITFLAGS" ; then
225    COMPAT32BITFLAGS="-m32"
226  fi
227else
228  AC_MSG_RESULT(no)
229  if test -z "$COMPAT32BITFLAGS" ; then
230    COMPAT32BITFLAGS=
231  fi
232fi
233
234# Only need compat32bitflag if using MG or MGPP
235if test "$ENABLE_MG" = "0" ; then
236  COMPAT32BITFLAGS=
237else
238  if test "$ENABLE_MGPP" = "0" ; then
239    COMPAT32BITFLAGS=
240  fi
241fi
242
243export COMPAT32BITFLAGS
244AC_SUBST(COMPAT32BITFLAGS)
245
246
247#moved CORBA MICO directory test to get version of MICO
248if test $USE_CORBA = 1; then
249
250if test $MICO_DIR = "default"; then
251#do something
252MICO_INC="-I packages/mico/mico/include"
253else
254#build the micotest program
255MICO_INC= ""
256if test $MICO_DIR != yes; then
257MICO_INC="-I $MICO_DIR"
258fi
259fi
260
261#get MICO_VER value
262sh -c "$CC -c micotest.cpp -o micotest.o $MICO_INC 2>&1" > /dev/null
263sh -c "$CC -o micotest micotest.o -lstdc++ 2>&1" > /dev/null
264MICO_VER=`./micotest` || MICO_VER=2.3.5
265sh -c "rm micotest"
266sh -c "rm micotest.o"
267
268#do test of MICO_VER
269if test MICO_VER != 0; then
270AC_DEFINE(MICO_VER)
271AC_SUBST(MICO_VER)
272fi
273#end USE_CORBA test
274fi
275
276dnl Checks for typedefs, structures, and compiler characteristics.
277AC_AIX
278AC_ISC_POSIX
279AC_MINIX
280fp_C_PROTOTYPES
281AC_C_CONST
282AC_TYPE_OFF_T
283AC_TYPE_SIZE_T
284AC_HEADER_TIME
285AC_STRUCT_TM
286
287dnl --- This should be in the stdc checking -----------------
288if test "$ac_cv_prog_cc_stdc" = '-Xc'; then
289dnl The Pyramids running SMP_DC.OSx on MIPS r3000 chips with
290dnl /usr/opt/cc3.11/bin/cc treat -Xc as full ANSI mode - no POSIX or
291dnl XOPEN extensions (like popen).
292dnl Unfortunately -D_{XOPEN,POSIX}_SOURCE can't provide all that mg
293dnl needs. So drop back to -Xa
294AC_TRY_COMPILE(
295[#include <stdio.h>
296], [ FILE *rubbish = popen("yes", "r"); ],,
297[CC="`echo $CC | sed 's/-Xc/-Xa/'`"    ac_cv_prog_cc_stdc='-Xa'])
298fi
299dnl ----------------------
300
301
302dnl Checks for libraries.
303dnl check for -lg:
304AC_HAVE_LIBRARY(g)
305dnl check for -lm:
306AC_HAVE_LIBRARY(m)
307dnl check for -lcrypt:
308AC_HAVE_LIBRARY(crypt)
309#if test $ENABLE_ACCENTFOLD = 1; then
310#AC_HAVE_LIBRARY(iconv)
311#fi
312
313dnl Checks for header files.
314AC_HEADER_DIRENT
315AC_HEADER_STDC
316AC_CHECK_HEADERS(fcntl.h limits.h sys/time.h unistd.h crypt.h string.h memory.h sys/procfs.h sys/stat.h)
317AC_EGREP_HEADER(fread, stdio.h, AC_DEFINE(HAVE_FREAD_DECL))
318AC_EGREP_HEADER(fgetc, stdio.h, AC_DEFINE(HAVE_FGETC_DECL))
319AC_EGREP_HEADER(pr_brksize, sys/procfs.h, AC_DEFINE(HAVE_PR_BRKSIZE))
320
321dnl Checks for library functions.
322AC_FUNC_ALLOCA
323AC_PROG_GCC_TRADITIONAL
324AC_TYPE_SIGNAL
325AC_FUNC_VPRINTF
326AC_CHECK_FUNCS(ftime select strftime strtol getrusage times mallinfo setbuffer getpagesize strerror)
327AC_REPLACE_FUNCS(ftruncate strstr strcasecmp)
328
329dnl see if gettext is in libc. (try the textdomain() function).
330AC_CHECK_FUNC(textdomain, AC_DEFINE(ENABLE_NLS ,1) )
331
332# *** Custom checking (based on GNU tar configure.in) ***
333# ---------------------------------------------------------------------------
334AC_MSG_CHECKING(for HP-UX needing gmalloc)
335if test "`(uname -s) 2> /dev/null`" = 'HP-UX'; then
336  AC_MSG_RESULT(yes)
337  AC_LIBOBJ([gmalloc])
338  AC_DEFINE(HAVE_VALLOC)
339else
340  AC_MSG_RESULT(no)
341  AC_CHECK_FUNCS(valloc)
342fi
343
344# we cannot generate static libraries under Darwin
345AC_MSG_CHECKING(for Apple MacOS X/Darwin)
346if test "`(uname -s) 2> /dev/null`" = 'Darwin'; then
347  AC_MSG_RESULT(yes)
348  STATIC=""
349else
350  AC_MSG_RESULT(no)
351  STATIC="-static "
352fi
353AC_SUBST(STATIC)
354
355fp_WITH_DMALLOC
356fp_WITH_REGEX
357
358# ---------------------------------------------------------------------------
359if test "$ac_cv_func_alloca" = 'no'; then
360dnl    support functions for alloca.c
361  AC_LIBOBJ([xmalloc])
362  AC_LIBOBJ([error])
363fi
364
365
366# ---------------------------------------------------------------------------
367
368dnl
369dnl Switch into C++
370dnl
371AC_LANG_CPLUSPLUS
372
373dnl
374dnl Now check that Perl is actually around, and can be found
375dnl
376AC_MSG_CHECKING(that Perl 5 is available)
377success="no"
378pl_path="$PATH"
379IFS="${IFS=   }"; pl_save_ifs="$IFS"; IFS=":"
380for pl_dir in $pl_path; do
381  test -z "$pl_dir" && pl_dir=.
382  if test -x $pl_dir/perl; then
383    success="yes"
384    break
385  fi
386done
387IFS="$pl_save_ifs"
388
389dnl
390dnl Check if the STL library has any known faults;
391dnl In GCC 2.7.2.x series, some STL library headers are missing
392dnl a file called "new" which is referred to by other headers
393dnl (eg. vector/vector.h); if this applies, then all use of the
394dnl STL will cause a compile fail, so we'd better let the user
395dnl know now, before things really go wrong!
396dnl
397success=no
398AC_MSG_CHECKING("whether STL library has known faults")
399
400dnl - first shot, try simple good old vector on its own
401AC_TRY_COMPILE(
402[#include <vector>
403],
404[],
405success=yes,
406)
407
408dnl - try using the .h equivalent
409if test $success = "no"; then
410AC_TRY_COMPILE(
411[#include <vector.h>
412],
413[],
414success="yes",
415)
416fi
417
418dnl - now try for the objectspace headers
419if test $success = "no"; then
420AC_TRY_COMPILE(
421[#include <ospace\\std\\vector>
422],
423[],
424success="yes",
425)
426fi
427
428if test $success = yes; then
429AC_MSG_RESULT("no")
430else
431AC_MSG_RESULT("yes")
432AC_MSG_ERROR("STL Broken - Obtain newer version of GNU C Compiler")
433fi
434
435gsdlos=`uname | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
436# check for running bash under cygwin
437 if test "`echo $gsdlos | sed 's/cygwin//'`" != "$gsdlos" ;
438 then
439  gsdlos=windows
440 fi
441AC_SUBST(gsdlos)
442
443# check for endianness
444AC_C_BIGENDIAN
445# ---------------------------------------------------------------------------
446if test "$ac_cv_func_alloca" = 'no'; then
447dnl    support functions for alloca.c
448  AC_LIBOBJ([xmalloc.o])
449  AC_LIBOBJ([error])
450fi
451
452# ---------------------------------------------------------------------------
453
454
455dnl
456dnl Locate all children of the modules folder
457dnl
458moduleDirs=""
459MODULEDIRS=""
460if test -d modules ; then
461  for x in `find modules -mindepth 1 -maxdepth 2`; do
462    if test -d "$x"; then
463      d="$x/Makefile.in"
464      if test -e "$d"; then
465  dnl      echo $d
466        moduleDirs="$moduleDirs $x/Makefile"
467        MODULEDIRS="$MODULEDIRS $x"
468      fi
469    fi
470  done
471  echo "Making $moduleDirs in modules directory"
472  AC_SUBST(MODULEDIRS)
473fi
474
475
476AC_CONFIG_SUBDIRS(packages)
477
478# the list of folders in the src folder
479srclist="src/colservr/Makefile \
480         src/corba/Makefile \
481         src/protocol/Makefile \
482         src/recpt/Makefile \
483         src/oaiservr/Makefile \
484         src/z3950/Makefile \
485         src/java/org/nzdl/gsdl/GsdlCollageApplet/Makefile \
486         src/java/org/nzdl/gsdl/Phind/Makefile"
487
488AC_OUTPUT(packages/Makefile Makefile $srclist $moduleDirs)
489
490
Note: See TracBrowser for help on using the browser.