6 THIS IS THE OLD CONFIGURE SCRIPT
8 KEEPING IT HERE FOR REFERENCE AS WE BUILD THE NEW ONE
16 dnl Process this file with autoconf to produce a configure script.
19 AC_INIT([Citadel],m4_esyscmd_s([grep REV_LEVEL citadel.h | sed 's/[^0-9]*//g']),[http://uncensored.citadel.org])
21 AC_REVISION(m4_esyscmd_s([git log --pretty=%h | head -1]))
23 AC_CONFIG_SRCDIR([citserver.c])
24 AC_CONFIG_HEADER([sysdep.h])
25 AC_CONFIG_MACRO_DIR([m4])
26 AC_PREFIX_DEFAULT(/usr/local/citadel)
27 if test "$prefix" = NONE; then
28 AC_DEFINE_UNQUOTED(CTDLDIR, "$ac_default_prefix", [define this to the Citadel home directory])
29 ssl_dir="$ac_default_prefix/keys"
30 localedir=$ac_default_prefix
32 AC_DEFINE_UNQUOTED(CTDLDIR, "$prefix", [define this to the Citadel home directory])
33 ssl_dir="$prefix/keys"
37 dnl Make sure we see all GNU and Solaris extensions.
41 dnl Checks for the Datadir
43 [ --with-datadir directory to store the databases under],
44 [ if test "x$withval" != "xno" ; then
45 AC_DEFINE(HAVE_DATA_DIR,[],[use alternate database location?])
46 AC_DEFINE_UNQUOTED(DATA_DIR, "$withval",[define, if the user suplied a data-directory to use.])
47 MAKE_DATA_DIR=$withval
48 AC_SUBST(MAKE_DATA_DIR)
54 dnl Checks for the helpDatadir
56 [ --with-helpdir directory to store the helpfiles under],
57 [ if test "x$withval" != "xno" ; then
58 AC_DEFINE(HAVE_HELP_DIR,[],[use alternate database location?])
59 AC_DEFINE_UNQUOTED(HELP_DIR, "$withval",[define, if the user suplied a helpfile-directory to use.])
60 MAKE_HELP_DIR=$withval
61 AC_SUBST(MAKE_HELP_DIR)
66 dnl Checks for the Static Datadir
67 AC_ARG_WITH(staticdatadir,
68 [ --with-staticdatadir directory to store citadels system messages under],
69 [ if test "x$withval" != "xno" ; then
70 AC_DEFINE(HAVE_STATICDATA_DIR, [], [should we activate an alternate static text location?])
71 AC_DEFINE_UNQUOTED(STATICDATA_DIR, "$withval", [where do we put our static text data?])
72 MAKE_STATICDATA_DIR=$withval
73 AC_SUBST(MAKE_STATICDATA_DIR)
79 dnl Checks for the SSLdir
80 dnl this is a bit different than the rest,
81 dnl because of the citadel used to have a keys/ subdir.
83 [ --with-ssldir directory to store the ssl certificates under],
84 [ if test "x$withval" != "xno" ; then
88 AC_SUBST(MAKE_SSL_DIR)
91 AC_DEFINE_UNQUOTED(SSL_DIR, "$ssl_dir", [were should we put our keys?])
94 dnl Checks for the spooldir
96 [ --with-spooldir directory to keep queues under],
97 [ if test "x$withval" != "xno" ; then
98 AC_DEFINE(HAVE_SPOOL_DIR, [], [enable alternate spool dir?])
99 AC_DEFINE_UNQUOTED(SPOOL_DIR,"$withval", [where do we place our spool dirs?])
100 MAKE_SPOOL_DIR=$withval
101 AC_SUBST(MAKE_SPOOL_DIR)
107 dnl Checks for the Configdir
108 AC_ARG_WITH(sysconfdir,
109 [ --with-sysconfdir directory to store the configs under],
110 [ if test "x$withval" != "xno" ; then
111 AC_DEFINE(HAVE_ETC_DIR, [], [should we search our system config in an alternate place?])
112 AC_DEFINE_UNQUOTED(ETC_DIR, "$withval", [where to search our config files])
113 MAKE_ETC_DIR=$withval
114 AC_SUBST(MAKE_ETC_DIR)
119 dnl Checks for the Configdir
120 AC_ARG_WITH(autosysconfdir,
121 [ --with-autosysconfdir directory to store the automaticaly maintained configs under],
122 [ if test "x$withval" != "xno" ; then
123 AC_DEFINE(HAVE_AUTO_ETC_DIR, [], [should we search our automatic config in an alternate place?])
124 AC_DEFINE_UNQUOTED(AUTO_ETC_DIR, "$withval", [where to search our automatic config files])
125 MAKE_AUTO_ETC_DIR=$withval
126 AC_SUBST(MAKE_AUTO_ETC_DIR)
131 dnl Checks for where to put our utilities
132 AC_ARG_WITH(utility-bindir,
133 [ --with-utility-bindir directory where to find helper binaries],
134 [ if test "x$withval" != "xno" ; then
135 AC_DEFINE(HAVE_UTILBIN_DIR,[],[should we put our helper binaries to another location?])
136 AC_DEFINE_UNQUOTED(UTILBIN_DIR, "$withval", [were to put our helper programs])
137 MAKE_UTILBIN_DIR=$withval
138 AC_SUBST(MAKE_UTILBIN_DIR)
144 dnl Checks for the run-dir for the sockets
146 [ --with-rundir directory to place runtime files (UDS) to?],
147 [ if test "x$withval" != "xno" ; then
148 AC_DEFINE(HAVE_RUN_DIR, [], [should we put our non volatile files elsewhere?])
149 AC_DEFINE_UNQUOTED(RUN_DIR, "$withval", [define, where the config should go in unix style])
150 MAKE_RUN_DIR=$withval
151 AC_SUBST(MAKE_RUN_DIR)
158 [ --with-docdir where to install the documentation. default: /usr/local/citadel/],
159 [ if test "x$withval" != "xno" ; then
160 MAKE_DOC_DIR=$withval
161 AC_SUBST(MAKE_DOC_DIR)
166 dnl where to put the locale files
167 AC_ARG_WITH(localedir,
168 [ --with-localedir directory to put the locale files to],
169 [ if test "x$withval" != "xno" ; then
174 AC_DEFINE_UNQUOTED(LOCALEDIR, "$localedir",[where to find our pot files])
180 dnl Checks for the zlib compression library.
181 saved_CFLAGS="$CFLAGS"
182 CFLAGS="$CFLAGS $SERVER_LIBS"
183 AC_CHECK_HEADER(zlib.h,
184 [AC_CHECK_LIB(z, zlibVersion,
186 LIBS="-lz $LIBS $SERVER_LIBS"
189 AC_MSG_ERROR(zlib was not found or is not usable. Please install zlib.)
194 AC_MSG_ERROR(zlib.h was not found or is not usable. Please install zlib.)
197 CFLAGS="$saved_CFLAGS"
199 dnl Checks for the crypt_r function
200 saved_CFLAGS="$CFLAGS"
201 CFLAGS="$CFLAGS $SERVER_LIBS"
202 AC_CHECK_HEADER(crypt.h,
203 [AC_CHECK_LIB(crypt, crypt_r,
205 SERVER_LIBS="-lcrypt $SERVER_LIBS"
208 AC_MSG_ERROR(crypt_r was not found or is not usable.)
213 AC_MSG_ERROR(crypt.h was not found or is not usable.)
216 CFLAGS="$saved_CFLAGS"
218 dnl Here is the check for a libc integrated iconv
220 [ --disable-iconv do not use iconv charset conversion],
221 ok_iconv=no, ok_iconv=yes)
223 AC_MSG_CHECKING(Checking to see if your system supports iconv)
227 iconv_t ic = (iconv_t)(-1) ;
228 ic = iconv_open("UTF-8", "us-ascii");
243 dnl Check for iconv in external libiconv
244 if test "$ok_iconv" = no; then
245 AC_MSG_CHECKING(Checking for an external libiconv)
246 OLD_LDFLAGS="$LDFLAGS"
247 LDFLAGS="$LDFLAGS -liconv"
251 iconv_t ic = (iconv_t)(-1) ;
252 ic = iconv_open("UTF-8", "us-ascii");
262 LDFLAGS="$OLD_LDFLAGS"
268 if test "$ok_iconv" != "no"; then
269 AC_MSG_RESULT(Citadel will be built with character set conversion.)
270 AC_DEFINE(HAVE_ICONV,[],[whether we have iconv for charset conversion])
272 AC_MSG_RESULT(Citadel will be built without character set conversion.)
275 AC_CHECK_LIB(intl, libintl_bindtextdomain, [LDFLAGS="$LDFLAGS -lintl"])
277 AC_ARG_ENABLE(pie, [ --enable-pie build position-independent executables])
279 AC_ARG_WITH(pam, [ --with-pam use PAM if present (see PAM.txt before you try this)])
280 AC_ARG_WITH(kthread, [ --with-kthread use kernel threads (on FreeBSD) (not recommended yet)])
281 AC_ARG_WITH(db, [ --with-db@<:@=DIR@:>@ use Berkeley DB 3.x @<:@DIR=/usr/local/BerkeleyDB.3.@<:@123@:>@@:>@])
283 [ --with-ssl=PATH Specify path to OpenSSL installation ],
285 if test "x$withval" != "xno" ; then
291 if test "x$with_db" != xno -a "x$with_db" != xyes -a "$with_db"; then
295 test -f /usr/local/lib/libdb.a -o -f /usr/local/lib/libdb.so \
300 PTHREAD_DEFS=-D_REENTRANT
301 AC_MSG_CHECKING([how to compile with POSIX threads])
303 dnl BSDI 3.0 wants relocatable object modules instead of shared libs
304 dnl for dlopen(), and has a wrapper script to link with shared libs.
305 dnl Also has stupid non-reentrant gethostbyaddr() and friends.
307 test -z "$CC" -a -x /usr/bin/shlicc2 && CC=shlicc2
308 AC_DEFINE(HAVE_NONREENTRANT_NETDB,[], [define this if the OS has broken non-reentrant gethostby{name,addr}() ])
309 AC_MSG_RESULT([Old BSDI])
312 AC_DEFINE(HAVE_NONREENTRANT_NETDB, [], [define this if the OS has broken non-reentrant gethostby{name,addr}() ])
313 AC_MSG_RESULT([BSD/OS])
315 dnl Curses support on Mac OS X is kind of screwed at the moment.
316 dnl TCP buffering isn't ideal under OS X. This define should also be
317 dnl checked in other cases of OS X-Linux differences.
319 AC_DEFINE(HAVE_DARWIN, [], [define if using OS X/Darwin])
320 AC_MSG_RESULT([Mac OS X])
322 dnl Digital Unix has an odd way to build for pthreads, and we can't
323 dnl build pthreads programs with gcc due to header problems.
325 test -z "$CC" && CC=cc
326 LIBS="-lpthread -lexc $LIBS"
328 AC_MSG_RESULT([Tru64 or Digital UNIX])
330 dnl FreeBSD is similar to Digital UNIX with DEC C, which has a -pthread flag:
332 if test "$with_kthread" = yes; then
333 LIBS="-kthread $LIBS"
335 LIBS="-pthread $LIBS"
338 PTHREAD_DEFS=-D_THREAD_SAFE
339 AC_MSG_RESULT([FreeBSD])
342 LIBS="-pthread $LIBS"
344 PTHREAD_DEFS=-pthread
345 AC_MSG_RESULT([OpenBSD])
348 PTHREAD_DEFS="-D_REENTRANT -pthread"
349 AC_MSG_RESULT([Linux])
352 PTHREAD_DEFS="-D_REENTRANT -D_PTHREADS"
353 AC_MSG_RESULT([Solaris])
356 SERVER_LDFLAGS="-Wl,-subsystem,windows"
357 AC_MSG_RESULT([Cygwin])
360 AC_MSG_RESULT([default])
363 dnl DEFS="$DEFS $PTHREAD_DEFS"
366 dnl Checks for programs.
371 dnl Set up system-dependent compiler flags.
372 if test "$GCC" = yes; then
373 if test "$CC" = icc; then
377 *-*-solaris*|alpha*-dec-osf*)
378 CFLAGS="$CFLAGS -Wall -Wcast-qual -Wcast-align -Wno-char-subscripts $PTHREAD_DEFS"
381 CFLAGS="$CFLAGS -Wall -Wcast-qual -Wcast-align -Wstrict-prototypes -Wno-strict-aliasing $PTHREAD_DEFS"
387 if test "x$enable_pie" = xyes; then
388 save_CFLAGS="$CFLAGS"
389 save_LDFLAGS="$LDFLAGS"
390 CFLAGS="$CFLAGS -fpie"
391 LDFLAGS="$LDFLAGS -pie -fpie"
392 AC_CACHE_CHECK([whether compiler accepts -pie -fpie], ac_cv_pie_fpie,
394 ac_cv_pie_fpie=yes, ac_cv_pie_fpie=no)])
395 if test $ac_cv_pie_fpie = no; then
396 CFLAGS="$save_CFLAGS"
397 LDFLAGS="$save_LDFLAGS"
401 AC_MSG_CHECKING([how to create dependancy checks])
402 if test -n "`$CC -V 2>&1 |grep Sun`"; then
407 AC_SUBST(DEPEND_FLAG)
412 AC_PATH_PROG(DIFF,diff)
413 AC_PATH_PROG(PATCH,patch)
414 missing_dir=`cd $ac_aux_dir && pwd`
415 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
416 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
418 dnl Checks for system services.
420 dnl Check the size of various builtin types; see typesize.h (error)
421 AC_CHECK_SIZEOF(char, 0)
422 AC_CHECK_SIZEOF(short, 0)
423 AC_CHECK_SIZEOF(int, 0)
424 AC_CHECK_SIZEOF(long, 0)
425 AC_CHECK_SIZEOF(size_t, 0)
426 AC_CHECK_SIZEOF(loff_t, 0)
427 dnl AC_CHECK_SIZEOF(long long, 0)
429 dnl Checks for libraries.
431 dnl We want to test for the following in libc before checking for their
432 dnl respective libraries, because some systems (like Irix) have both, and the
433 dnl non-libc versions may be broken.
434 AC_CHECK_FUNCS(crypt gethostbyname connect getpwnam_r getpwuid_r getloadavg)
436 AC_CHECK_FUNCS(strftime_l uselocale gettext)
438 if test "$ok_nls" != "no"; then
439 AC_CHECK_PROG(ok_xgettext, xgettext, yes, no)
443 if test "$ok_nls" != "no"; then
444 AC_CHECK_PROG(ok_msgmerge, msgmerge, yes, no)
448 if test "$ok_nls" != "no"; then
449 AC_CHECK_PROG(ok_msgfmt, msgfmt, yes, no)
453 if test "$ok_nls" != "no"; then
454 AC_MSG_RESULT(citadel will be built with national language support.)
455 AC_DEFINE(ENABLE_NLS, [], [whether we have NLS support])
456 PROG_SUBDIRS="$PROG_SUBDIRS po/citadel-setup"
458 AC_MSG_RESULT(citadel will be built without national language support.)
461 dnl disable backtrace if we don't want it.
462 AC_ARG_WITH(backtrace,
463 [ --with-backtrace enable backtrace dumps in the syslog],
464 [ if test "x$withval" != "xno" ; then
465 CFLAGS="$CFLAGS -rdynamic "
466 LDFLAGS="$LDFLAGS -rdynamic "
467 SERVER_LDFLAGS="$SERVER_LDFLAGS -rdynamic "
468 AC_CHECK_FUNCS(backtrace)
473 dnl disable backtrace if we don't want it.
475 [ --with-gprof enable profiling],
476 [ if test "x$withval" != "xno" ; then
477 CFLAGS="$CFLAGS -pg "
478 LDFLAGS="$LDFLAGS -pg "
479 SERVER_LDFLAGS="$SERVER_LDFLAGS -pg "
484 if test "$ac_cv_func_gethostbyname" = no; then
485 AC_CHECK_LIB(nsl, gethostbyname)
488 if test "$ac_cv_func_connect" = no; then
489 AC_CHECK_LIB(socket, connect)
492 dnl Check for Solaris realtime support
493 AC_CHECK_LIB(rt, sched_yield)
495 dnl Determine the system's authentication capabilities.
496 dnl We currently support PAM, standard getpwnam(), and getspnam()
497 dnl (Linux shadow passwords)
500 AC_CHECK_LIB(pam, pam_start, [chkpwd_LIBS="-lpam $chkpwd_LIBS"
502 AC_CHECK_FUNCS(pam_start)
503 test "$enable_chkpwd" != no && LIBS=$save_LIBS
504 if test "$ac_cv_func_pam_start" = no -o "$with_pam" != yes; then
506 AC_SEARCH_LIBS(getspnam, shadow, [
507 if test "$ac_cv_search_getspnam" = -lshadow; then
508 chkpwd_LIBS="-lshadow $chkpwd_LIBS"
510 test "$enable_chkpwd" != no && LIBS=$save_LIBS
511 if test "$ac_cv_func_crypt" = no; then
512 AC_CHECK_LIB(crypt, crypt, [
513 chkpwd_LIBS="-lcrypt $chkpwd_LIBS"
514 test "$enable_chkpwd" = no && \
515 LIBS="-lcrypt $LIBS"])
519 AC_CHECK_FUNCS(vw_printw wcolor_set resizeterm wresize)
521 dnl Check for libpthread(s) if we're not using Digital UNIX or FreeBSD. (On
522 dnl which the -pthread flag takes care of this.)
523 if test "$check_pthread" != no; then
524 AC_CHECK_LIB(pthread, pthread_create)
525 AC_CHECK_LIB(pthreads, pthread_create)
528 test -d /usr/kerberos/include && CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
530 dnl Checks for the libical iCalendar library.
531 AC_CHECK_HEADER(libical/ical.h,
532 [AC_CHECK_LIB(ical, icaltimezone_set_tzid_prefix,
534 SERVER_LIBS="-lical $SERVER_LIBS"
537 AC_MSG_ERROR(libical was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
542 AC_MSG_ERROR(libical/ical.h was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
547 saved_CFLAGS="$CFLAGS"
548 CFLAGS="$CFLAGS $SERVER_LIBS"
549 dnl Check for libcitadel
550 AC_CHECK_HEADER(libcitadel.h,
551 [AC_CHECK_LIB(citadel, libcitadel_version_string,
553 LIBS="-lcitadel $LIBS $SERVER_LIBS"
554 chkpwd_LIBS="-lcitadel $chkpwd_LIBS"
557 AC_MSG_ERROR(libcitadel was not found or is not usable. Please install libcitadel.)
562 AC_MSG_ERROR(libcitadel.h was not found or is not usable. Please install libcitadel.)
565 CFLAGS="$saved_CFLAGS"
568 # The big search for OpenSSL
569 if test "$with_ssl" != "no"; then
571 saved_LDFLAGS="$LDFLAGS"
572 saved_CFLAGS="$CFLAGS"
573 if test "x$prefix" != "xNONE"; then
574 tryssldir="$tryssldir $prefix"
576 AC_CACHE_CHECK([for OpenSSL], ac_cv_openssldir, [
577 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
578 CFLAGS="$saved_CFLAGS"
579 LDFLAGS="$saved_LDFLAGS"
580 LIBS="$saved_LIBS -lssl -lcrypto"
582 # Skip directories if they don't exist
583 if test ! -z "$ssldir" -a ! -d "$ssldir" ; then
586 if test ! -z "$ssldir" -a "x$ssldir" != "x/usr"; then
587 # Try to use $ssldir/lib if it exists, otherwise
589 if test -d "$ssldir/lib" ; then
590 LDFLAGS="-L$ssldir/lib $saved_LDFLAGS"
591 if test ! -z "$need_dash_r" ; then
592 LDFLAGS="-R$ssldir/lib $LDFLAGS"
595 LDFLAGS="-L$ssldir $saved_LDFLAGS"
596 if test ! -z "$need_dash_r" ; then
597 LDFLAGS="-R$ssldir $LDFLAGS"
600 # Try to use $ssldir/include if it exists, otherwise
602 if test -d "$ssldir/include" ; then
603 CFLAGS="-I$ssldir/include $saved_CFLAGS"
605 CFLAGS="-I$ssldir $saved_CFLAGS"
609 # Basic test to check for compatible version and correct linking
610 # *does not* test for RSA - that comes later.
614 #include <openssl/rand.h>
618 memset(a, 0, sizeof(a));
619 RAND_add(a, sizeof(a), sizeof(a));
620 return(RAND_status() <= 0);
629 if test ! -z "$found_crypto" ; then
634 if test -z "$ssldir" ; then
638 if test ! -z "$found_crypto" ; then
639 ac_cv_openssldir=$ssldir
641 ac_cv_openssldir="no"
645 LDFLAGS="$saved_LDFLAGS"
646 CFLAGS="$saved_CFLAGS"
648 if test "x$ac_cv_openssldir" != "xno" ; then
649 AC_DEFINE(HAVE_OPENSSL, [], [Define if you have OpenSSL.])
650 LIBS="-lssl -lcrypto $LIBS"
651 dnl Need to recover ssldir - test above runs in subshell
652 ssldir=$ac_cv_openssldir
653 if test ! -z "$ssldir" -a "x$ssldir" != "x/usr" -a "x$ssldir" != "x(system)"; then
654 # Try to use $ssldir/lib if it exists, otherwise
656 if test -d "$ssldir/lib" ; then
657 LDFLAGS="-L$ssldir/lib $saved_LDFLAGS"
658 if test ! -z "$need_dash_r" ; then
659 LDFLAGS="-R$ssldir/lib $LDFLAGS"
662 LDFLAGS="-L$ssldir $saved_LDFLAGS"
663 if test ! -z "$need_dash_r" ; then
664 LDFLAGS="-R$ssldir $LDFLAGS"
667 # Try to use $ssldir/include if it exists, otherwise
669 if test -d "$ssldir/include" ; then
670 CFLAGS="-I$ssldir/include $saved_CFLAGS"
672 CFLAGS="-I$ssldir $saved_CFLAGS"
678 if test "x$with_db" != xno; then
679 test "$db_dir" && LDFLAGS="$LDFLAGS -L$db_dir/lib"
683 if test "$db_dir"; then
684 CPPFLAGS="$CPPFLAGS -I$db_dir/include"
692 AC_MSG_ERROR([[Can not locate a suitable Berkeley DB
693 library. Use --with-db=PATH to specify
699 dnl Checks for the OpenLDAP client library.
700 AC_CHECK_HEADER(ldap.h,
701 [AC_CHECK_LIB(ldap, ldap_initialize,
703 SERVER_LIBS="-lldap $SERVER_LIBS"
706 AC_MSG_ERROR(OpenLDAP development library was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
711 AC_MSG_ERROR(OpenLDAP development headers were not found and are required. More info: http://www.citadel.org/doku.php/installation:start)
716 dnl Checks for the Expat XML parser.
717 AC_CHECK_HEADER(expat.h,
718 [AC_CHECK_LIB(expat, XML_ParserCreateNS,
720 SERVER_LIBS="-lexpat $SERVER_LIBS"
723 AC_MSG_ERROR(The Expat XML parser was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
728 AC_MSG_ERROR(expat.h was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
733 dnl Checks for libcurl.
734 AC_CHECK_HEADER(curl/curl.h,
735 [AC_CHECK_LIB(curl, curl_version,
737 SERVER_LIBS="-lcurl $SERVER_LIBS"
740 AC_MSG_ERROR(libcurl was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
745 AC_MSG_ERROR(curl/curl.h was not found and is required. More info: http://www.citadel.org/doku.php/installation:start)
750 dnl Checks for header files.
756 dnl TODO: for the DB header checks, we should check whether the headers
757 dnl define db_env_create, somehow
759 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 pthread.h netinet/in.h arpa/nameser.h arpa/nameser_compat.h syscall.h sys/syscall.h)
761 AC_CHECK_HEADER(resolv.h,AC_DEFINE(HAVE_RESOLV_H, [], [define this if you have the resolv.h header file.]),,
762 [#ifdef HAVE_SYS_TYPES_H
763 #include <sys/types.h>
765 #ifdef HAVE_NETINET_IN_H
766 #include <netinet/in.h>
768 #ifdef HAVE_ARPA_NAMESER_H
769 #include <arpa/nameser.h>
773 dnl Checks for typedefs, structures, and compiler characteristics.
779 dnl defined in acinclude.m4:
782 AC_CACHE_CHECK([for ut_type in struct utmp], ac_cv_struct_ut_type,
783 [AC_TRY_COMPILE([#include <sys/types.h>
784 #include <utmp.h>], [struct utmp ut; ut.ut_type;],
785 ac_cv_struct_ut_type=yes, ac_cv_struct_ut_type=no)])
786 if test $ac_cv_struct_ut_type = yes; then
787 AC_DEFINE(HAVE_UT_TYPE, [], [define this if struct utmp has an ut_type member])
791 [for call semantics from getpwuid_r],
792 ac_cv_call_getpwuid_r,
793 [AC_TRY_COMPILE([#include <sys/types.h>
796 struct passwd pw, *pwp;
800 getpwuid_r(uid, &pw, pwbuf, sizeof(pwbuf), &pwp);
802 ac_cv_call_getpwuid_r=yes,
803 ac_cv_call_getpwuid_r=no)
806 if test $ac_cv_call_getpwuid_r = no; then
807 AC_DEFINE(SOLARIS_GETPWUID,[],[do we need to use solaris call syntax?])
808 AC_DEFINE(F_UID_T, "%ld", [whats the matching format string for uid_t?])
809 AC_DEFINE(F_PID_T, "%ld", [whats the matching format string for pid_t?])
810 AC_DEFINE(F_XPID_T, "%lx", [whats the matching format string for xpid_t?])
812 AC_DEFINE(F_UID_T, "%d", [whats the matching format string for uid_t?])
813 AC_DEFINE(F_PID_T, "%d", [whats the matching format string for pid_t?])
814 AC_DEFINE(F_XPID_T, "%x", [whats the matching format string for xpid_t?])
818 dnl Our own happy little check for the resolver library.
822 echo "we don't need to check for resolv on openbsd"
825 echo "we don't need to check for resolv on freeBSD"
828 test -f /usr/local/lib/libresolv.a && LDFLAGS="$LDFLAGS -L/usr/local/lib"
829 AC_CHECK_LIB(resolv, res_query,
830 RESOLV="$RESOLV -lresolv",
831 [dnl Have to include resolv.h as res_query is sometimes defined as a macro
832 AC_MSG_CHECKING([for res_query in -lresolv (with resolv.h if present)])
834 LIBS="-lresolv $LIBS"
839 [res_query(0,0,0,0,0)],
843 AC_MSG_ERROR(libresolv was not found. Citadel requires the resolver library.)
852 AC_CACHE_CHECK([for ut_host in struct utmp], ac_cv_struct_ut_host,
853 [AC_TRY_COMPILE([#include <sys/types.h>
854 #include <utmp.h>], [struct utmp ut; ut.ut_host;],
855 ac_cv_struct_ut_host=yes, ac_cv_struct_ut_host=no)])
856 if test $ac_cv_struct_ut_host = yes; then
857 AC_DEFINE(HAVE_UT_HOST, [], [define this if struct utmp has an ut_host member])
860 dnl Checks for library functions.
862 AC_PROG_GCC_TRADITIONAL
865 AC_CHECK_FUNCS(getspnam getutxline mkdir mkfifo mktime rmdir select socket strerror strcasecmp strncasecmp)
867 dnl Now check for pthreads
869 dnl On some platforms, AC_CHECK_FUNC[S] doesn't work for pthreads programs;
870 dnl we need to include pthread.h
872 AC_CACHE_CHECK([for pthread_cancel], ac_cv_func_pthread_cancel,
873 [AC_TRY_LINK([#include <pthread.h>],
876 /* The GNU C library defines this for functions which it implements
877 to always fail with ENOSYS. Some functions are actually named
878 something starting with __ and the normal name is an alias. */
879 #if defined (__stub_pthread_cancel) || defined (__stub___pthread_cancel)
882 pthread_cancel(thread);
884 ac_cv_func_pthread_cancel=yes, ac_cv_func_pthread_cancel=no)])
885 if test "$ac_cv_func_pthread_cancel" = yes; then
886 AC_DEFINE(HAVE_PTHREAD_CANCEL, [], [define this if you have the pthread_cancel() function])
889 AC_CACHE_CHECK([for pthread_create], ac_cv_func_pthread_create,
890 [AC_TRY_LINK([#include <pthread.h>],
891 [ /* The GNU C library defines this for functions which it implements
892 to always fail with ENOSYS. Some functions are actually named
893 something starting with __ and the normal name is an alias. */
894 #if defined (__stub_pthread_cancel) || defined (__stub___pthread_cancel)
897 pthread_create(NULL, NULL, NULL, NULL);
899 ac_cv_func_pthread_create=yes, ac_cv_func_pthread_create=no)])
900 if test "$ac_cv_func_pthread_create" = yes; then
901 test "$DATABASE" && TARGETS="server utils"
904 AC_CACHE_CHECK([the weather], ac_cv_weather, [
906 echo $ECHO_N "opening your window... $ECHO_C" >&6
908 month=`date | cut -f 2 -d ' '`
911 ac_cv_weather="it's cold!"
914 ac_cv_weather="it's wet!"
917 ac_cv_weather="it's hot!"
920 ac_cv_weather="it's cool"
923 ac_cv_weather="it's fine"
929 AC_CACHE_CHECK([under the bed], ac_cv_under_the_bed, [
930 number=`date | cut -c 19`
933 ac_cv_under_the_bed="lunatics and monsters found"
936 ac_cv_under_the_bed="dust bunnies found"
944 dnl Done! Now write the Makefile and sysdep.h
946 AC_SUBST(chkpwd_LIBS)
949 AC_SUBST(SERVER_LDFLAGS)
950 AC_SUBST(SERVER_LIBS)
954 AC_CONFIG_FILES([Makefile])
955 AC_OUTPUT(po/citadel-setup/Makefile)
957 if test -z "$DATABASE"; then
958 AC_MSG_WARN([No database driver was found. Please install Berkeley DB.])
961 abs_srcdir="`cd $srcdir && pwd`"
963 if test "$abs_srcdir" != "$abs_builddir"; then
964 ln -sf $abs_srcdir/include $abs_builddir
965 ln -sf $abs_srcdir/Make_sources $abs_builddir
966 ln -sf $abs_srcdir/Make_modules $abs_builddir
967 for i in $abs_srcdir/*.h ; do
968 if test "$abs_srcdir/sysdep.h" != "$i"; then
969 ln -sf $i $abs_builddir
972 for d in `/bin/ls $abs_srcdir/modules/`; do
973 (mkdir -p $abs_builddir/modules/$d)
975 if test -d "$abs_srcdir/user_modules/"; then
976 for d in `/bin/ls $abs_srcdir/user_modules/`; do
977 (mkdir -p $abs_builddir/user_modules/$d)
980 mkdir -p $abs_builddir/utils
981 mkdir -p $abs_builddir/utillib
984 if test -n "$srcdir"; then
989 echo ------------------------------------------------------------------------
990 echo 'Character set conversion support:' $ok_iconv
992 echo 'Note: if you are not using Linux, make sure you are using GNU make'
993 echo '(gmake) to compile Citadel.'