source: main/tags/stable/gs2build/configure.in@ 21853

Last change on this file since 21853 was 21434, checked in by davidb, 14 years ago

Extra logic to COMPAT32BIT flag added for when mg and mgpp not enabled

File size: 11.3 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
174
175# Only need compat32bitflag if using MG or MGPP
176if test "$ENABLE_MG" = "0" ; then
177 COMPAT32BITFLAGS=
178else
179 if test "$ENABLE_MGPP" = "0" ; then
180 COMPAT32BITFLAGS=
181 fi
182fi
183
184export COMPAT32BITFLAGS
185AC_SUBST(COMPAT32BITFLAGS)
186
187
188#moved CORBA MICO directory test to get version of MICO
189if test $USE_CORBA = 1; then
190
191if test $MICO_DIR = "default"; then
192#do something
193MICO_INC="-I packages/mico/mico/include"
194else
195#build the micotest program
196MICO_INC= ""
197if test $MICO_DIR != yes; then
198MICO_INC="-I $MICO_DIR"
199fi
200fi
201
202#get MICO_VER value
203sh -c "$CC -c micotest.cpp -o micotest.o $MICO_INC 2>&1" > /dev/null
204sh -c "$CC -o micotest micotest.o -lstdc++ 2>&1" > /dev/null
205MICO_VER=`./micotest` || MICO_VER=2.3.5
206sh -c "rm micotest"
207sh -c "rm micotest.o"
208
209#do test of MICO_VER
210if test MICO_VER != 0; then
211AC_DEFINE(MICO_VER)
212AC_SUBST(MICO_VER)
213fi
214#end USE_CORBA test
215fi
216
217dnl Checks for typedefs, structures, and compiler characteristics.
218AC_AIX
219AC_ISC_POSIX
220AC_MINIX
221fp_C_PROTOTYPES
222AC_C_CONST
223AC_TYPE_OFF_T
224AC_TYPE_SIZE_T
225AC_HEADER_TIME
226AC_STRUCT_TM
227
228dnl --- This should be in the stdc checking -----------------
229if test "$ac_cv_prog_cc_stdc" = '-Xc'; then
230dnl The Pyramids running SMP_DC.OSx on MIPS r3000 chips with
231dnl /usr/opt/cc3.11/bin/cc treat -Xc as full ANSI mode - no POSIX or
232dnl XOPEN extensions (like popen).
233dnl Unfortunately -D_{XOPEN,POSIX}_SOURCE can't provide all that mg
234dnl needs. So drop back to -Xa
235AC_TRY_COMPILE(
236[#include <stdio.h>
237], [ FILE *rubbish = popen("yes", "r"); ],,
238[CC="`echo $CC | sed 's/-Xc/-Xa/'`" ac_cv_prog_cc_stdc='-Xa'])
239fi
240dnl ----------------------
241
242
243dnl Checks for libraries.
244dnl check for -lg:
245AC_HAVE_LIBRARY(g)
246dnl check for -lm:
247AC_HAVE_LIBRARY(m)
248dnl check for -lcrypt:
249AC_HAVE_LIBRARY(crypt)
250#if test $ENABLE_ACCENTFOLD = 1; then
251#AC_HAVE_LIBRARY(iconv)
252#fi
253
254dnl Checks for header files.
255AC_HEADER_DIRENT
256AC_HEADER_STDC
257AC_CHECK_HEADERS(fcntl.h limits.h sys/time.h unistd.h crypt.h string.h memory.h sys/procfs.h sys/stat.h)
258AC_EGREP_HEADER(fread, stdio.h, AC_DEFINE(HAVE_FREAD_DECL))
259AC_EGREP_HEADER(fgetc, stdio.h, AC_DEFINE(HAVE_FGETC_DECL))
260AC_EGREP_HEADER(pr_brksize, sys/procfs.h, AC_DEFINE(HAVE_PR_BRKSIZE))
261
262dnl Checks for library functions.
263AC_FUNC_ALLOCA
264AC_PROG_GCC_TRADITIONAL
265AC_TYPE_SIGNAL
266AC_FUNC_VPRINTF
267AC_CHECK_FUNCS(ftime select strftime strtol getrusage times mallinfo setbuffer getpagesize strerror)
268AC_REPLACE_FUNCS(ftruncate strstr strcasecmp)
269
270dnl see if gettext is in libc. (try the textdomain() function).
271AC_CHECK_FUNC(textdomain, AC_DEFINE(ENABLE_NLS ,1) )
272
273# *** Custom checking (based on GNU tar configure.in) ***
274# ---------------------------------------------------------------------------
275AC_MSG_CHECKING(for HP-UX needing gmalloc)
276if test "`(uname -s) 2> /dev/null`" = 'HP-UX'; then
277 AC_MSG_RESULT(yes)
278 AC_LIBOBJ([gmalloc])
279 AC_DEFINE(HAVE_VALLOC)
280else
281 AC_MSG_RESULT(no)
282 AC_CHECK_FUNCS(valloc)
283fi
284
285# we cannot generate static libraries under Darwin
286AC_MSG_CHECKING(for Apple MacOS X/Darwin)
287if test "`(uname -s) 2> /dev/null`" = 'Darwin'; then
288 AC_MSG_RESULT(yes)
289 STATIC=""
290else
291 AC_MSG_RESULT(no)
292 STATIC="-static "
293fi
294AC_SUBST(STATIC)
295
296fp_WITH_DMALLOC
297fp_WITH_REGEX
298
299# ---------------------------------------------------------------------------
300if test "$ac_cv_func_alloca" = 'no'; then
301dnl support functions for alloca.c
302 AC_LIBOBJ([xmalloc])
303 AC_LIBOBJ([error])
304fi
305
306
307# ---------------------------------------------------------------------------
308
309dnl
310dnl Switch into C++
311dnl
312AC_LANG_CPLUSPLUS
313
314dnl
315dnl Now check that Perl is actually around, and can be found
316dnl
317AC_MSG_CHECKING(that Perl 5 is available)
318success="no"
319pl_path="$PATH"
320IFS="${IFS= }"; pl_save_ifs="$IFS"; IFS=":"
321for pl_dir in $pl_path; do
322 test -z "$pl_dir" && pl_dir=.
323 if test -x $pl_dir/perl; then
324 success="yes"
325 break
326 fi
327done
328IFS="$pl_save_ifs"
329
330dnl
331dnl Perl actually can be run; now we see if it is version 5 by
332dnl running a sample script (which returns a "clean" version number
333dnl and then tests the result using expr. If perl errors in some
334dnl way (eg. broken Perl executable, missing script), we set a failure
335dnl value ("0") and then proceed as best we can
336dnl
337if test $success = "yes"; then
338try=`perl configtest.pl` || try="0"
339try=`expr $try \> 5.000`
340if test $try = "1"; then
341AC_MSG_RESULT("yes")
342else
343success="no"
344fi
345fi
346
347if test $success = "no"; then
348AC_MSG_RESULT("no")
349AC_MSG_ERROR("Perl 5 not available - cannot install")
350fi
351
352dnl
353dnl Check if the STL library has any known faults;
354dnl In GCC 2.7.2.x series, some STL library headers are missing
355dnl a file called "new" which is referred to by other headers
356dnl (eg. vector/vector.h); if this applies, then all use of the
357dnl STL will cause a compile fail, so we'd better let the user
358dnl know now, before things really go wrong!
359dnl
360success=no
361AC_MSG_CHECKING("whether STL library has known faults")
362
363dnl - first shot, try simple good old vector on its own
364AC_TRY_COMPILE(
365[#include <vector>
366],
367[],
368success=yes,
369)
370
371dnl - try using the .h equivalent
372if test $success = "no"; then
373AC_TRY_COMPILE(
374[#include <vector.h>
375],
376[],
377success="yes",
378)
379fi
380
381dnl - now try for the objectspace headers
382if test $success = "no"; then
383AC_TRY_COMPILE(
384[#include <ospace\\std\\vector>
385],
386[],
387success="yes",
388)
389fi
390
391if test $success = yes; then
392AC_MSG_RESULT("no")
393else
394AC_MSG_RESULT("yes")
395AC_MSG_ERROR("STL Broken - Obtain newer version of GNU C Compiler")
396fi
397
398gsdlos=`uname | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
399# check for running bash under cygwin
400 if test "`echo $gsdlos | sed 's/cygwin//'`" != "$gsdlos" ;
401 then
402 gsdlos=windows
403 fi
404AC_SUBST(gsdlos)
405
406# check for endianness
407AC_C_BIGENDIAN
408# ---------------------------------------------------------------------------
409if test "$ac_cv_func_alloca" = 'no'; then
410dnl support functions for alloca.c
411 AC_LIBOBJ([xmalloc.o])
412 AC_LIBOBJ([error])
413fi
414
415# ---------------------------------------------------------------------------
416
417dnl
418dnl Locate all children of the modules folder
419dnl
420moduleDirs=""
421MODULEDIRS=""
422if test -d modules ; then
423 for x in `find modules -mindepth 1 -maxdepth 2`; do
424 if test -d "$x"; then
425 d="$x/Makefile.in"
426 if test -e "$d"; then
427 dnl echo $d
428 moduleDirs="$moduleDirs $x/Makefile"
429 MODULEDIRS="$MODULEDIRS $x"
430 fi
431 fi
432 done
433 echo "Making $moduleDirs in modules directory"
434 AC_SUBST(MODULEDIRS)
435fi
436
437
438# ---------------------------------------------------------------------------
439dnl for Darwin, as our packages don't (yet) correctly guess our system type.
440dnl not needed any more?
441dnl ac_configure_args="$ac_configure_args --build=$build --target=$target"
442
443# indexers needs a bindir option to get the binaries into the right place
444gsdlprefix=`pwd`
445ac_configure_args="$ac_configure_args --bindir=$gsdlprefix/bin/$gsdlos --libdir=$gsdlprefix/lib/$gsdlos"
446AC_CONFIG_SUBDIRS(common-src)
447AC_CONFIG_SUBDIRS(build-src)
448
449# the list of folders in the src folder
450srclist="common-src/Makefile \
451 build-src/Makefile"
452
453if test -d runtime-src; then
454 AC_CONFIG_SUBDIRS(runtime-src)
455 srclist="$srclist \
456 runtime-src/Makefile"
457fi
458
459AC_OUTPUT(Makefile $srclist $moduleDirs)
460
461
Note: See TracBrowser for help on using the repository browser.