source: main/trunk/greenstone2/build-src/configure.in@ 26663

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

Support for cross-compilation added -- the CrossOS check

  • Property svn:executable set to *
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
7
8PACKAGE=gsdl
9VERSION=2.x-svn
10AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
11AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
12AC_SUBST(PACKAGE)
13AC_SUBST(VERSION)
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 Set use of z39.50
51dnl
52AC_ARG_ENABLE(z3950, [ --enable-z3950 Enable Z39.50 client support], USE_Z3950=$enableval, USE_Z3950=no)
53if test $USE_Z3950 = "yes" -o $USE_Z3950 = "1" ; then
54 USE_Z3950=1
55 AC_DEFINE(USE_Z3950,[])
56else
57 USE_Z3950=0
58fi
59AC_SUBST(USE_Z3950)
60
61dnl
62dnl Set use of yaz - now compiled by default even when z3950 support not required
63dnl
64AC_ARG_ENABLE(yaz, [ --disable-yaz Disable YAZ compilation], USE_YAZ=$enableval, USE_YAZ=yes)
65if test $USE_YAZ = "yes" -o $USE_YAZ = "1" ; then
66 USE_YAZ=1
67 AC_DEFINE(USE_YAZ,[])
68else
69 USE_YAZ=0
70fi
71AC_SUBST(USE_YAZ)
72
73dnl
74dnl Disable all Java compilation
75dnl
76AC_ARG_ENABLE(java, [ --disable-java Disable Java compilation], ENABLE_JAVA=$enableval, ENABLE_JAVA=yes)
77if test $ENABLE_JAVA = "yes" -o $ENABLE_JAVA = "1" ; then
78 ENABLE_JAVA=1
79 if test "x$JAVA_HOME" != "x" ; then
80 echo "Detected JAVA_HOME is set, however this will not be used during compilation"
81 echo "To control the version of 'javac' and 'java' set environment variables JAVAC"
82 echo "and JAVA respectively"
83 export JAVA_HOME=
84 fi
85else
86 ENABLE_JAVA=0
87fi
88AC_SUBST(ENABLE_JAVA)
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 Checks for programs.
151LDFLAGS=$LDFLAGS
152AC_SUBST(LDFLAGS)
153dnl only set CFLAGS if not already set in environment
154if test -z "$CFLAGS"; then
155CFLAGS=-O2
156fi
157AC_SUBST(CFLAGS)
158
159
160AC_PROG_CC
161AC_PROG_CXX
162if test $ENABLE_JAVA = "1" ; then
163 AC_PROG_JAVAC
164 AC_PROG_JAVA
165fi
166AC_PROG_AWK
167AC_PROG_YACC
168dnl get $target_cpu, $target_vendor, and $target_os
169dnl (as well as host_*)
170AC_CANONICAL_SYSTEM
171dnl do we actually want this? It adds a prefix based on host, system etc
172dnl AC_ARG_PROGRAM
173AC_PROG_INSTALL
174AC_PROG_LN_S
175AC_PROG_MAKE_SET
176AC_PROG_RANLIB
177
178AC_MSG_CHECKING(to see if architecture is 64-bit)
179arch_64bit=no
180case "$host_cpu" in
181x86_64) arch_64bit=yes ;;
182esac
183
184if test "$arch_64bit" = yes; then
185 AC_MSG_RESULT(yes)
186 if test -z "$ARCH_DEP_FLAGS" ; then
187 ARCH_DEP_FLAGS="-fPIC"
188 fi
189else
190 AC_MSG_RESULT(no)
191 if test -z "$ARCH_DEP_FLAGS" ; then
192 ARCH_DEP_FLAGS=
193 fi
194fi
195
196export ARCH_DEP_FLAGS
197AC_SUBST(ARCH_DEP_FLAGS)
198
199
200#moved CORBA MICO directory test to get version of MICO
201if test $USE_CORBA = 1; then
202
203if test $MICO_DIR = "default"; then
204#do something
205MICO_INC="-I packages/mico/mico/include"
206else
207#build the micotest program
208MICO_INC= ""
209if test $MICO_DIR != yes; then
210MICO_INC="-I $MICO_DIR"
211fi
212fi
213
214#get MICO_VER value
215sh -c "$CC -c micotest.cpp -o micotest.o $MICO_INC 2>&1" > /dev/null
216sh -c "$CC -o micotest micotest.o -lstdc++ 2>&1" > /dev/null
217MICO_VER=`./micotest` || MICO_VER=2.3.5
218sh -c "rm micotest"
219sh -c "rm micotest.o"
220
221#do test of MICO_VER
222if test MICO_VER != 0; then
223AC_DEFINE(MICO_VER)
224AC_SUBST(MICO_VER)
225fi
226#end USE_CORBA test
227fi
228
229dnl Checks for typedefs, structures, and compiler characteristics.
230AC_AIX
231AC_ISC_POSIX
232AC_MINIX
233fp_C_PROTOTYPES
234AC_C_CONST
235AC_TYPE_OFF_T
236AC_TYPE_SIZE_T
237AC_HEADER_TIME
238AC_STRUCT_TM
239
240dnl --- This should be in the stdc checking -----------------
241if test "$ac_cv_prog_cc_stdc" = '-Xc'; then
242dnl The Pyramids running SMP_DC.OSx on MIPS r3000 chips with
243dnl /usr/opt/cc3.11/bin/cc treat -Xc as full ANSI mode - no POSIX or
244dnl XOPEN extensions (like popen).
245dnl Unfortunately -D_{XOPEN,POSIX}_SOURCE can't provide all that mg
246dnl needs. So drop back to -Xa
247AC_TRY_COMPILE(
248[#include <stdio.h>
249], [ FILE *rubbish = popen("yes", "r"); ],,
250[CC="`echo $CC | sed 's/-Xc/-Xa/'`" ac_cv_prog_cc_stdc='-Xa'])
251fi
252dnl ----------------------
253
254
255dnl Checks for libraries.
256dnl check for -lg:
257AC_HAVE_LIBRARY(g)
258dnl check for -lm:
259AC_HAVE_LIBRARY(m)
260dnl check for -lcrypt:
261AC_HAVE_LIBRARY(crypt)
262if test $ENABLE_ACCENTFOLD = 1; then
263AC_HAVE_LIBRARY(iconv)
264fi
265
266dnl Checks for header files.
267AC_HEADER_DIRENT
268AC_HEADER_STDC
269AC_CHECK_HEADERS(fcntl.h limits.h sys/time.h unistd.h crypt.h string.h memory.h sys/procfs.h sys/stat.h)
270AC_EGREP_HEADER(fread, stdio.h, AC_DEFINE(HAVE_FREAD_DECL))
271AC_EGREP_HEADER(fgetc, stdio.h, AC_DEFINE(HAVE_FGETC_DECL))
272AC_EGREP_HEADER(pr_brksize, sys/procfs.h, AC_DEFINE(HAVE_PR_BRKSIZE))
273
274dnl Checks for library functions.
275AC_FUNC_ALLOCA
276AC_PROG_GCC_TRADITIONAL
277AC_TYPE_SIGNAL
278AC_FUNC_VPRINTF
279AC_CHECK_FUNCS(ftime select strftime strtol getrusage times mallinfo setbuffer getpagesize strerror)
280AC_REPLACE_FUNCS(ftruncate strstr strcasecmp)
281
282dnl see if gettext is in libc. (try the textdomain() function).
283AC_CHECK_FUNC(textdomain, AC_DEFINE(ENABLE_NLS ,1) )
284
285# *** Custom checking (based on GNU tar configure.in) ***
286# ---------------------------------------------------------------------------
287AC_MSG_CHECKING(for HP-UX needing gmalloc)
288if test "`(uname -s) 2> /dev/null`" = 'HP-UX'; then
289 AC_MSG_RESULT(yes)
290 AC_LIBOBJ([gmalloc])
291 AC_DEFINE(HAVE_VALLOC)
292else
293 AC_MSG_RESULT(no)
294 AC_CHECK_FUNCS(valloc)
295fi
296
297# we cannot generate static libraries under Darwin
298AC_MSG_CHECKING(for Apple MacOS X/Darwin)
299if test "`(uname -s) 2> /dev/null`" = 'Darwin'; then
300 AC_MSG_RESULT(yes)
301 STATIC=""
302else
303 AC_MSG_RESULT(no)
304 STATIC="-static "
305fi
306AC_SUBST(STATIC)
307
308fp_WITH_DMALLOC
309fp_WITH_REGEX
310
311# ---------------------------------------------------------------------------
312if test "$ac_cv_func_alloca" = 'no'; then
313dnl support functions for alloca.c
314 AC_LIBOBJ([xmalloc])
315 AC_LIBOBJ([error])
316fi
317
318
319# ---------------------------------------------------------------------------
320
321dnl
322dnl Switch into C++
323dnl
324AC_LANG_CPLUSPLUS
325
326dnl
327dnl Now check that Perl is actually around, and can be found
328dnl
329AC_MSG_CHECKING(that Perl 5 is available)
330success="no"
331pl_path="$PATH"
332IFS="${IFS= }"; pl_save_ifs="$IFS"; IFS=":"
333for pl_dir in $pl_path; do
334 test -z "$pl_dir" && pl_dir=.
335 if test -x $pl_dir/perl; then
336 success="yes"
337 break
338 fi
339done
340IFS="$pl_save_ifs"
341
342dnl
343dnl Perl actually can be run; now we see if it is version 5 by
344dnl running a sample script (which returns a "clean" version number
345dnl and then tests the result using expr. If perl errors in some
346dnl way (eg. broken Perl executable, missing script), we set a failure
347dnl value ("0") and then proceed as best we can
348dnl
349if test $success = "yes"; then
350try=`perl configtest.pl` || try="0"
351try=`expr $try \> 5.000`
352if test $try = "1"; then
353AC_MSG_RESULT("yes")
354else
355success="no"
356fi
357fi
358
359if test $success = "no"; then
360AC_MSG_RESULT("no")
361AC_MSG_ERROR("Perl 5 not available - cannot install")
362fi
363
364dnl
365dnl Check if the STL library has any known faults;
366dnl In GCC 2.7.2.x series, some STL library headers are missing
367dnl a file called "new" which is referred to by other headers
368dnl (eg. vector/vector.h); if this applies, then all use of the
369dnl STL will cause a compile fail, so we'd better let the user
370dnl know now, before things really go wrong!
371dnl
372success=no
373AC_MSG_CHECKING("whether STL library has known faults")
374
375dnl - first shot, try simple good old vector on its own
376AC_TRY_COMPILE(
377[#include <vector>
378],
379[],
380success=yes,
381)
382
383dnl - try using the .h equivalent
384if test $success = "no"; then
385AC_TRY_COMPILE(
386[#include <vector.h>
387],
388[],
389success="yes",
390)
391fi
392
393dnl - now try for the objectspace headers
394if test $success = "no"; then
395AC_TRY_COMPILE(
396[#include <ospace\\std\\vector>
397],
398[],
399success="yes",
400)
401fi
402
403if test $success = yes; then
404AC_MSG_RESULT("no")
405else
406AC_MSG_RESULT("yes")
407AC_MSG_ERROR("STL Broken - Obtain newer version of GNU C Compiler")
408fi
409
410gsdlos=`uname | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
411# check for running bash under cygwin
412 if test "`echo $gsdlos | sed 's/cygwin//'`" != "$gsdlos" ;
413 then
414 gsdlos=windows
415 fi
416if test "x$crossOS" != "x" ; then
417 gsdlos=$crossOS
418 gsdlarch=""
419fi
420
421AC_SUBST(gsdlos)
422
423# check for endianness
424AC_C_BIGENDIAN
425# ---------------------------------------------------------------------------
426if test "$ac_cv_func_alloca" = 'no'; then
427dnl support functions for alloca.c
428 AC_LIBOBJ([xmalloc.o])
429 AC_LIBOBJ([error])
430fi
431
432# ---------------------------------------------------------------------------
433
434dnl
435dnl Locate all children of the modules folder
436dnl
437moduleDirs=""
438MODULEDIRS=""
439if test -d modules ; then
440 for x in `find modules -mindepth 1 -maxdepth 2`; do
441 if test -d "$x"; then
442 d="$x/Makefile.in"
443 if test -e "$d"; then
444 dnl echo $d
445 moduleDirs="$moduleDirs $x/Makefile"
446 MODULEDIRS="$MODULEDIRS $x"
447 fi
448 fi
449 done
450 echo "Making $moduleDirs in modules directory"
451 AC_SUBST(MODULEDIRS)
452fi
453
454
455# ---------------------------------------------------------------------------
456AC_CONFIG_SUBDIRS(packages)
457
458# the list of folders in the src folder
459srclist="src/hashfile/Makefile \
460 src/phind/generate/Makefile \
461 src/java/org/nzdl/gsdl/Makefile"
462
463AC_OUTPUT(packages/Makefile Makefile $srclist $moduleDirs)
464
465
Note: See TracBrowser for help on using the repository browser.