source: main/trunk/gs2build/configure.in@ 21376

Last change on this file since 21376 was 21376, checked in by ak19, 14 years ago

Now the configure, configure.in, Makefile.in and config.h.in of gs2build and greenstone2 are the same, so that they can just be obtained from one source in future. Need to include configtest.pl into gs2build for now to get the changes to configure.in to still work

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