1 dnl Process this file with autoconf to produce a configure script.
4 AC_INIT([Citadel], [7.33], [http://www.citadel.org/])
5 AC_REVISION([$Revision: 5108 $])
6 AC_CONFIG_SRCDIR([citserver.c])
7 AC_PREFIX_DEFAULT(/usr/local/citadel)
8 if test "$prefix" = NONE; then
9 AC_DEFINE_UNQUOTED(CTDLDIR, "$ac_default_prefix", [define this to the Citadel home directory])
10 ssl_dir="$ac_default_prefix/keys"
12 AC_DEFINE_UNQUOTED(CTDLDIR, "$prefix", [define this to the Citadel home directory])
13 ssl_dir="$prefix/keys"
17 dnl Make sure we see all GNU and Solaris extensions.
21 dnl Checks for the Datadir
23 [ --with-datadir directory to store the databases under],
24 [ if test "x$withval" != "xno" ; then
25 AC_DEFINE(HAVE_DATA_DIR,[],[use alternate database location?])
26 AC_DEFINE_UNQUOTED(DATA_DIR, "$withval",[define, if the user suplied a data-directory to use.])
27 MAKE_DATA_DIR=$withval
28 AC_SUBST(MAKE_DATA_DIR)
33 dnl Checks for the Datadir
34 AC_ARG_WITH(staticdatadir,
35 [ --with-staticdatadir directory to store citadels system messages under],
36 [ if test "x$withval" != "xno" ; then
37 AC_DEFINE(HAVE_STATICDATA_DIR, [], [should we activate an alternate static text location?])
38 AC_DEFINE_UNQUOTED(STATICDATA_DIR, "$withval", [where do we put our static text data?])
39 MAKE_STATICDATA_DIR=$withval
40 AC_SUBST(MAKE_STATICDATA_DIR)
46 dnl Checks for the SSLdir
47 dnl this is a bit different than the rest,
48 dnl because of the citadel used to have a keys/ subdir.
50 [ --with-ssldir directory to store the ssl certificates under],
51 [ if test "x$withval" != "xno" ; then
55 AC_SUBST(MAKE_SSL_DIR)
58 AC_DEFINE_UNQUOTED(SSL_DIR, "$ssl_dir", [were should we put our keys?])
61 dnl Checks for the spooldir
63 [ --with-spooldir directory to keep queues under],
64 [ if test "x$withval" != "xno" ; then
65 AC_DEFINE(HAVE_SPOOL_DIR, [], [enable alternate spool dir?])
66 AC_DEFINE_UNQUOTED(SPOOL_DIR,"$withval", [where do we place our spool dirs?])
67 MAKE_SPOOL_DIR=$withval
68 AC_SUBST(MAKE_SPOOL_DIR)
74 dnl Checks for the Configdir
75 AC_ARG_WITH(sysconfdir,
76 [ --with-sysconfdir directory to store the configs under],
77 [ if test "x$withval" != "xno" ; then
78 AC_DEFINE(HAVE_ETC_DIR, [], [should we search our system config in an alternate place?])
79 AC_DEFINE_UNQUOTED(ETC_DIR, "$withval", [where to search our config files])
81 AC_SUBST(MAKE_ETC_DIR)
86 dnl Checks for where to put our utilities
87 AC_ARG_WITH(utility-bindir,
88 [ --with-utility-bindir directory where to find helper binaries],
89 [ if test "x$withval" != "xno" ; then
90 AC_DEFINE(HAVE_UTILBIN_DIR,[],[should we put our helper binaries to another location?])
91 AC_DEFINE_UNQUOTED(UTILBIN_DIR, "$withval", [were to put our helper programs])
92 MAKE_UTILBIN_DIR=$withval
93 AC_SUBST(MAKE_UTILBIN_DIR)
99 dnl Checks for the run-dir for the sockets
101 [ --with-rundir directory to place runtime files (UDS) to?],
102 [ if test "x$withval" != "xno" ; then
103 AC_DEFINE(HAVE_RUN_DIR, [], [should we put our non volatile files elsewhere?])
104 AC_DEFINE_UNQUOTED(RUN_DIR, "$withval", [define, where the config should go in unix style])
105 MAKE_RUN_DIR=$withval
106 AC_SUBST(MAKE_RUN_DIR)
112 dnl Checks for the Pseudo Random Generator sockets TODO: this keeps being default.
113 AC_DEFINE_UNQUOTED(EGD_POOL, "/var/run/egd-pool", [place to keep our pseudo random generator file])
115 [ --with-egdpool the socket from Pseudo Random Generator, defaults to /var/run/egd-pool],
116 [ if test "x$withval" != "xno" ; then
117 AC_DEFINE_UNQUOTED(EGD_POOL, "$withval", [the socket from Pseudo Random Generator])
124 [ --with-docdir where to install the documentation. default: /usr/local/citadel/],
125 [ if test "x$withval" != "xno" ; then
126 MAKE_DOC_DIR=$withval
127 AC_SUBST(MAKE_DOC_DIR)
134 AC_ARG_ENABLE(threaded-client, [ --disable-threaded-client
135 disable multithreaded client])
137 AC_ARG_ENABLE(pie, [ --enable-pie build position-independent executables])
139 AC_ARG_WITH(pam, [ --with-pam use PAM if present (see PAM.txt before you try this)])
140 AC_ARG_WITH(kthread, [ --with-kthread use kernel threads (on FreeBSD) (not recommended yet)])
141 AC_ARG_WITH(db, [ --with-db@<:@=DIR@:>@ use Sleepycat DB 3.x @<:@DIR=/usr/local/BerkeleyDB.3.@<:@123@:>@@:>@])
143 [ --with-ssl=PATH Specify path to OpenSSL installation ],
145 if test "x$withval" != "xno" ; then
150 AC_ARG_WITH(ncurses, [ --without-ncurses don't use ncurses])
152 AC_ARG_WITH(with_zlib, [ --with-zlib use zlib compression if present])
153 AC_ARG_WITH(with_ldap, [ --with-ldap use OpenLDAP client library])
154 AC_ARG_WITH(with_libdspam, [ --with-libdspam use libdspam mail spam scanning library])
156 if test "x$with_db" != xno -a "x$with_db" != xyes -a "$with_db"; then
160 test -f /usr/local/lib/libdb.a -o -f /usr/local/lib/libdb.so \
161 -o -f /usr/local/lib/libdb4.a -o -f /usr/local/lib/libdb4.so \
164 test -d /usr/local/BerkeleyDB.4.1 && db_dir=/usr/local/BerkeleyDB.4.1
165 test -d /usr/local/BerkeleyDB.4.2 && db_dir=/usr/local/BerkeleyDB.4.2
166 test -d /usr/local/BerkeleyDB.4.3 && db_dir=/usr/local/BerkeleyDB.4.3
167 test -d /usr/local/BerkeleyDB.4.4 && db_dir=/usr/local/BerkeleyDB.4.4
168 test -d /usr/local/BerkeleyDB.4.5 && db_dir=/usr/local/BerkeleyDB.4.5
171 dnl By default, we only build the client (citadel and whobbs) unless we can
172 dnl figure out how to build with POSIX threads.
176 PTHREAD_DEFS=-D_REENTRANT
177 AC_MSG_CHECKING([how to compile with POSIX threads])
179 dnl BSDI 3.0 wants relocatable object modules instead of shared libs
180 dnl for dlopen(), and has a wrapper script to link with shared libs.
181 dnl Also has stupid non-reentrant gethostbyaddr() and friends.
183 test -z "$CC" -a -x /usr/bin/shlicc2 && CC=shlicc2
184 AC_DEFINE(HAVE_NONREENTRANT_NETDB,[], [define this if the OS has broken non-reentrant gethostby{name,addr}() ])
185 AC_MSG_RESULT([Old BSDI])
188 AC_DEFINE(HAVE_NONREENTRANT_NETDB, [], [define this if the OS has broken non-reentrant gethostby{name,addr}() ])
189 AC_MSG_RESULT([BSD/OS])
191 dnl Curses support on Mac OS X is kind of screwed at the moment.
192 dnl TCP buffering isn't ideal under OS X. This define should also be
193 dnl checked in other cases of OS X-Linux differences.
195 AC_DEFINE(DISABLE_CURSES,[],[define this to disable use of curses])
196 AC_DEFINE(HAVE_DARWIN, [], [define if using OS X/Darwin])
197 AC_MSG_RESULT([Mac OS X])
199 dnl Digital Unix has an odd way to build for pthreads, and we can't
200 dnl build pthreads programs with gcc due to header problems.
202 test -z "$CC" && CC=cc
203 LIBS="-lpthread -lexc $LIBS"
205 AC_MSG_RESULT([Tru64 or Digital UNIX])
207 dnl FreeBSD is similar to Digital UNIX with DEC C, which has a -pthread flag:
209 if test "$with_kthread" = yes; then
210 LIBS="-kthread $LIBS"
212 LIBS="-pthread $LIBS"
215 PTHREAD_DEFS=-D_THREAD_SAFE
216 AC_MSG_RESULT([FreeBSD])
219 LIBS="-pthread $LIBS"
221 PTHREAD_DEFS=-pthread
222 AC_MSG_RESULT([OpenBSD])
225 PTHREAD_DEFS="-D_REENTRANT -pthread"
226 AC_MSG_RESULT([Linux])
229 PTHREAD_DEFS="-D_REENTRANT -D_PTHREADS"
230 AC_MSG_RESULT([Solaris])
233 SERVER_LDFLAGS="-Wl,-subsystem,windows"
234 AC_MSG_RESULT([Cygwin])
237 AC_MSG_RESULT([default])
240 dnl DEFS="$DEFS $PTHREAD_DEFS"
243 dnl Checks for programs.
248 dnl Set up system-dependent compiler flags.
249 if test "$GCC" = yes; then
250 if test "$CC" = icc; then
254 *-*-solaris*|alpha*-dec-osf*)
255 CFLAGS="$CFLAGS -Wall -Wcast-qual -Wcast-align -Wno-char-subscripts $PTHREAD_DEFS"
258 CFLAGS="$CFLAGS -Wall -Wcast-qual -Wcast-align -Wstrict-prototypes $PTHREAD_DEFS"
264 if test "x$enable_pie" = xyes; then
265 save_CFLAGS="$CFLAGS"
266 save_LDFLAGS="$LDFLAGS"
267 CFLAGS="$CFLAGS -fpie"
268 LDFLAGS="$LDFLAGS -pie -fpie"
269 AC_CACHE_CHECK([whether compiler accepts -pie -fpie], ac_cv_pie_fpie,
271 ac_cv_pie_fpie=yes, ac_cv_pie_fpie=no)])
272 if test $ac_cv_pie_fpie = no; then
273 CFLAGS="$save_CFLAGS"
274 LDFLAGS="$save_LDFLAGS"
278 AC_MSG_CHECKING([how to create dependancy checks])
279 if test -n "`$CC -V 2>&1 |grep Sun`"; then
284 AC_SUBST(DEPEND_FLAG)
289 dnl missing_dir=`cd $ac_aux_dir && pwd`
290 dnl AC_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
291 dnl AC_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
293 dnl Checks for system services.
295 dnl Check the size of various builtin types; see typesize.h (error)
296 AC_CHECK_SIZEOF(char, 0)
297 AC_CHECK_SIZEOF(short, 0)
298 AC_CHECK_SIZEOF(int, 0)
299 AC_CHECK_SIZEOF(long, 0)
300 AC_CHECK_SIZEOF(size_t, 0)
301 dnl AC_CHECK_SIZEOF(long long, 0)
303 dnl Checks for libraries.
305 dnl We want to test for the following in libc before checking for their
306 dnl respective libraries, because some systems (like Irix) have both, and the
307 dnl non-libc versions may be broken.
308 AC_CHECK_FUNCS(crypt gethostbyname connect flock getpwnam_r getpwuid_r)
311 dnl disable backtrace if we don't want it.
312 AC_ARG_WITH(backtrace,
313 [ --with-backtrace enable backtrace dumps in the syslog],
314 [ if test "x$withval" != "xno" ; then
315 CFLAGS="$CFLAGS -rdynamic "
316 LDFLAGS="$LDFLAGS -rdynamic "
317 SERVER_LDFLAGS="$SERVER_LDFLAGS -rdynamic "
318 AC_CHECK_FUNCS(backtrace)
323 dnl disable backtrace if we don't want it.
325 [ --with-gprof enable profiling],
326 [ if test "x$withval" != "xno" ; then
327 CFLAGS="$CFLAGS -pg "
328 LDFLAGS="$LDFLAGS -pg "
329 SERVER_LDFLAGS="$SERVER_LDFLAGS -pg "
334 dnl disable thread table reporting
335 AC_ARG_WITH(threadlog,
336 [ --with-threadlog enable logging of thread table],
337 [ if test "x$withval" != "xno" ; then
338 AC_DEFINE(WITH_THREADLOG, [], [Define if you want logging of the thread tables.])
344 if test "$ac_cv_func_gethostbyname" = no; then
345 AC_CHECK_LIB(nsl, gethostbyname)
348 if test "$ac_cv_func_connect" = no; then
349 AC_CHECK_LIB(socket, connect)
352 dnl Check for Solaris realtime support
353 AC_CHECK_LIB(rt, sched_yield)
355 dnl Determine the system's authentication capabilities.
356 dnl We currently support PAM, standard getpwnam(), and getspnam()
357 dnl (Linux shadow passwords)
359 if test "$with_pam" = yes; then
361 AC_CHECK_LIB(pam, pam_start, [chkpwd_LIBS="-lpam $chkpwd_LIBS"
363 AC_CHECK_FUNCS(pam_start)
364 test "$enable_chkpwd" != no && LIBS=$save_LIBS
366 if test "$ac_cv_func_pam_start" = no -o "$with_pam" != yes; then
368 AC_SEARCH_LIBS(getspnam, shadow, [
369 if test "$ac_cv_search_getspnam" = -lshadow; then
370 chkpwd_LIBS="-lshadow $chkpwd_LIBS"
372 test "$enable_chkpwd" != no && LIBS=$save_LIBS
373 if test "$ac_cv_func_crypt" = no; then
374 AC_CHECK_LIB(crypt, crypt, [
375 chkpwd_LIBS="-lcrypt $chkpwd_LIBS"
376 test "$enable_chkpwd" = no && \
377 LIBS="-lcrypt $LIBS"])
381 if test "x$with_ncurses" != "xno"; then
382 AC_SEARCH_LIBS(tgetent, [ncurses curses termcap])
383 AC_SEARCH_LIBS(scrollok, [ncurses curses])
384 AC_SEARCH_LIBS(initscr, [ncurses curses])
386 AC_SEARCH_LIBS(tgetent, [curses termcap])
387 AC_SEARCH_LIBS(initscr, [curses])
389 AC_CHECK_FUNCS(vw_printw wcolor_set resizeterm wresize)
391 dnl Check for libpthread(s) if we're not using Digital UNIX or FreeBSD. (On
392 dnl which the -pthread flag takes care of this.)
393 if test "$check_pthread" != no; then
394 AC_CHECK_LIB(pthread, pthread_create)
395 AC_CHECK_LIB(pthreads, pthread_create)
398 test -d /usr/kerberos/include && CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
401 dnl Check for libcitadel
402 AC_CHECK_HEADER(libcitadel.h,
403 [AC_CHECK_LIB(citadel, libcitadel_version_string,
405 LIBS="-lcitadel $LIBS"
408 AC_MSG_ERROR(libcitadel was not found or is not usable. Please install libcitadel.)
413 AC_MSG_ERROR(libcitadel.h was not found or is not usable. Please install libcitadel.)
420 # The big search for OpenSSL
421 if test "$with_ssl" != "no"; then
423 saved_LDFLAGS="$LDFLAGS"
424 saved_CFLAGS="$CFLAGS"
425 if test "x$prefix" != "xNONE"; then
426 tryssldir="$tryssldir $prefix"
428 AC_CACHE_CHECK([for OpenSSL], ac_cv_openssldir, [
429 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
430 CFLAGS="$saved_CFLAGS"
431 LDFLAGS="$saved_LDFLAGS"
432 LIBS="$saved_LIBS -lssl -lcrypto"
434 # Skip directories if they don't exist
435 if test ! -z "$ssldir" -a ! -d "$ssldir" ; then
438 if test ! -z "$ssldir" -a "x$ssldir" != "x/usr"; then
439 # Try to use $ssldir/lib if it exists, otherwise
441 if test -d "$ssldir/lib" ; then
442 LDFLAGS="-L$ssldir/lib $saved_LDFLAGS"
443 if test ! -z "$need_dash_r" ; then
444 LDFLAGS="-R$ssldir/lib $LDFLAGS"
447 LDFLAGS="-L$ssldir $saved_LDFLAGS"
448 if test ! -z "$need_dash_r" ; then
449 LDFLAGS="-R$ssldir $LDFLAGS"
452 # Try to use $ssldir/include if it exists, otherwise
454 if test -d "$ssldir/include" ; then
455 CFLAGS="-I$ssldir/include $saved_CFLAGS"
457 CFLAGS="-I$ssldir $saved_CFLAGS"
461 # Basic test to check for compatible version and correct linking
462 # *does not* test for RSA - that comes later.
466 #include <openssl/rand.h>
470 memset(a, 0, sizeof(a));
471 RAND_add(a, sizeof(a), sizeof(a));
472 return(RAND_status() <= 0);
481 if test ! -z "$found_crypto" ; then
486 if test -z "$ssldir" ; then
490 if test ! -z "$found_crypto" ; then
491 ac_cv_openssldir=$ssldir
493 ac_cv_openssldir="no"
497 LDFLAGS="$saved_LDFLAGS"
498 CFLAGS="$saved_CFLAGS"
500 if test "x$ac_cv_openssldir" != "xno" ; then
501 AC_DEFINE(HAVE_OPENSSL, [], [Define if you have OpenSSL.])
502 LIBS="-lssl -lcrypto $LIBS"
503 dnl Need to recover ssldir - test above runs in subshell
504 ssldir=$ac_cv_openssldir
505 if test ! -z "$ssldir" -a "x$ssldir" != "x/usr" -a "x$ssldir" != "x(system)"; then
506 # Try to use $ssldir/lib if it exists, otherwise
508 if test -d "$ssldir/lib" ; then
509 LDFLAGS="-L$ssldir/lib $saved_LDFLAGS"
510 if test ! -z "$need_dash_r" ; then
511 LDFLAGS="-R$ssldir/lib $LDFLAGS"
514 LDFLAGS="-L$ssldir $saved_LDFLAGS"
515 if test ! -z "$need_dash_r" ; then
516 LDFLAGS="-R$ssldir $LDFLAGS"
519 # Try to use $ssldir/include if it exists, otherwise
521 if test -d "$ssldir/include" ; then
522 CFLAGS="-I$ssldir/include $saved_CFLAGS"
524 CFLAGS="-I$ssldir $saved_CFLAGS"
530 if test "x$with_db" != xno; then
531 test "$db_dir" && LDFLAGS="$LDFLAGS -L$db_dir/lib"
535 if test -d "$db_dir/include/db4"; then
536 CPPFLAGS="$CPPFLAGS -I$db_dir/include/db4"
538 elif test "$db_dir"; then
539 CPPFLAGS="$CPPFLAGS -I$db_dir/include"
540 elif test -d /usr/include/db4; then
541 CPPFLAGS="$CPPFLAGS -I/usr/include/db4"
546 AC_CHECK_DB([db db-4.1 db-4 db4],
548 DATABASE=database_sleepycat.c
550 AC_MSG_ERROR([[Can not locate a suitable Berkeley DB
551 library. Use --with-db=PATH to specify
556 dnl Checks for the zlib compression library.
557 if test "x$with_zlib" != xno ; then
558 AC_CHECK_HEADERS(zlib.h,
559 [AC_CHECK_LIB(z, zlibVersion,
564 if test "x$ok_zlib" = xyes ; then
565 SERVER_LIBS="-lz $SERVER_LIBS"
566 AC_DEFINE(HAVE_ZLIB, [], [define this if you have zlib compression available])
572 dnl Checks for the OpenLDAP client library.
573 if test "x$with_ldap" != xno ; then
574 AC_CHECK_HEADERS(ldap.h,
575 [AC_CHECK_LIB(ldap, ldap_init,
580 if test "x$ok_ldap" = xyes ; then
581 SERVER_LIBS="-lldap $SERVER_LIBS"
582 AC_DEFINE(HAVE_LDAP, [], [define this if you have OpenLDAP client available])
589 dnl Checks for the libdspam mail spam scanning library.
590 if test "x$with_libdspam" != xno ; then
591 AC_CHECK_HEADERS(dspam/libdspam.h,
592 [AC_CHECK_LIB(dspam, dspam_init,
597 if test "x$ok_libdspam" = xyes ; then
598 SERVER_LIBS="-ldspam $SERVER_LIBS"
599 AC_DEFINE(HAVE_LIBDSPAM, [], [define this if you have the libdspam mail spam scanning library available])
604 dnl Checks for the Expat XML parser.
605 AC_CHECK_HEADER(expat.h,
606 [AC_CHECK_LIB(expat, XML_ParserCreateNS,
608 SERVER_LIBS="-lexpat $SERVER_LIBS"
611 AC_MSG_ERROR(The Expat XML parser was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
616 AC_MSG_ERROR(expat.h was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
621 dnl Checks for the libical iCalendar library.
622 AC_CHECK_HEADER(ical.h,
623 [AC_CHECK_LIB(ical, icalcomponent_new,
625 SERVER_LIBS="-lical $SERVER_LIBS"
628 AC_MSG_ERROR(libical was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
633 AC_MSG_ERROR(ical.h was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
638 dnl Checks for the libsieve mailbox sorting library.
639 AC_CHECK_HEADER(sieve2.h,
640 [AC_CHECK_LIB(sieve, sieve2_license,
642 SERVER_LIBS="-lsieve $SERVER_LIBS"
645 AC_MSG_ERROR(libsieve was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
650 AC_MSG_ERROR(sieve2.h was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
657 dnl Checks for header files.
663 dnl TODO: for the DB header checks, we should check whether the headers
664 dnl define db_env_create, somehow
666 AC_CHECK_HEADERS(curses.h dl.h fcntl.h limits.h malloc.h termios.h sys/ioctl.h sys/select.h sys/stat.h sys/time.h sys/prctl.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)
669 dnl need to check if this is actually compilable, sometimes there are
670 dnl conflicts with the system's headers (eg solaris xpg4 style headers)
672 if test "x$with_ncurses" != xno; then
673 AC_CHECK_HEADERS(ncurses.h,,,[ ])
676 AC_CHECK_HEADER(resolv.h,AC_DEFINE(HAVE_RESOLV_H, [], [define this if you have the resolv.h header file.]),,
677 [#ifdef HAVE_SYS_TYPES_H
678 #include <sys/types.h>
680 #ifdef HAVE_NETINET_IN_H
681 #include <netinet/in.h>
683 #ifdef HAVE_ARPA_NAMESER_H
684 #include <arpa/nameser.h>
688 dnl Checks for typedefs, structures, and compiler characteristics.
694 dnl defined in acinclude.m4:
697 AC_CACHE_CHECK([for ut_type in struct utmp], ac_cv_struct_ut_type,
698 [AC_TRY_COMPILE([#include <sys/types.h>
699 #include <utmp.h>], [struct utmp ut; ut.ut_type;],
700 ac_cv_struct_ut_type=yes, ac_cv_struct_ut_type=no)])
701 if test $ac_cv_struct_ut_type = yes; then
702 AC_DEFINE(HAVE_UT_TYPE, [], [define this if struct utmp has an ut_type member])
706 [for call semantics from getpwuid_r],
707 ac_cv_call_getpwuid_r,
708 [AC_TRY_COMPILE([#include <sys/types.h>
711 struct passwd pw, *pwp;
715 getpwuid_r(uid, &pw, pwbuf, sizeof(pwbuf), &pwp);
717 ac_cv_call_getpwuid_r=yes,
718 ac_cv_call_getpwuid_r=no)
721 if test $ac_cv_call_getpwuid_r = no; then
722 AC_DEFINE(SOLARIS_GETPWUID,[],[do we need to use solaris call syntax?])
723 AC_DEFINE(F_UID_T, "%ld", [whats the matching format string for uid_t?])
724 AC_DEFINE(F_PID_T, "%ld", [whats the matching format string for pid_t?])
725 AC_DEFINE(F_XPID_T, "%lx", [whats the matching format string for xpid_t?])
727 AC_DEFINE(F_UID_T, "%d", [whats the matching format string for uid_t?])
728 AC_DEFINE(F_PID_T, "%d", [whats the matching format string for pid_t?])
729 AC_DEFINE(F_XPID_T, "%x", [whats the matching format string for xpid_t?])
733 dnl Our own happy little check for the resolver library.
737 echo "we don't need to check for resolv on openbsd"
740 echo "we don't need to check for resolv on freeBSD"
743 test -f /usr/local/lib/libresolv.a && LDFLAGS="$LDFLAGS -L/usr/local/lib"
744 AC_CHECK_LIB(resolv, res_query,
745 RESOLV="$RESOLV -lresolv",
746 [dnl Have to include resolv.h as res_query is sometimes defined as a macro
747 AC_MSG_CHECKING([for res_query in -lresolv (with resolv.h if present)])
749 LIBS="-lresolv $LIBS"
754 [res_query(0,0,0,0,0)],
758 AC_MSG_ERROR(libresolv was not found. Citadel requires the resolver library.)
767 AC_CACHE_CHECK([for ut_host in struct utmp], ac_cv_struct_ut_host,
768 [AC_TRY_COMPILE([#include <sys/types.h>
769 #include <utmp.h>], [struct utmp ut; ut.ut_host;],
770 ac_cv_struct_ut_host=yes, ac_cv_struct_ut_host=no)])
771 if test $ac_cv_struct_ut_host = yes; then
772 AC_DEFINE(HAVE_UT_HOST, [], [define this if struct utmp has an ut_host member])
775 dnl Checks for library functions.
777 AC_PROG_GCC_TRADITIONAL
780 AC_CHECK_FUNCS(getspnam getutxline mkdir mkfifo mktime rmdir select socket strerror strcasecmp strncasecmp)
782 dnl Now check for pthreads
784 dnl On some platforms, AC_CHECK_FUNC[S] doesn't work for pthreads programs;
785 dnl we need to include pthread.h
787 AC_CACHE_CHECK([for pthread_cancel], ac_cv_func_pthread_cancel,
788 [AC_TRY_LINK([#include <pthread.h>],
791 /* The GNU C library defines this for functions which it implements
792 to always fail with ENOSYS. Some functions are actually named
793 something starting with __ and the normal name is an alias. */
794 #if defined (__stub_pthread_cancel) || defined (__stub___pthread_cancel)
797 pthread_cancel(thread);
799 ac_cv_func_pthread_cancel=yes, ac_cv_func_pthread_cancel=no)])
800 if test "$ac_cv_func_pthread_cancel" = yes; then
801 AC_DEFINE(HAVE_PTHREAD_CANCEL, [], [define this if you have the pthread_cancel() function])
804 AC_CACHE_CHECK([for pthread_create], ac_cv_func_pthread_create,
805 [AC_TRY_LINK([#include <pthread.h>],
806 [ /* The GNU C library defines this for functions which it implements
807 to always fail with ENOSYS. Some functions are actually named
808 something starting with __ and the normal name is an alias. */
809 #if defined (__stub_pthread_cancel) || defined (__stub___pthread_cancel)
812 pthread_create(NULL, NULL, NULL, NULL);
814 ac_cv_func_pthread_create=yes, ac_cv_func_pthread_create=no)])
815 if test "$ac_cv_func_pthread_create" = yes; then
816 test "$DATABASE" && TARGETS="client server utils"
817 if test "x$enable_threaded_client" != xno; then
818 AC_DEFINE(THREADED_CLIENT, [], [define this if you want to enable the multithreaded client])
822 AC_REPLACE_FUNCS(snprintf getutline)
824 AC_CACHE_CHECK([the weather], ac_cv_weather, [
826 echo $ECHO_N "opening your window... $ECHO_C" >&6
828 month=`date | cut -f 2 -d ' '`
831 ac_cv_weather="it's cold!"
834 ac_cv_weather="it's wet!"
837 ac_cv_weather="it's hot!"
840 ac_cv_weather="it's cool"
843 ac_cv_weather="it's fine"
851 AC_CACHE_CHECK([under the bed], ac_cv_under_the_bed, [
852 number=`date | cut -c 19`
855 ac_cv_under_the_bed="lunatics and monsters found"
858 ac_cv_under_the_bed="dust bunnies found"
863 dnl Done! Now write the Makefile and sysdep.h
866 AC_SUBST(chkpwd_LIBS)
869 AC_SUBST(SERVER_LDFLAGS)
870 AC_SUBST(SERVER_LIBS)
872 AC_CONFIG_HEADER(sysdep.h)
874 AC_CONFIG_FILES([Makefile])
875 AC_OUTPUT(database_cleanup.sh)
878 if test -z "$DATABASE"; then
879 AC_MSG_WARN([No database driver was found. Please install Berkeley DB.])
882 echo ------------------------------------------------------------------------
883 echo 'zlib compression: ' $ok_zlib
884 echo 'LDAP support: ' $ok_ldap
885 echo 'DSpam Scanning support: ' $ok_libdspam
887 echo 'Note: if you are not using Linux, make sure you are using GNU make'
888 echo '(gmake) to compile Citadel.'