root/gsdl/trunk/configure.in @ 20853

Revision 20853, 9.7 KB (checked in by ak19, 10 years ago)

Katherine has made changes to the toplevel configure.in and runtime-src configure.in (and their configure) files to fix the recent problem of Oran and Dr Bainbridge's code changes not working together: Oran's code successfully got the libexpat and libiconv libraries statically linked into library.cgi while Dr Bainbridge got the apache web server code to statically link successfully against the libiconv library in common-src. However, Oran's changes when included would cause compilation to fail to generate the apache-httpd output folder (it wasn't being compiled up in fact). Katherine's changes now allow it all to work together.

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