]> code.citadel.org Git - citadel.git/blob - citadel/configure.ac
configure.ac: add support for position-independent executables. can be disabled
[citadel.git] / citadel / configure.ac
1 dnl Process this file with autoconf to produce a configure script.
2 dnl $Id$
3 AC_PREREQ(2.52)
4 AC_INIT([Citadel/UX], [6.02], [http://uncensored.citadel.org/])
5 AC_REVISION([$Revision$])
6 AC_CONFIG_SRCDIR([citserver.c])
7 AC_PREFIX_DEFAULT(/usr/local/citadel)
8 if test "$prefix" = NONE; then
9         AC_DEFINE_UNQUOTED(BBSDIR, "$ac_default_prefix")
10 else
11         AC_DEFINE_UNQUOTED(BBSDIR, "$prefix")
12 fi
13
14 AC_ARG_ENABLE(autologin, [  --disable-autologin     disable autologin (default is enabled if possible)])
15 AC_ARG_ENABLE(chkpwd, [  --disable-chkpwd        don't build 'chkpwd'])
16
17 AC_ARG_ENABLE(threaded-client, [  --disable-threaded-client
18                           disable multithreaded client])
19
20 AC_ARG_ENABLE(pie, [  --disable-pie           don't build position-independent executables])
21
22 AC_ARG_WITH(pam, [  --with-pam              use PAM if present (see PAM.txt before you try this)])
23 AC_ARG_WITH(kthread, [  --with-kthread          use kernel threads (on FreeBSD) (not recommended yet)])
24 AC_ARG_WITH(db, [  --with-db@<:@=DIR@:>@         use Sleepycat DB 3.x @<:@DIR=/usr/local/BerkeleyDB.3.@<:@123@:>@@:>@])
25 AC_ARG_WITH(ssl,
26         [  --with-ssl=PATH     Specify path to OpenSSL installation ],
27         [
28                 if test "x$withval" != "xno" ; then
29                         tryssldir=$withval
30                 fi
31         ]
32 )
33 AC_ARG_WITH(ncurses, [  --without-ncurses       don't use ncurses])
34
35 AC_ARG_WITH(with_zlib, [  --with-zlib             use zlib compression if present])
36 AC_ARG_WITH(with_libical, [  --with-libical          use libical calendaring library])
37 AC_ARG_WITH(with_newt, [  --with-newt          use newt window library])
38
39 if test "x$with_db" != xno -a "x$with_db" != xyes -a "$with_db"; then
40         db_dir="$with_db"
41         with_db=yes
42 else
43         test -f /usr/local/lib/libdb.a -o -f /usr/local/lib/libdb.so \
44           -o -f /usr/local/lib/libdb4.a -o -f /usr/local/lib/libdb4.so \
45           && db_dir=/usr/local
46
47         test -d /usr/local/BerkeleyDB.4.1 && db_dir=/usr/local/BerkeleyDB.4.1
48 fi
49
50 dnl By default, we only build the client (citadel and whobbs) unless we can
51 dnl figure out how to build with POSIX threads.
52 TARGETS=client
53
54 AC_CANONICAL_HOST
55 PTHREAD_DEFS=-D_REENTRANT
56 case "$host" in
57         dnl BSDI 3.0 wants relocatable object modules instead of shared libs
58         dnl for dlopen(), and has a wrapper script to link with shared libs.
59         dnl Also has stupid non-reentrant gethostbyaddr() and friends.
60         *-*-bsdi[123]*)
61                 test -z "$CC" -a -x /usr/bin/shlicc2 && CC=shlicc2
62                 AC_DEFINE(HAVE_NONREENTRANT_NETDB)
63         ;;
64         *-*-bsdi*)
65                 AC_DEFINE(HAVE_NONREENTRANT_NETDB)
66         ;;
67         dnl Curses support on Mac OS X is kind of screwed at the moment.
68         *-*-darwin*)
69                 AC_DEFINE(DISABLE_CURSES)
70         ;;
71         dnl Digital Unix has an odd way to build for pthreads, and we can't
72         dnl build pthreads programs with gcc due to header problems.
73         alpha*-dec-osf*)
74                 test -z "$CC" && CC=cc
75                 LIBS="-lpthread -lexc $LIBS"
76                 check_pthread=no
77         ;;
78         dnl FreeBSD is similar to Digital UNIX with DEC C, which has a -pthread flag:
79         *-*-freebsd*)
80                 if test "$with_kthread" = yes; then
81                         LIBS="-kthread $LIBS"
82                 else
83                         LIBS="-pthread $LIBS"
84                 fi
85                 check_pthread=no
86                 PTHREAD_DEFS=-D_THREAD_SAFE
87         ;;
88         *-*-openbsd*)
89                 LIBS="-pthread $LIBS"
90                 check_pthread=no
91                 PTHREAD_DEFS=-pthread
92         ;;
93         *-*-solaris*)
94                 PTHREAD_DEFS="-D_REENTRANT -D_PTHREADS"
95         ;;
96         *-*-cygwin*)
97                 SERVER_LDFLAGS="-Wl,-subsystem,windows"
98         ;;
99 esac
100 DEFS="$DEFS $PTHREAD_DEFS"
101
102 dnl Checks for programs.
103 AC_PROG_CC
104
105 dnl Set up system-dependent compiler flags.
106 if test "$GCC" = yes; then
107         case "$host" in
108                 *-*-solaris*|alpha*-dec-osf*)
109                         CFLAGS="$CFLAGS -Wall -Wcast-qual -Wcast-align -Wno-char-subscripts"
110                 ;;
111                 *)
112                         CFLAGS="$CFLAGS -Wall -Wcast-qual -Wcast-align -Wstrict-prototypes"
113                 ;;
114         esac
115 fi
116
117 if test "x$enable_pie" != xno; then
118         save_CFLAGS="$CFLAGS"
119         save_LDFLAGS="$LDFLAGS"
120         CFLAGS="$CFLAGS -fpie"
121         LDFLAGS="$LDFLAGS -pie -fpie"
122         AC_CACHE_CHECK([whether compiler accepts -pie -fpie], ac_cv_pie_fpie,
123         [AC_TRY_LINK([], [],
124         ac_cv_pie_fpie=yes, ac_cv_pie_fpie=no)])
125         if test $ac_cv_pie_fpie = no; then
126                 CFLAGS="$save_CFLAGS"
127                 LDFLAGS="$save_LDFLAGS"
128         fi
129 fi
130
131 AC_PROG_INSTALL
132 AC_PROG_YACC
133 missing_dir=`cd $ac_aux_dir && pwd`
134 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
135 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
136
137 dnl Checks for system services.
138
139 dnl Check the size of various builtin types; see typesize.h (error)
140 AC_CHECK_SIZEOF(char, 0)
141 AC_CHECK_SIZEOF(short, 0)
142 AC_CHECK_SIZEOF(int, 0)
143 AC_CHECK_SIZEOF(long, 0)
144 dnl AC_CHECK_SIZEOF(long long, 0)
145
146 dnl Checks for libraries.
147
148 dnl We want to test for the following in libc before checking for their
149 dnl respective libraries, because some systems (like Irix) have both, and the
150 dnl non-libc versions may be broken.
151 AC_CHECK_FUNCS(crypt gethostbyname connect)
152
153 if test "$ac_cv_func_gethostbyname" = no; then
154         AC_CHECK_LIB(nsl, gethostbyname)
155 fi
156
157 if test "$ac_cv_func_connect" = no; then
158         AC_CHECK_LIB(socket, connect)
159 fi
160
161 dnl Check for Solaris realtime support
162 AC_CHECK_LIB(rt, sched_yield)
163
164 dnl Determine the system's authentication capabilities, if autologin is
165 dnl requested. We currently support PAM, standard getpwnam(), and getspnam()
166 dnl (Linux shadow passwords)
167 if test "$enable_autologin" != no; then
168         if test "$with_pam" = yes; then
169                 save_LIBS=$LIBS
170                 AC_CHECK_LIB(pam, pam_start, [chkpwd_LIBS="-lpam $chkpwd_LIBS"
171                         LIBS="-lpam $LIBS"])
172                 AC_CHECK_FUNCS(pam_start)
173                 test "$enable_chkpwd" != no && LIBS=$save_LIBS
174         fi
175         if test "$ac_cv_func_pam_start" = no -o "$with_pam" != yes; then
176                 save_LIBS=$LIBS
177                 AC_SEARCH_LIBS(getspnam, shadow, [
178                         if test "$ac_cv_search_getspnam" = -lshadow; then
179                                 chkpwd_LIBS="-lshadow $chkpwd_LIBS"
180                         fi])
181                 test "$enable_chkpwd" != no && LIBS=$save_LIBS
182                 if test "$ac_cv_func_crypt" = no; then
183                         AC_CHECK_LIB(crypt, crypt, [
184                                 chkpwd_LIBS="-lcrypt $chkpwd_LIBS"
185                                 test "$enable_chkpwd" = no && \
186                                         LIBS="-lcrypt $LIBS"])
187                 fi
188         fi
189         if test "$ac_cv_func_crypt" = yes -o "$ac_cv_lib_crypt_crypt" = yes -o "$ac_cv_func_pam_start" = yes; then
190                 AC_DEFINE(ENABLE_AUTOLOGIN)
191                 if test "$enable_chkpwd" != no; then
192                         AC_DEFINE(ENABLE_CHKPWD)
193                         CHKPWD=chkpwd
194                 else
195                         AUTH=auth.lo
196                 fi
197         fi
198 fi
199
200 test -f /usr/local/lib/libresolv.a && LDFLAGS="$LDFLAGS -L/usr/local/lib"
201 AC_CHECK_LIB(resolv, res_query, RESOLV="$RESOLV -lresolv")
202
203 if test "x$with_ncurses" != "xno"; then
204         AC_SEARCH_LIBS(tgetent, [ncurses curses termcap])
205         AC_SEARCH_LIBS(scrollok, [ncurses curses])
206         AC_SEARCH_LIBS(initscr, [ncurses curses])
207 else
208         AC_SEARCH_LIBS(tgetent, [curses termcap])
209         AC_SEARCH_LIBS(initscr, [curses])
210 fi
211 AC_CHECK_FUNCS(vw_printw wcolor_set resizeterm wresize)
212
213 dnl Check for libpthread(s) if we're not using Digital UNIX or FreeBSD. (On
214 dnl which the -pthread flag takes care of this.)
215 if test "$check_pthread" != no; then
216         AC_CHECK_LIB(pthread, pthread_create)
217         AC_CHECK_LIB(pthreads, pthread_create)
218 fi
219
220 test -d /usr/kerberos/include && CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
221
222 # The big search for OpenSSL
223 if test "$with_ssl" != "no"; then
224         saved_LIBS="$LIBS"
225         saved_LDFLAGS="$LDFLAGS"
226         saved_CFLAGS="$CFLAGS"
227         if test "x$prefix" != "xNONE"; then
228                 tryssldir="$tryssldir $prefix"
229         fi
230         AC_CACHE_CHECK([for OpenSSL], ac_cv_openssldir, [
231                 for ssldir in $tryssldir "" /usr /usr/local/openssl /usr/lib/openssl /usr/local/ssl /usr/lib/ssl /usr/local /usr/pkg /opt /opt/openssl ; do
232                         CFLAGS="$saved_CFLAGS"
233                         LDFLAGS="$saved_LDFLAGS"
234                         LIBS="$saved_LIBS -lssl -lcrypto"
235         
236                         # Skip directories if they don't exist
237                         if test ! -z "$ssldir" -a ! -d "$ssldir" ; then
238                                 continue;
239                         fi
240                         if test ! -z "$ssldir" -a "x$ssldir" != "x/usr"; then
241                                 # Try to use $ssldir/lib if it exists, otherwise
242                                 # $ssldir
243                                 if test -d "$ssldir/lib" ; then
244                                         LDFLAGS="-L$ssldir/lib $saved_LDFLAGS"
245                                         if test ! -z "$need_dash_r" ; then
246                                                 LDFLAGS="-R$ssldir/lib $LDFLAGS"
247                                         fi
248                                 else
249                                         LDFLAGS="-L$ssldir $saved_LDFLAGS"
250                                         if test ! -z "$need_dash_r" ; then
251                                                 LDFLAGS="-R$ssldir $LDFLAGS"
252                                         fi
253                                 fi
254                                 # Try to use $ssldir/include if it exists, otherwise
255                                 # $ssldir
256                                 if test -d "$ssldir/include" ; then
257                                         CFLAGS="-I$ssldir/include $saved_CFLAGS"
258                                 else
259                                         CFLAGS="-I$ssldir $saved_CFLAGS"
260                                 fi
261                         fi
262         
263                         # Basic test to check for compatible version and correct linking
264                         # *does not* test for RSA - that comes later.
265                         AC_TRY_RUN(
266                                 [
267         #include <string.h>
268         #include <openssl/rand.h>
269         int main(void)
270         {
271                 char a[2048];
272                 memset(a, 0, sizeof(a));
273                 RAND_add(a, sizeof(a), sizeof(a));
274                 return(RAND_status() <= 0);
275         }
276                                 ],
277                                 [
278                                         found_crypto=1
279                                         break;
280                                 ], []
281                         )
282         
283                         if test ! -z "$found_crypto" ; then
284                                 break;
285                         fi
286                 done
287         
288                 if test -z "$ssldir" ; then
289                         ssldir="(system)"
290                 fi
291         
292                 if test ! -z "$found_crypto" ; then
293                         ac_cv_openssldir=$ssldir
294                 else
295                         ac_cv_openssldir="no"
296                 fi
297         ])
298         LIBS="$saved_LIBS"
299         LDFLAGS="$saved_LDFLAGS"
300         CFLAGS="$saved_CFLAGS"
301         
302         if test "x$ac_cv_openssldir" != "xno" ; then
303                 AC_DEFINE(HAVE_OPENSSL)
304                 LIBS="-lssl -lcrypto $LIBS"
305                 dnl Need to recover ssldir - test above runs in subshell
306                 ssldir=$ac_cv_openssldir
307                 if test ! -z "$ssldir" -a "x$ssldir" != "x/usr" -a "x$ssldir" != "x(system)"; then
308                         # Try to use $ssldir/lib if it exists, otherwise
309                         # $ssldir
310                         if test -d "$ssldir/lib" ; then
311                                 LDFLAGS="-L$ssldir/lib $saved_LDFLAGS"
312                                 if test ! -z "$need_dash_r" ; then
313                                         LDFLAGS="-R$ssldir/lib $LDFLAGS"
314                                 fi
315                         else
316                                 LDFLAGS="-L$ssldir $saved_LDFLAGS"
317                                 if test ! -z "$need_dash_r" ; then
318                                         LDFLAGS="-R$ssldir $LDFLAGS"
319                                 fi
320                         fi
321                         # Try to use $ssldir/include if it exists, otherwise
322                         # $ssldir
323                         if test -d "$ssldir/include" ; then
324                                 CFLAGS="-I$ssldir/include $saved_CFLAGS"
325                         else
326                                 CFLAGS="-I$ssldir $saved_CFLAGS"
327                         fi
328                 fi
329         fi
330 fi
331
332 if test "x$with_db" != xno; then
333         test "$db_dir" && LDFLAGS="$LDFLAGS -L$db_dir/lib"
334
335         dblib=""
336
337         if test -d "$db_dir/include/db4"; then
338                 CPPFLAGS="$CPPFLAGS -I$db_dir/include/db4"
339                 dblib="db4"
340         elif test "$db_dir"; then
341                 CPPFLAGS="$CPPFLAGS -I$db_dir/include"
342         elif test -d /usr/include/db4; then
343                 CPPFLAGS="$CPPFLAGS -I/usr/include/db4"
344                 dblib="db4"
345         fi
346
347
348         AC_CHECK_DB([db db-4.1 db-4 db4],
349                     [
350                      DATABASE=database_sleepycat.c
351                     ],
352                     AC_MSG_ERROR([[Can not locate a suitable Berkeley DB
353                                   library.  Use --with-db=PATH to specify
354                                   the path]]))
355
356 fi
357
358
359 dnl Checks for the zlib compression library.
360 if test "x$with_zlib" != xno ; then
361         AC_CHECK_HEADERS(zlib.h,
362                 [AC_CHECK_LIB(z, zlibVersion,
363                         [ok_zlib=yes],,
364         )])
365 fi
366
367 if test "x$ok_zlib" = xyes ; then
368         SERVER_LIBS="-lz $SERVER_LIBS"
369         AC_DEFINE(HAVE_ZLIB)
370 fi
371
372
373
374
375 dnl Checks for the newt window library.
376 if test "x$with_newt" != xno ; then
377         AC_CHECK_HEADERS(newt.h,
378                 [AC_CHECK_LIB(newt, newtInit,
379                         [ok_newt=yes],,
380         )])
381 fi
382
383 if test "x$ok_newt" = xyes ; then
384         SETUP_LIBS="-lnewt $SETUP_LIBS"
385         AC_DEFINE(HAVE_NEWT)
386 fi
387
388
389
390
391
392
393 dnl Checks for the libical calendaring library.
394 if test "x$with_libical" != xno ; then
395         AC_CHECK_HEADERS(ical.h,
396                 [AC_CHECK_LIB(ical, icalcomponent_new,
397                         [ok_libical=yes],,
398         )])
399 fi
400
401 if test "x$ok_libical" = xyes ; then
402
403         AC_TRY_RUN(
404                 [
405 #include <ical.h>
406 main() {
407         float v;
408         int i;
409         sscanf(ICAL_VERSION, "%f", &v);
410         printf("libical version: %0.2f\n", v);
411         v = v * 100.0;
412         i = (int) v;
413         if (i >= 24) {
414                 printf("This version is ok.\n");
415                 return(0);
416         }
417         printf("libical 0.24 or newer required.\n");
418         printf("Citadel will be built without calendar support.\n");
419         return(1);
420 }
421                 ], 
422                 [
423                         SERVER_LIBS="-lical $SERVER_LIBS"
424                         AC_DEFINE(HAVE_LIBICAL)
425                 ]
426         )
427 fi
428
429
430
431
432 dnl Checks for header files.
433 AC_HEADER_DIRENT
434 AC_HEADER_STDC
435 AC_HEADER_SYS_WAIT
436
437 dnl
438 dnl TODO: for the DB header checks, we should check whether the headers
439 dnl define db_env_create, somehow
440 dnl
441 AC_CHECK_HEADERS(curses.h dl.h fcntl.h limits.h malloc.h termios.h sys/ioctl.h sys/select.h sys/time.h syslog.h unistd.h utmp.h utmpx.h paths.h db.h db4/db.h pthread.h netinet/in.h arpa/nameser.h arpa/nameser_compat.h)
442
443 dnl
444 dnl need to check if this is actually compilable, sometimes there are
445 dnl conflicts with the system's headers (eg solaris xpg4 style headers)
446 dnl
447 if test "x$with_ncurses" != xno; then
448         AC_CHECK_HEADERS(ncurses.h,,,[ ])
449 fi
450
451 AC_CHECK_HEADER(resolv.h,AC_DEFINE(HAVE_RESOLV_H),,
452 [#ifdef HAVE_SYS_TYPES_H
453 #include <sys/types.h>
454 #endif
455 #ifdef HAVE_NETINET_IN_H
456 #include <netinet/in.h>
457 #endif
458 #ifdef HAVE_ARPA_NAMESER_H
459 #include <arpa/nameser.h>
460 #endif])
461
462
463 dnl Checks for typedefs, structures, and compiler characteristics.
464 AC_C_CONST
465 AC_TYPE_PID_T
466 AC_TYPE_SIZE_T
467 AC_HEADER_TIME
468
469 dnl defined in acinclude.m4:
470 CIT_STRUCT_TM
471
472 AC_CACHE_CHECK([for ut_type in struct utmp], ac_cv_struct_ut_type,
473 [AC_TRY_COMPILE([#include <sys/types.h>
474 #include <utmp.h>], [struct utmp ut; ut.ut_type;],
475 ac_cv_struct_ut_type=yes, ac_cv_struct_ut_type=no)])
476 if test $ac_cv_struct_ut_type = yes; then
477         AC_DEFINE(HAVE_UT_TYPE)
478 fi
479
480 AC_CACHE_CHECK([for ut_host in struct utmp], ac_cv_struct_ut_host,
481 [AC_TRY_COMPILE([#include <sys/types.h>
482 #include <utmp.h>], [struct utmp ut; ut.ut_host;],
483 ac_cv_struct_ut_host=yes, ac_cv_struct_ut_host=no)])
484 if test $ac_cv_struct_ut_host = yes; then
485         AC_DEFINE(HAVE_UT_HOST)
486 fi
487
488 dnl Checks for library functions.
489 AC_FUNC_GETPGRP
490 AC_PROG_GCC_TRADITIONAL
491 AC_TYPE_SIGNAL
492 AC_FUNC_VPRINTF
493 AC_CHECK_FUNCS(getspnam getutxline mkdir mkfifo mktime rmdir select socket strerror strcasecmp strncasecmp)
494
495 dnl Now check for pthreads
496
497 dnl On some platforms, AC_CHECK_FUNC[S] doesn't work for pthreads programs;
498 dnl we need to include pthread.h
499
500 AC_CACHE_CHECK([for pthread_cancel], ac_cv_func_pthread_cancel,
501 [AC_TRY_LINK([#include <pthread.h>],
502 [       pthread_t thread;
503
504         /* The GNU C library defines this for functions which it implements
505            to always fail with ENOSYS.  Some functions are actually named
506            something starting with __ and the normal name is an alias.  */
507 #if defined (__stub_pthread_cancel) || defined (__stub___pthread_cancel)
508         choke me
509 #else
510         pthread_cancel(thread);
511 #endif],
512 ac_cv_func_pthread_cancel=yes, ac_cv_func_pthread_cancel=no)])
513 if test "$ac_cv_func_pthread_cancel" = yes; then
514         AC_DEFINE(HAVE_PTHREAD_CANCEL)
515 fi
516
517 AC_CACHE_CHECK([for pthread_create], ac_cv_func_pthread_create,
518 [AC_TRY_LINK([#include <pthread.h>],
519 [       /* The GNU C library defines this for functions which it implements
520            to always fail with ENOSYS.  Some functions are actually named
521            something starting with __ and the normal name is an alias.  */
522 #if defined (__stub_pthread_cancel) || defined (__stub___pthread_cancel)
523         choke me
524 #else
525         pthread_create(NULL, NULL, NULL, NULL);
526 #endif],
527 ac_cv_func_pthread_create=yes, ac_cv_func_pthread_create=no)])
528 if test "$ac_cv_func_pthread_create" = yes; then
529         test "$DATABASE" && TARGETS="client server utils"
530         if test "x$enable_threaded_client" != xno; then
531                 AC_DEFINE(THREADED_CLIENT)
532         fi
533 fi
534
535 AC_REPLACE_FUNCS(snprintf getutline)
536
537 # AC_CACHE_CHECK([the weather], ac_cv_weather, [
538 #       sleep 1
539 #       echo $ECHO_N "opening your window... $ECHO_C" >&6
540 #       sleep 2
541 #       month=`date | cut -f 2 -d ' '`
542 #       case $month in
543 #       Dec | Jan | Feb)
544 #               ac_cv_weather="it's cold!"
545 #               ;;
546 #       Mar | Apr)
547 #               ac_cv_weather="it's wet!"
548 #               ;;
549 #       Jul | Aug)
550 #               ac_cv_weather="it's hot!"
551 #               ;;
552 #       Oct | Nov)
553 #               ac_cv_weather="it's cool"
554 #               ;;
555 #       May | Jun | Sep | *)
556 #               ac_cv_weather="it's fine"
557 #               ;;
558 #       esac
559 #       ])
560
561 AC_CACHE_CHECK([under the bed], ac_cv_under_the_bed, [
562         number=`date | cut -c 19`
563         case $number in
564         7)
565                 ac_cv_under_the_bed="lunatics and monsters found"
566                 ;;
567         *)
568                 ac_cv_under_the_bed="dust bunnies found"
569                 ;;
570         esac
571         ])
572
573 dnl Done! Now write the Makefile and sysdep.h
574 AC_SUBST(AUTH)
575 AC_SUBST(CHKPWD)
576 AC_SUBST(RESOLV)
577 AC_SUBST(chkpwd_LIBS)
578 AC_SUBST(TARGETS)
579 AC_SUBST(DATABASE)
580 AC_SUBST(SERVER_LDFLAGS)
581 AC_SUBST(SERVER_LIBS)
582 AC_SUBST(SETUP_LIBS)
583 AC_CONFIG_HEADER(sysdep.h)
584 AC_CONFIG_FILES([Makefile])
585 AC_OUTPUT
586
587 if test -z "$DATABASE"; then
588         AC_MSG_WARN([No database driver was found. Please install Berkeley DB.])
589 fi
590
591 echo ...
592 echo ...
593 echo "... On many operating systems, you must use GNU make (gmake) to compile"
594 echo ... Citadel.
595 echo ...
596 echo ...