1 dnl Process this file with autoconf to produce a configure script.
4 AC_INIT([Citadel],m4_esyscmd_s([grep REV_LEVEL citadel.h | sed 's/[^0-9]*//g']),[http://uncensored.citadel.org])
5 AC_REVISION(m4_esyscmd_s([git log --pretty=%h | head -1])
6 AC_CONFIG_SRCDIR([citserver.c])
7 AC_CONFIG_HEADER(sysdep.h)
8 AC_CONFIG_MACRO_DIR([m4])
9 AC_PREFIX_DEFAULT(/usr/local/citadel)
10 if test "$prefix" = NONE; then
11 AC_DEFINE_UNQUOTED(CTDLDIR, "$ac_default_prefix", [define this to the Citadel home directory])
12 ssl_dir="$ac_default_prefix/keys"
13 localedir=$ac_default_prefix
15 AC_DEFINE_UNQUOTED(CTDLDIR, "$prefix", [define this to the Citadel home directory])
16 ssl_dir="$prefix/keys"
20 dnl Make sure we see all GNU and Solaris extensions.
24 dnl Checks for the Datadir
26 [ --with-datadir directory to store the databases under],
27 [ if test "x$withval" != "xno" ; then
28 AC_DEFINE(HAVE_DATA_DIR,[],[use alternate database location?])
29 AC_DEFINE_UNQUOTED(DATA_DIR, "$withval",[define, if the user suplied a data-directory to use.])
30 MAKE_DATA_DIR=$withval
31 AC_SUBST(MAKE_DATA_DIR)
37 dnl Checks for the helpDatadir
39 [ --with-helpdir directory to store the helpfiles under],
40 [ if test "x$withval" != "xno" ; then
41 AC_DEFINE(HAVE_HELP_DIR,[],[use alternate database location?])
42 AC_DEFINE_UNQUOTED(HELP_DIR, "$withval",[define, if the user suplied a helpfile-directory to use.])
43 MAKE_HELP_DIR=$withval
44 AC_SUBST(MAKE_HELP_DIR)
49 dnl Checks for the Static Datadir
50 AC_ARG_WITH(staticdatadir,
51 [ --with-staticdatadir directory to store citadels system messages under],
52 [ if test "x$withval" != "xno" ; then
53 AC_DEFINE(HAVE_STATICDATA_DIR, [], [should we activate an alternate static text location?])
54 AC_DEFINE_UNQUOTED(STATICDATA_DIR, "$withval", [where do we put our static text data?])
55 MAKE_STATICDATA_DIR=$withval
56 AC_SUBST(MAKE_STATICDATA_DIR)
62 dnl Checks for the SSLdir
63 dnl this is a bit different than the rest,
64 dnl because of the citadel used to have a keys/ subdir.
66 [ --with-ssldir directory to store the ssl certificates under],
67 [ if test "x$withval" != "xno" ; then
71 AC_SUBST(MAKE_SSL_DIR)
74 AC_DEFINE_UNQUOTED(SSL_DIR, "$ssl_dir", [were should we put our keys?])
77 dnl Checks for the spooldir
79 [ --with-spooldir directory to keep queues under],
80 [ if test "x$withval" != "xno" ; then
81 AC_DEFINE(HAVE_SPOOL_DIR, [], [enable alternate spool dir?])
82 AC_DEFINE_UNQUOTED(SPOOL_DIR,"$withval", [where do we place our spool dirs?])
83 MAKE_SPOOL_DIR=$withval
84 AC_SUBST(MAKE_SPOOL_DIR)
90 dnl Checks for the Configdir
91 AC_ARG_WITH(sysconfdir,
92 [ --with-sysconfdir directory to store the configs under],
93 [ if test "x$withval" != "xno" ; then
94 AC_DEFINE(HAVE_ETC_DIR, [], [should we search our system config in an alternate place?])
95 AC_DEFINE_UNQUOTED(ETC_DIR, "$withval", [where to search our config files])
97 AC_SUBST(MAKE_ETC_DIR)
102 dnl Checks for the Configdir
103 AC_ARG_WITH(autosysconfdir,
104 [ --with-autosysconfdir directory to store the automaticaly maintained configs under],
105 [ if test "x$withval" != "xno" ; then
106 AC_DEFINE(HAVE_AUTO_ETC_DIR, [], [should we search our automatic config in an alternate place?])
107 AC_DEFINE_UNQUOTED(AUTO_ETC_DIR, "$withval", [where to search our automatic config files])
108 MAKE_AUTO_ETC_DIR=$withval
109 AC_SUBST(MAKE_AUTO_ETC_DIR)
114 dnl Checks for where to put our utilities
115 AC_ARG_WITH(utility-bindir,
116 [ --with-utility-bindir directory where to find helper binaries],
117 [ if test "x$withval" != "xno" ; then
118 AC_DEFINE(HAVE_UTILBIN_DIR,[],[should we put our helper binaries to another location?])
119 AC_DEFINE_UNQUOTED(UTILBIN_DIR, "$withval", [were to put our helper programs])
120 MAKE_UTILBIN_DIR=$withval
121 AC_SUBST(MAKE_UTILBIN_DIR)
127 dnl Checks for the run-dir for the sockets
129 [ --with-rundir directory to place runtime files (UDS) to?],
130 [ if test "x$withval" != "xno" ; then
131 AC_DEFINE(HAVE_RUN_DIR, [], [should we put our non volatile files elsewhere?])
132 AC_DEFINE_UNQUOTED(RUN_DIR, "$withval", [define, where the config should go in unix style])
133 MAKE_RUN_DIR=$withval
134 AC_SUBST(MAKE_RUN_DIR)
141 [ --with-docdir where to install the documentation. default: /usr/local/citadel/],
142 [ if test "x$withval" != "xno" ; then
143 MAKE_DOC_DIR=$withval
144 AC_SUBST(MAKE_DOC_DIR)
149 dnl where to put the locale files
150 AC_ARG_WITH(localedir,
151 [ --with-localedir directory to put the locale files to],
152 [ if test "x$withval" != "xno" ; then
157 AC_DEFINE_UNQUOTED(LOCALEDIR, "$localedir",[where to find our pot files])
163 dnl Checks for the zlib compression library.
164 saved_CFLAGS="$CFLAGS"
165 CFLAGS="$CFLAGS $SERVER_LIBS"
166 AC_CHECK_HEADER(zlib.h,
167 [AC_CHECK_LIB(z, zlibVersion,
169 LIBS="-lz $LIBS $SERVER_LIBS"
172 AC_MSG_ERROR(zlib was not found or is not usable. Please install zlib.)
177 AC_MSG_ERROR(zlib.h was not found or is not usable. Please install zlib.)
180 CFLAGS="$saved_CFLAGS"
182 dnl Here is the check for a libc integrated iconv
184 [ --disable-iconv do not use iconv charset conversion],
185 ok_iconv=no, ok_iconv=yes)
187 AC_MSG_CHECKING(Checking to see if your system supports iconv)
191 iconv_t ic = (iconv_t)(-1) ;
192 ic = iconv_open("UTF-8", "us-ascii");
207 dnl Check for iconv in external libiconv
208 if test "$ok_iconv" = no; then
209 AC_MSG_CHECKING(Checking for an external libiconv)
210 OLD_LDFLAGS="$LDFLAGS"
211 LDFLAGS="$LDFLAGS -liconv"
215 iconv_t ic = (iconv_t)(-1) ;
216 ic = iconv_open("UTF-8", "us-ascii");
226 LDFLAGS="$OLD_LDFLAGS"
232 if test "$ok_iconv" != "no"; then
233 AC_MSG_RESULT(Citadel will be built with character set conversion.)
234 AC_DEFINE(HAVE_ICONV,[],[whether we have iconv for charset conversion])
236 AC_MSG_RESULT(Citadel will be built without character set conversion.)
239 AC_CHECK_LIB(intl, libintl_bindtextdomain, [LDFLAGS="$LDFLAGS -lintl"])
241 AC_ARG_ENABLE(pie, [ --enable-pie build position-independent executables])
243 AC_ARG_WITH(pam, [ --with-pam use PAM if present (see PAM.txt before you try this)])
244 AC_ARG_WITH(kthread, [ --with-kthread use kernel threads (on FreeBSD) (not recommended yet)])
245 AC_ARG_WITH(db, [ --with-db@<:@=DIR@:>@ use Berkeley DB 3.x @<:@DIR=/usr/local/BerkeleyDB.3.@<:@123@:>@@:>@])
247 [ --with-ssl=PATH Specify path to OpenSSL installation ],
249 if test "x$withval" != "xno" ; then
255 if test "x$with_db" != xno -a "x$with_db" != xyes -a "$with_db"; then
259 test -f /usr/local/lib/libdb.a -o -f /usr/local/lib/libdb.so \
260 -o -f /usr/local/lib/libdb4.a -o -f /usr/local/lib/libdb4.so \
263 test -d /usr/local/BerkeleyDB.4.1 && db_dir=/usr/local/BerkeleyDB.4.1
264 test -d /usr/local/BerkeleyDB.4.2 && db_dir=/usr/local/BerkeleyDB.4.2
265 test -d /usr/local/BerkeleyDB.4.3 && db_dir=/usr/local/BerkeleyDB.4.3
266 test -d /usr/local/BerkeleyDB.4.4 && db_dir=/usr/local/BerkeleyDB.4.4
267 test -d /usr/local/BerkeleyDB.4.5 && db_dir=/usr/local/BerkeleyDB.4.5
271 PTHREAD_DEFS=-D_REENTRANT
272 AC_MSG_CHECKING([how to compile with POSIX threads])
274 dnl BSDI 3.0 wants relocatable object modules instead of shared libs
275 dnl for dlopen(), and has a wrapper script to link with shared libs.
276 dnl Also has stupid non-reentrant gethostbyaddr() and friends.
278 test -z "$CC" -a -x /usr/bin/shlicc2 && CC=shlicc2
279 AC_DEFINE(HAVE_NONREENTRANT_NETDB,[], [define this if the OS has broken non-reentrant gethostby{name,addr}() ])
280 AC_MSG_RESULT([Old BSDI])
283 AC_DEFINE(HAVE_NONREENTRANT_NETDB, [], [define this if the OS has broken non-reentrant gethostby{name,addr}() ])
284 AC_MSG_RESULT([BSD/OS])
286 dnl Curses support on Mac OS X is kind of screwed at the moment.
287 dnl TCP buffering isn't ideal under OS X. This define should also be
288 dnl checked in other cases of OS X-Linux differences.
290 AC_DEFINE(HAVE_DARWIN, [], [define if using OS X/Darwin])
291 AC_MSG_RESULT([Mac OS X])
293 dnl Digital Unix has an odd way to build for pthreads, and we can't
294 dnl build pthreads programs with gcc due to header problems.
296 test -z "$CC" && CC=cc
297 LIBS="-lpthread -lexc $LIBS"
299 AC_MSG_RESULT([Tru64 or Digital UNIX])
301 dnl FreeBSD is similar to Digital UNIX with DEC C, which has a -pthread flag:
303 if test "$with_kthread" = yes; then
304 LIBS="-kthread $LIBS"
306 LIBS="-pthread $LIBS"
309 PTHREAD_DEFS=-D_THREAD_SAFE
310 AC_MSG_RESULT([FreeBSD])
313 LIBS="-pthread $LIBS"
315 PTHREAD_DEFS=-pthread
316 AC_MSG_RESULT([OpenBSD])
319 PTHREAD_DEFS="-D_REENTRANT -pthread"
320 AC_MSG_RESULT([Linux])
323 PTHREAD_DEFS="-D_REENTRANT -D_PTHREADS"
324 AC_MSG_RESULT([Solaris])
327 SERVER_LDFLAGS="-Wl,-subsystem,windows"
328 AC_MSG_RESULT([Cygwin])
331 AC_MSG_RESULT([default])
334 dnl DEFS="$DEFS $PTHREAD_DEFS"
337 dnl Checks for programs.
342 dnl Set up system-dependent compiler flags.
343 if test "$GCC" = yes; then
344 if test "$CC" = icc; then
348 *-*-solaris*|alpha*-dec-osf*)
349 CFLAGS="$CFLAGS -Wall -Wcast-qual -Wcast-align -Wno-char-subscripts $PTHREAD_DEFS"
352 CFLAGS="$CFLAGS -Wall -Wcast-qual -Wcast-align -Wstrict-prototypes -Wno-strict-aliasing $PTHREAD_DEFS"
358 if test "x$enable_pie" = xyes; then
359 save_CFLAGS="$CFLAGS"
360 save_LDFLAGS="$LDFLAGS"
361 CFLAGS="$CFLAGS -fpie"
362 LDFLAGS="$LDFLAGS -pie -fpie"
363 AC_CACHE_CHECK([whether compiler accepts -pie -fpie], ac_cv_pie_fpie,
365 ac_cv_pie_fpie=yes, ac_cv_pie_fpie=no)])
366 if test $ac_cv_pie_fpie = no; then
367 CFLAGS="$save_CFLAGS"
368 LDFLAGS="$save_LDFLAGS"
372 AC_MSG_CHECKING([how to create dependancy checks])
373 if test -n "`$CC -V 2>&1 |grep Sun`"; then
378 AC_SUBST(DEPEND_FLAG)
383 AC_PATH_PROG(DIFF,diff)
384 AC_PATH_PROG(PATCH,patch)
385 missing_dir=`cd $ac_aux_dir && pwd`
386 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
387 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
389 dnl Checks for system services.
391 dnl Check the size of various builtin types; see typesize.h (error)
392 AC_CHECK_SIZEOF(char, 0)
393 AC_CHECK_SIZEOF(short, 0)
394 AC_CHECK_SIZEOF(int, 0)
395 AC_CHECK_SIZEOF(long, 0)
396 AC_CHECK_SIZEOF(size_t, 0)
397 AC_CHECK_SIZEOF(loff_t, 0)
398 dnl AC_CHECK_SIZEOF(long long, 0)
400 dnl Checks for libraries.
402 dnl We want to test for the following in libc before checking for their
403 dnl respective libraries, because some systems (like Irix) have both, and the
404 dnl non-libc versions may be broken.
405 AC_CHECK_FUNCS(crypt gethostbyname connect getpwnam_r getpwuid_r getloadavg)
407 AC_CHECK_FUNCS(strftime_l uselocale gettext)
409 if test "$ok_nls" != "no"; then
410 AC_CHECK_PROG(ok_xgettext, xgettext, yes, no)
414 if test "$ok_nls" != "no"; then
415 AC_CHECK_PROG(ok_msgmerge, msgmerge, yes, no)
419 if test "$ok_nls" != "no"; then
420 AC_CHECK_PROG(ok_msgfmt, msgfmt, yes, no)
424 if test "$ok_nls" != "no"; then
425 AC_MSG_RESULT(citadel will be built with national language support.)
426 AC_DEFINE(ENABLE_NLS, [], [whether we have NLS support])
427 PROG_SUBDIRS="$PROG_SUBDIRS po/citadel-setup"
429 AC_MSG_RESULT(citadel will be built without national language support.)
432 dnl disable backtrace if we don't want it.
433 AC_ARG_WITH(backtrace,
434 [ --with-backtrace enable backtrace dumps in the syslog],
435 [ if test "x$withval" != "xno" ; then
436 CFLAGS="$CFLAGS -rdynamic "
437 LDFLAGS="$LDFLAGS -rdynamic "
438 SERVER_LDFLAGS="$SERVER_LDFLAGS -rdynamic "
439 AC_CHECK_FUNCS(backtrace)
444 dnl disable backtrace if we don't want it.
446 [ --with-gprof enable profiling],
447 [ if test "x$withval" != "xno" ; then
448 CFLAGS="$CFLAGS -pg "
449 LDFLAGS="$LDFLAGS -pg "
450 SERVER_LDFLAGS="$SERVER_LDFLAGS -pg "
455 if test "$ac_cv_func_gethostbyname" = no; then
456 AC_CHECK_LIB(nsl, gethostbyname)
459 if test "$ac_cv_func_connect" = no; then
460 AC_CHECK_LIB(socket, connect)
463 dnl Check for Solaris realtime support
464 AC_CHECK_LIB(rt, sched_yield)
466 dnl Determine the system's authentication capabilities.
467 dnl We currently support PAM, standard getpwnam(), and getspnam()
468 dnl (Linux shadow passwords)
471 AC_CHECK_LIB(pam, pam_start, [chkpwd_LIBS="-lpam $chkpwd_LIBS"
473 AC_CHECK_FUNCS(pam_start)
474 test "$enable_chkpwd" != no && LIBS=$save_LIBS
475 if test "$ac_cv_func_pam_start" = no -o "$with_pam" != yes; then
477 AC_SEARCH_LIBS(getspnam, shadow, [
478 if test "$ac_cv_search_getspnam" = -lshadow; then
479 chkpwd_LIBS="-lshadow $chkpwd_LIBS"
481 test "$enable_chkpwd" != no && LIBS=$save_LIBS
482 if test "$ac_cv_func_crypt" = no; then
483 AC_CHECK_LIB(crypt, crypt, [
484 chkpwd_LIBS="-lcrypt $chkpwd_LIBS"
485 test "$enable_chkpwd" = no && \
486 LIBS="-lcrypt $LIBS"])
490 AC_CHECK_FUNCS(vw_printw wcolor_set resizeterm wresize)
492 dnl Check for libpthread(s) if we're not using Digital UNIX or FreeBSD. (On
493 dnl which the -pthread flag takes care of this.)
494 if test "$check_pthread" != no; then
495 AC_CHECK_LIB(pthread, pthread_create)
496 AC_CHECK_LIB(pthreads, pthread_create)
499 test -d /usr/kerberos/include && CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
501 dnl Checks for the libical iCalendar library.
502 AC_CHECK_HEADER(libical/ical.h,
503 [AC_CHECK_LIB(ical, icaltimezone_set_tzid_prefix,
505 SERVER_LIBS="-lical $SERVER_LIBS"
508 AC_MSG_ERROR(libical was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
513 AC_MSG_ERROR(libical/ical.h was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
518 dnl Checks for the libsieve mailbox sorting library.
519 AC_CHECK_HEADER(sieve2.h,
520 [AC_CHECK_LIB(sieve, sieve2_license,
522 SERVER_LIBS="-lsieve $SERVER_LIBS"
525 AC_MSG_ERROR(libsieve was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
530 AC_MSG_ERROR(sieve2.h was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
534 saved_CFLAGS="$CFLAGS"
535 CFLAGS="$CFLAGS $SERVER_LIBS"
536 dnl Check for libcitadel
537 AC_CHECK_HEADER(libcitadel.h,
538 [AC_CHECK_LIB(citadel, libcitadel_version_string,
540 LIBS="-lcitadel $LIBS $SERVER_LIBS"
541 chkpwd_LIBS="-lcitadel $chkpwd_LIBS"
544 AC_MSG_ERROR(libcitadel was not found or is not usable. Please install libcitadel.)
549 AC_MSG_ERROR(libcitadel.h was not found or is not usable. Please install libcitadel.)
552 CFLAGS="$saved_CFLAGS"
555 # The big search for OpenSSL
556 if test "$with_ssl" != "no"; then
558 saved_LDFLAGS="$LDFLAGS"
559 saved_CFLAGS="$CFLAGS"
560 if test "x$prefix" != "xNONE"; then
561 tryssldir="$tryssldir $prefix"
563 AC_CACHE_CHECK([for OpenSSL], ac_cv_openssldir, [
564 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
565 CFLAGS="$saved_CFLAGS"
566 LDFLAGS="$saved_LDFLAGS"
567 LIBS="$saved_LIBS -lssl -lcrypto"
569 # Skip directories if they don't exist
570 if test ! -z "$ssldir" -a ! -d "$ssldir" ; then
573 if test ! -z "$ssldir" -a "x$ssldir" != "x/usr"; then
574 # Try to use $ssldir/lib if it exists, otherwise
576 if test -d "$ssldir/lib" ; then
577 LDFLAGS="-L$ssldir/lib $saved_LDFLAGS"
578 if test ! -z "$need_dash_r" ; then
579 LDFLAGS="-R$ssldir/lib $LDFLAGS"
582 LDFLAGS="-L$ssldir $saved_LDFLAGS"
583 if test ! -z "$need_dash_r" ; then
584 LDFLAGS="-R$ssldir $LDFLAGS"
587 # Try to use $ssldir/include if it exists, otherwise
589 if test -d "$ssldir/include" ; then
590 CFLAGS="-I$ssldir/include $saved_CFLAGS"
592 CFLAGS="-I$ssldir $saved_CFLAGS"
596 # Basic test to check for compatible version and correct linking
597 # *does not* test for RSA - that comes later.
601 #include <openssl/rand.h>
605 memset(a, 0, sizeof(a));
606 RAND_add(a, sizeof(a), sizeof(a));
607 return(RAND_status() <= 0);
616 if test ! -z "$found_crypto" ; then
621 if test -z "$ssldir" ; then
625 if test ! -z "$found_crypto" ; then
626 ac_cv_openssldir=$ssldir
628 ac_cv_openssldir="no"
632 LDFLAGS="$saved_LDFLAGS"
633 CFLAGS="$saved_CFLAGS"
635 if test "x$ac_cv_openssldir" != "xno" ; then
636 AC_DEFINE(HAVE_OPENSSL, [], [Define if you have OpenSSL.])
637 LIBS="-lssl -lcrypto $LIBS"
638 dnl Need to recover ssldir - test above runs in subshell
639 ssldir=$ac_cv_openssldir
640 if test ! -z "$ssldir" -a "x$ssldir" != "x/usr" -a "x$ssldir" != "x(system)"; then
641 # Try to use $ssldir/lib if it exists, otherwise
643 if test -d "$ssldir/lib" ; then
644 LDFLAGS="-L$ssldir/lib $saved_LDFLAGS"
645 if test ! -z "$need_dash_r" ; then
646 LDFLAGS="-R$ssldir/lib $LDFLAGS"
649 LDFLAGS="-L$ssldir $saved_LDFLAGS"
650 if test ! -z "$need_dash_r" ; then
651 LDFLAGS="-R$ssldir $LDFLAGS"
654 # Try to use $ssldir/include if it exists, otherwise
656 if test -d "$ssldir/include" ; then
657 CFLAGS="-I$ssldir/include $saved_CFLAGS"
659 CFLAGS="-I$ssldir $saved_CFLAGS"
665 if test "x$with_db" != xno; then
666 test "$db_dir" && LDFLAGS="$LDFLAGS -L$db_dir/lib"
670 if test -d "$db_dir/include/db4"; then
671 CPPFLAGS="$CPPFLAGS -I$db_dir/include/db4"
673 elif test "$db_dir"; then
674 CPPFLAGS="$CPPFLAGS -I$db_dir/include"
675 elif test -d /usr/include/db4; then
676 CPPFLAGS="$CPPFLAGS -I/usr/include/db4"
681 AC_CHECK_DB([db db-4.1 db-4 db4],
685 AC_MSG_ERROR([[Can not locate a suitable Berkeley DB
686 library. Use --with-db=PATH to specify
692 dnl Checks for the OpenLDAP client library.
693 AC_CHECK_HEADER(ldap.h,
694 [AC_CHECK_LIB(ldap, ldap_initialize,
696 SERVER_LIBS="-lldap $SERVER_LIBS"
699 AC_MSG_ERROR(OpenLDAP development library was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
704 AC_MSG_ERROR(OpenLDAP development headers were not found and are required. More info: http://www.citadel.org/doku.php/installation:start)
709 dnl Checks for the Expat XML parser.
710 AC_CHECK_HEADER(expat.h,
711 [AC_CHECK_LIB(expat, XML_ParserCreateNS,
713 SERVER_LIBS="-lexpat $SERVER_LIBS"
716 AC_MSG_ERROR(The Expat XML parser was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
721 AC_MSG_ERROR(expat.h was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
726 dnl Checks for libcurl.
727 AC_CHECK_HEADER(curl/curl.h,
728 [AC_CHECK_LIB(curl, curl_version,
730 SERVER_LIBS="-lcurl $SERVER_LIBS"
733 AC_MSG_ERROR(libcurl was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
738 AC_MSG_ERROR(curl/curl.h was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
743 dnl Checks for header files.
749 dnl TODO: for the DB header checks, we should check whether the headers
750 dnl define db_env_create, somehow
752 AC_CHECK_HEADERS(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 syscall.h sys/syscall.h)
754 AC_CHECK_HEADER(resolv.h,AC_DEFINE(HAVE_RESOLV_H, [], [define this if you have the resolv.h header file.]),,
755 [#ifdef HAVE_SYS_TYPES_H
756 #include <sys/types.h>
758 #ifdef HAVE_NETINET_IN_H
759 #include <netinet/in.h>
761 #ifdef HAVE_ARPA_NAMESER_H
762 #include <arpa/nameser.h>
766 dnl Checks for typedefs, structures, and compiler characteristics.
772 dnl defined in acinclude.m4:
775 AC_CACHE_CHECK([for ut_type in struct utmp], ac_cv_struct_ut_type,
776 [AC_TRY_COMPILE([#include <sys/types.h>
777 #include <utmp.h>], [struct utmp ut; ut.ut_type;],
778 ac_cv_struct_ut_type=yes, ac_cv_struct_ut_type=no)])
779 if test $ac_cv_struct_ut_type = yes; then
780 AC_DEFINE(HAVE_UT_TYPE, [], [define this if struct utmp has an ut_type member])
784 [for call semantics from getpwuid_r],
785 ac_cv_call_getpwuid_r,
786 [AC_TRY_COMPILE([#include <sys/types.h>
789 struct passwd pw, *pwp;
793 getpwuid_r(uid, &pw, pwbuf, sizeof(pwbuf), &pwp);
795 ac_cv_call_getpwuid_r=yes,
796 ac_cv_call_getpwuid_r=no)
799 if test $ac_cv_call_getpwuid_r = no; then
800 AC_DEFINE(SOLARIS_GETPWUID,[],[do we need to use solaris call syntax?])
801 AC_DEFINE(F_UID_T, "%ld", [whats the matching format string for uid_t?])
802 AC_DEFINE(F_PID_T, "%ld", [whats the matching format string for pid_t?])
803 AC_DEFINE(F_XPID_T, "%lx", [whats the matching format string for xpid_t?])
805 AC_DEFINE(F_UID_T, "%d", [whats the matching format string for uid_t?])
806 AC_DEFINE(F_PID_T, "%d", [whats the matching format string for pid_t?])
807 AC_DEFINE(F_XPID_T, "%x", [whats the matching format string for xpid_t?])
811 dnl Our own happy little check for the resolver library.
815 echo "we don't need to check for resolv on openbsd"
818 echo "we don't need to check for resolv on freeBSD"
821 test -f /usr/local/lib/libresolv.a && LDFLAGS="$LDFLAGS -L/usr/local/lib"
822 AC_CHECK_LIB(resolv, res_query,
823 RESOLV="$RESOLV -lresolv",
824 [dnl Have to include resolv.h as res_query is sometimes defined as a macro
825 AC_MSG_CHECKING([for res_query in -lresolv (with resolv.h if present)])
827 LIBS="-lresolv $LIBS"
832 [res_query(0,0,0,0,0)],
836 AC_MSG_ERROR(libresolv was not found. Citadel requires the resolver library.)
845 AC_CACHE_CHECK([for ut_host in struct utmp], ac_cv_struct_ut_host,
846 [AC_TRY_COMPILE([#include <sys/types.h>
847 #include <utmp.h>], [struct utmp ut; ut.ut_host;],
848 ac_cv_struct_ut_host=yes, ac_cv_struct_ut_host=no)])
849 if test $ac_cv_struct_ut_host = yes; then
850 AC_DEFINE(HAVE_UT_HOST, [], [define this if struct utmp has an ut_host member])
853 dnl Checks for library functions.
855 AC_PROG_GCC_TRADITIONAL
858 AC_CHECK_FUNCS(getspnam getutxline mkdir mkfifo mktime rmdir select socket strerror strcasecmp strncasecmp)
860 dnl Now check for pthreads
862 dnl On some platforms, AC_CHECK_FUNC[S] doesn't work for pthreads programs;
863 dnl we need to include pthread.h
865 AC_CACHE_CHECK([for pthread_cancel], ac_cv_func_pthread_cancel,
866 [AC_TRY_LINK([#include <pthread.h>],
869 /* The GNU C library defines this for functions which it implements
870 to always fail with ENOSYS. Some functions are actually named
871 something starting with __ and the normal name is an alias. */
872 #if defined (__stub_pthread_cancel) || defined (__stub___pthread_cancel)
875 pthread_cancel(thread);
877 ac_cv_func_pthread_cancel=yes, ac_cv_func_pthread_cancel=no)])
878 if test "$ac_cv_func_pthread_cancel" = yes; then
879 AC_DEFINE(HAVE_PTHREAD_CANCEL, [], [define this if you have the pthread_cancel() function])
882 AC_CACHE_CHECK([for pthread_create], ac_cv_func_pthread_create,
883 [AC_TRY_LINK([#include <pthread.h>],
884 [ /* The GNU C library defines this for functions which it implements
885 to always fail with ENOSYS. Some functions are actually named
886 something starting with __ and the normal name is an alias. */
887 #if defined (__stub_pthread_cancel) || defined (__stub___pthread_cancel)
890 pthread_create(NULL, NULL, NULL, NULL);
892 ac_cv_func_pthread_create=yes, ac_cv_func_pthread_create=no)])
893 if test "$ac_cv_func_pthread_create" = yes; then
894 test "$DATABASE" && TARGETS="server utils"
897 AC_CACHE_CHECK([the weather], ac_cv_weather, [
899 echo $ECHO_N "opening your window... $ECHO_C" >&6
901 month=`date | cut -f 2 -d ' '`
904 ac_cv_weather="it's cold!"
907 ac_cv_weather="it's wet!"
910 ac_cv_weather="it's hot!"
913 ac_cv_weather="it's cool"
916 ac_cv_weather="it's fine"
924 AC_CACHE_CHECK([under the bed], ac_cv_under_the_bed, [
925 number=`date | cut -c 19`
928 ac_cv_under_the_bed="lunatics and monsters found"
931 ac_cv_under_the_bed="dust bunnies found"
939 dnl Done! Now write the Makefile and sysdep.h
941 AC_SUBST(chkpwd_LIBS)
944 AC_SUBST(SERVER_LDFLAGS)
945 AC_SUBST(SERVER_LIBS)
949 AC_CONFIG_FILES([Makefile])
950 AC_OUTPUT(database_cleanup.sh po/citadel-setup/Makefile)
952 if test -z "$DATABASE"; then
953 AC_MSG_WARN([No database driver was found. Please install Berkeley DB.])
956 abs_srcdir="`cd $srcdir && pwd`"
958 if test "$abs_srcdir" != "$abs_builddir"; then
959 ln -sf $abs_srcdir/include $abs_builddir
960 ln -sf $abs_srcdir/Make_sources $abs_builddir
961 ln -sf $abs_srcdir/Make_modules $abs_builddir
962 for i in $abs_srcdir/*.h ; do
963 if test "$abs_srcdir/sysdep.h" != "$i"; then
964 ln -sf $i $abs_builddir
967 for d in `/bin/ls $abs_srcdir/modules/`; do
968 (mkdir -p $abs_builddir/modules/$d)
970 if test -d "$abs_srcdir/user_modules/"; then
971 for d in `/bin/ls $abs_srcdir/user_modules/`; do
972 (mkdir -p $abs_builddir/user_modules/$d)
975 mkdir -p $abs_builddir/utils
976 mkdir -p $abs_builddir/utillib
979 if test -n "$srcdir"; then
984 echo ------------------------------------------------------------------------
985 echo 'Character set conversion support:' $ok_iconv
987 echo 'Note: if you are not using Linux, make sure you are using GNU make'
988 echo '(gmake) to compile Citadel.'