source: main/trunk/greenstone2/common-src/configure.in@ 26658

Last change on this file since 26658 was 26658, checked in by davidb, 11 years ago

Support for cross-compilation added -- the CrossOS check

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