1 dnl Autoconfigure input file for fetchmail
3 # Fetchmail automatic configuration support
5 # Eric S. Raymond <esr@thyrsus.com>
6 # 2004 - 2007 Matthias Andree <matthias.andree@gmx.de>
8 dnl Process this file with autoconf to produce a configure script.
11 AC_INIT([fetchmail],[6.3.7],[fetchmail-users@lists.berlios.de])
12 AC_CONFIG_SRCDIR([fetchmail.h])
13 AC_CONFIG_HEADERS([config.h])
14 AC_CONFIG_LIBOBJ_DIR([.])
18 dnl automake options are in Makefile.am
22 dnl autobuild support, see <http://josefsson.org/autobuild/>
29 dnl python is optional
31 # you can pass PYTHON=: in environment or on the command line
32 # to disable python detection and continue without building/installing
33 # fetchmail.conf -- be sure to check README.packaging, too!
35 AM_PATH_PYTHON(2.0,,AC_MSG_WARN([Disabling fetchmailconf: python 2.0 or greater not found]))
36 AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :])
41 AC_PROG_CPP dnl Later checks need this.
52 AC_CHECK_TYPE(u_int32_t,unsigned int)
53 AC_CHECK_HEADERS([unistd.h termios.h termio.h sgtty.h stdarg.h \
54 sys/itimer.h fcntl.h sys/fcntl.h memory.h sys/wait.h \
55 arpa/inet.h arpa/nameser.h netinet/in.h net/socket.h \
56 sys/select.h sys/socket.h sys/time.h langinfo.h])
57 AC_CHECK_HEADERS([resolv.h],,,[
58 #include <sys/types.h>
59 #ifdef HAVE_NETINET_IN_H
60 #include <netinet/in.h>
62 #ifdef HAVE_ARPA_NAMESER_H
63 #include <arpa/nameser.h>
67 AC_C_CONST dnl getopt needs this.
73 # Check for OS special cases
76 AC_MSG_NOTICE(found Darwin - Adding -DBIND_8_COMPAT to CFLAGS)
77 CPFLAGS="-DBIND_8_COMPAT"
79 # Check for FreeBSD special case: more libs needed
81 AC_MSG_NOTICE(found FreeBSD - Adding -lmd -lkvm -lcom_err to standard libraries)
82 LIBS="$LIBS -lmd -lkvm -lcom_err"
84 # Check for LynxOS special case: -lbsd needed (at least on 2.3.0) and -s
87 AC_MSG_NOTICE(found LynxOS - Adding -lbsd to standard libraries)
89 LDFLAGS=`echo $LDFLAGS | sed "s/-s //"`
90 AC_MSG_NOTICE(found LynxOS - Prepending standard include path to gcc flags)
91 CPFLAGS="-I/usr/include"
93 # Check for Rhapsody special case: it doesn't like -s
95 AC_MSG_NOTICE(found Rhapsody - Removing -s load flag)
96 LDFLAGS=`echo $LDFLAGS | sed "s/-s //"`
101 AM_GNU_GETTEXT([external], [need-ngettext])
102 AM_GNU_GETTEXT_VERSION(0.14.3)
105 # Under sysV68, socket and friends are provided by the C library.
106 # -linet does not provide socket, but causes multiple definition
107 # errors at link-time. It is thus better to only use the C library.
108 # So don't add -linet to the link list unless it's necessary
109 AC_CHECK_FUNC(socket,
110 AC_MSG_RESULT(using libc's socket),
111 AC_CHECK_LIB(socket,socket)
112 AC_CHECK_LIB(inet,socket))
114 # The condition in this test copes with the presence of inet_addr in libc6.
115 AC_CHECK_FUNC(inet_addr,
116 AC_MSG_RESULT(using libc's inet_addr),
117 AC_CHECK_LIB(nsl,inet_addr))
119 dnl Port hack for Interactive UNIX System V/386 Release 3.2
120 AC_CHECK_LIB(cposix, strchr,
121 [DEFS="$DEFS -D_SYSV3"
122 LIBS="$LIBS -lcposix"])
124 dnl Port hack for Sparc/NetBSD-1.5
126 dnl NB: this has been disabled as it causes the unconditional
127 dnl addition of libintl to the build, which is both undesired
128 dnl and breaks on Solaris/Blastwave.org machines.
130 dnl AC_CHECK_LIB(intl, gettext,
131 dnl [LIBS="$LIBS -lintl"])
133 AC_REPLACE_FUNCS([strstr strcasecmp memmove stpcpy strlcpy strlcat])
135 AC_CHECK_FUNC(MD5Init, [],
136 [AC_LIBSOURCE(md5c.c)
137 EXTRAOBJ="$EXTRAOBJ md5c.\$(OBJEXT)"])
139 AC_CHECK_FUNC(getopt_long, [],
140 [AC_LIBSOURCES([getopt.c, getopt1.c])
141 EXTRAOBJ="$EXTRAOBJ getopt.\$(OBJEXT) getopt1.\$(OBJEXT)"])
147 AC_CHECK_FUNCS(tcsetattr stty setsid geteuid seteuid dnl
148 strerror syslog snprintf vprintf vsnprintf vsyslog dnl
149 atexit inet_aton strftime setrlimit socketpair dnl
150 sigaction strdup setlocale)
152 AC_CHECK_DECLS(strerror)
153 dnl INET6 is used by KAME/getnameinfo
154 AC_CACHE_CHECK(for AF_INET6/PF_INET6,ac_cv_inet6,
157 #ifdef HAVE_SYS_TYPES_H
158 #include <sys/types.h>
160 #ifdef HAVE_SYS_SOCKET_H
161 #include <sys/socket.h>
167 ac_cv_inet6=yes , ac_cv_inet6=no
169 if test "x$ac_cv_inet6" = xyes
171 AC_DEFINE(INET6,1,Define to 1 if your system defines AF_INET6 and PF_INET6.)
174 # Under Red Hat 4.0 (and many other Linuxes) -lresolv is seriously flaky
175 # and breaks gethostbyname(2). It's better to use the bind stuff in the C
176 # library. So don't add -lresolv to the link list unless it's necessary
177 # (It will be necessary when using GNU libc6).
179 for lib in '' -lresolv; do
180 if test -z "$lib"; then
181 AC_MSG_CHECKING([for res_search in libc])
183 AC_MSG_CHECKING([for res_search in $lib])
185 LIBS="$old_LIBS $lib"
186 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
187 #include <sys/types.h>
188 #ifdef HAVE_NETINET_IN_H
189 #include <netinet/in.h>
191 #ifdef HAVE_ARPA_NAMESER_H
192 #include <arpa/nameser.h>
197 extern int res_search();
198 ]], [[res_search(0, 0, 0, 0, 0);]])],
199 [AC_MSG_RESULT([found])
200 AC_DEFINE(HAVE_RES_SEARCH, [1],
201 [Define to 1 if you have the 'res_search' function.])
202 break], [AC_MSG_RESULT([not found])])
206 dnl Check for libcrypt -- it may live in libc or libcrypt, as on IRIX
207 AC_CHECK_FUNC(crypt, , AC_CHECK_LIB(crypt,crypt))
209 dnl Check for RSA refersence library in case we're using SSL
210 AC_CHECK_LIB(rsaref, RSAPublicDecrypt)
212 dnl AC_FUNC_SETVBUF_REVERSED
214 dnl Check for usable void pointer type
215 AC_MSG_CHECKING(use of void pointer type)
216 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[char *p;
218 p = (char *) xmalloc(1);
219 ]])],[AC_DEFINE(HAVE_VOIDPOINTER,1,[Define if your C compiler allows void * as a function result]) AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
221 dnl Check for ANSI volatile
224 dnl Check out the wait reality. We have to assume sys/wait.h is present.
225 AC_CHECK_FUNCS(waitpid wait3)
226 AC_MSG_CHECKING(for union wait);
227 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
228 #include <sys/wait.h>]], [[union wait status; int pid; pid = wait (&status);
230 /* Some POSIXoid systems have both the new-style macros and the old
231 union wait type, and they do not work together. If union wait
232 conflicts with WEXITSTATUS et al, we don't want to use it at all. */
233 if (WEXITSTATUS (status) != 0) pid = -1;
236 /* Make sure union wait works with waitpid. */
237 pid = waitpid (-1, &status, 0);
239 ]])],[AC_DEFINE(HAVE_UNION_WAIT,1,Define if 'union wait' is the type of the first arg to wait functions.) AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
241 AC_MSG_CHECKING(sys_siglist declaration in signal.h or unistd.h)
242 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <signal.h>
243 /* NetBSD declares sys_siglist in <unistd.h>. */
246 #endif]], [[char *msg = *(sys_siglist + 1);]])],[AC_DEFINE(SYS_SIGLIST_DECLARED,1,[Define if 'sys_siglist' is declared by <signal.h>.]) AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
248 # Find the right directory to put the root-mode PID file in
249 for dir in "/var/run" "/etc"
256 AC_MSG_RESULT(root-mode pid file will go in $dir)
257 AC_DEFINE_UNQUOTED(PID_DIR, "$dir", directory for PID lock files)
259 # We may have a fallback MDA available in case the socket open to the
260 # local SMTP listener fails. Best to use procmail for this, as we know
261 # it won't try delivering through local SMTP and cause a mail loop.
262 # Sendmail without the -t option to use the message headers will work too,
263 # not just for sendmail itself but for workalikes like exim.
265 # Note1: A disadvantage of using procmail is that local alias expansion
266 # according to /etc/aliases won't get done if we fall back. This doesn't
267 # matter in single-drop mode.
269 # Note2: it would be a very bad idea to use any MDA that doesn't return
270 # a refuse-to-deliver status on disk- or process-table-full
271 # conditions; mail could get lost that way. Sendmail and all of the MDAs
272 # like exim that might be lurking under a sendmail alias) do the right
273 # thing in this circumstance. Matthias Andree warns that procmail does
276 # Note3: Defalt value of fallback is now off. Matthias writes:
278 # 1. there is no way to predict when the fallback is used. With some MTAs
279 # (such as those limiting load average), outer circumstances can cause
280 # the fallback to kick in.
282 # 2. the fallback changes fetchmail behaviour in unpredictable ways. It's
283 # not only about alias expansion, .forwards to special filters won't
284 # work, mail may end up in a different place (users claim "mail loss"
287 # 3. The claim procmail did the right thing with its exit codes is plain
288 # wrong. I've seen procmail exit with code 1 when it should have exited
289 # with code 75, like, configuration errors. Procmail is a dangerous
290 # beast and is best replaced by maildrop.
292 # 4. if multiple choices exist (like procmail and maildrop), fetchmail
293 # cannot tell which one it should choose. Say, your MTA is configured
294 # to use maildrop to deliver to user's mailboxes, if fetchmail then
295 # chooses procmail, this is plain wrong.
298 AC_PATH_PROG(procmail, procmail, "", $PATH:/usr/sbin)
299 AC_PATH_PROG(sendmail, sendmail, "", $PATH:/usr/sbin:/usr/lib)
300 AC_PATH_PROG(maildrop, maildrop, "", $PATH:/usr/local/bin)
302 ### use option --disable-fallback to disable fallback MDA
303 ### use option --enable-fallback=procmail or
304 ### --enable-fallback=sendmail to select
305 AC_ARG_ENABLE(fallback,
306 [ --enable-fallback=procmail enable procmail as fallback
307 --enable-fallback=sendmail enable /usr/sbin/sendmail as fallback
308 --enable-fallback=maildrop enable maildrop as fallback
309 --enable-fallback=no disable fallback],,[enable_fallback=no])
311 case "$enable_fallback" in
312 sendmail) if test -z "$sendmail" ; then
313 AC_MSG_ERROR([Sendmail selected as fallback, but not found])
316 AC_DEFINE_UNQUOTED(FALLBACK_MDA, "$sendmail -i %T", Fallback MTA to use if defined)
317 AC_MSG_NOTICE(Will use $sendmail as fallback MDA.)
319 procmail) if test -z "$procmail" ; then
320 AC_MSG_ERROR([procmail selected as fallback, but not found])
323 AC_DEFINE_UNQUOTED(FALLBACK_MDA, "$procmail -d %T")
324 AC_MSG_NOTICE(Will use $procmail as fallback MDA.)
326 maildrop) if test -z "$maildrop" ; then
327 AC_MSG_ERROR([maildrop selected as fallback, but not found])
330 AC_DEFINE_UNQUOTED(FALLBACK_MDA, "$maildrop -d %T")
331 AC_MSG_NOTICE(Will use $maildrop as fallback MDA.)
333 no|unset) AC_MSG_NOTICE(Will not use a fallback MDA.)
335 auto|yes|set) if test -n "$sendmail" ; then
336 AC_DEFINE_UNQUOTED(FALLBACK_MDA,"$sendmail -i %T")
337 AC_MSG_NOTICE(Will use $sendmail as fallback MDA.)
339 AC_MSG_WARN(No fallback MDA available. procmail and maildrop are not eligible)
340 AC_MSG_WARN(for automatic fallback MDA configuration for reliability reasons.)
343 *) AC_MSG_ERROR([unkown value for --enable-fallback given: $enable_fallback])
348 AC_CHECK_SIZEOF(short)
350 AC_CHECK_SIZEOF(long)
352 ### use option --enable-POP2 to compile in the POP2 support
354 [ --enable-POP2 compile in POP2 protocol support (obsolete)],
355 [with_POP2=$enableval],
357 test "$with_POP2" = "yes" && AC_DEFINE(POP2_ENABLE,1,Define if you want POP2 support compiled in)
358 AM_CONDITIONAL(POP2_ENABLE, test "$with_POP2" = yes)
360 ### use option --disable-POP3 to omit the POP3 support
362 [ --disable-POP3 don't compile in POP3 protocol support],
363 [with_POP3=$enableval],
365 test "$with_POP3" = "yes" && AC_DEFINE(POP3_ENABLE,1,Define if you want POP3 support compiled in)
366 AM_CONDITIONAL(POP3_ENABLE, test "$with_POP3" = yes)
368 ### use option --disable-IMAP to omit the IMAP support
370 [ --disable-IMAP don't compile in IMAP protocol support],
371 [with_IMAP=$enableval],
373 test "$with_IMAP" = "yes" && AC_DEFINE(IMAP_ENABLE,1,Define if you want IMAP support compiled in)
374 AM_CONDITIONAL(IMAP_ENABLE, test "$with_IMAP" = yes)
376 ### use option --disable-ETRN to omit the ETRN support
378 [ --disable-ETRN don't compile in ETRN protocol support],
379 [with_ETRN=$enableval],
381 test "$with_ETRN" = "yes" && AC_DEFINE(ETRN_ENABLE,1,Define if you want ETRN support compiled in.)
382 AM_CONDITIONAL(ETRN_ENABLE, test "$with_ETRN" = yes)
384 ### use option --disable-ODMR to omit the ODMR support
386 [ --disable-ODMR don't compile in ODMR protocol support],
387 [with_ODMR=$enableval],
389 test "$with_ODMR" = "yes" && AC_DEFINE(ODMR_ENABLE,1,Define if you want ODMR support compiled in)
390 AM_CONDITIONAL(ODMR_ENABLE, test "$with_ODMR" = yes)
392 ### use option --enable-RPA to compile in the RPA support
394 [ --enable-RPA compile in RPA protocol support],
395 [with_RPA=$enableval],
397 test "$with_RPA" = "yes" && AC_DEFINE(RPA_ENABLE,1,Define if you want RPA support compiled in)
398 AM_CONDITIONAL(RPA_ENABLE, test "$with_RPA" = yes)
400 ### use option --enable-NTLM to compile in the NTLM support
402 [ --enable-NTLM compile in NTLM authentication support],
403 [with_NTLM=$enableval],
405 test "$with_NTLM" = "yes" && AC_DEFINE(NTLM_ENABLE,1,Define if you want NTLM authentication)
407 ### use option --enable-SDPS to compile in the SDPS support
409 [ --enable-SDPS compile in SDPS protocol support],
410 [with_SDPS=$enableval],
412 if test "$with_SDPS" = yes ; then
413 if test "$with_POP3" != yes ; then
414 AC_MSG_WARN([SDPS cannot be enabled with POP3 disabled. Disabling SDPS.])
417 AC_DEFINE(SDPS_ENABLE,1,Define if you want SDPS support compiled in)
420 if test "$with_POP3" != yes && test "$with_POP2" != yes \
421 && test "$with_IMAP" != yes ; then
422 AC_MSG_ERROR([You must enable at least one of POP2, POP3 and IMAP.])
425 ### use option --enable-opie to compile in the OPIE support
427 [ --enable-opie support OTP through the OPIE library],
428 [ AC_CHECK_HEADER(opie.h,, [AC_MSG_ERROR(cannot find <opie.h>, which is required for OPIE support.)])
429 AC_CHECK_LIB(opie,opiegenerator,, [AC_MSG_ERROR(cannot find libopie, which is required for OPIE support.)])
430 with_opie=$enableval],
432 test "$with_opie" = "yes" && AC_DEFINE(OPIE_ENABLE,1,Define if you want OPIE support compiled in)
434 AC_SEARCH_LIBS(getaddrinfo, inet6, [AC_DEFINE(HAVE_GETADDRINFO,1,[define to 1 if you have the getaddrinfo function])])
435 AC_CHECK_FUNCS(getnameinfo inet_ntop)
436 AM_CONDITIONAL(NEED_GETADDRINFO, test "$ac_cv_search_getaddrinfo" != "none required")
437 AM_CONDITIONAL(NEED_GETNAMEINFO, test "$ac_cv_func_getnameinfo" != yes)
439 dnl Check if getaddrinfo is async-signal-safe - most implementations aren't
440 if test "$ac_cv_search_getaddrinfo" = "none required" ; then
441 AC_MSG_CHECKING(if your getaddrinfo is async-signal-safe)
443 dnl we have getaddrinfo() - check if the OS is known to have a async-signal-safe implementation
445 darwin9*) gai_ts=yes ;;
446 linux*) gai_ts=yes ;;
447 freebsd5.5|freebsd6*|freebsd7*) gai_ts=yes ;;
448 solaris2.8|solaris2.9|solaris2.10) gai_ts=yes ;;
450 AC_MSG_RESULT($gai_ts)
451 if test $gai_ts = yes ; then
452 AC_DEFINE(GETADDRINFO_ASYNCSAFE, 1, [define to 1 if you know your getaddrinfo function is async-signal-safe])
456 # This version of the Kerberos 4 and 5 options addresses the follwing issues:
458 # * Build correctly under Heimdal kerberos if it is compiled with db2 and
459 # OpenSSL support (Debian's is)
460 # * Build the kerberos.c stuff (KPOP) only for kerberosIV, to avoid breakage.
461 # I don't know if this is 100% correct, but now at least IMAP and POP3
462 # behave the same way regarding kerberosV.
463 # * Build without any fuss for both kerberosIV and V at the same time.
464 # * Move all the kerberos header mess to kerberos.h, and #include that
465 # in driver.c and kerberos.c.
467 # Tested using the Heimdal Kerberos V libs, Kungliga Tekniska Högskolan (the
468 # Royal Institute of Technology in Stockholm, Sweden)'s kerberos IV libs, and
469 # the MIT reference implementation of KerberosV (all as packaged in Debian).
471 ### use option --with-kerberos5=DIR to point at a Kerberos 5 directory
472 ### make sure --with-ssl is run before --with-kerberos* !
473 AC_ARG_WITH(kerberos5,
474 [ --with-kerberos5=DIR point fetchmail compilation at a Kerberos 5 directory],
476 if test "$with_kerberos5" != "no"
478 # Check for a OpenBSD special case
479 if test "$with_kerberos5" = "yes" && ( test `uname` = "OpenBSD" )
481 AS_MESSAGE(checking kerberosV for OpenBSD...)
482 AC_DEFINE(HEIMDAL,1,Define if you have HEIMDAL kerberos 5)
483 AC_DEFINE(KERBEROS_V5,1,Define if you have Kerberos V5)
484 CEFLAGS="$CEFLAGS -I/usr/include/kerberosV"
485 LIBS="$LIBS -lasn1 -lkrb5 -lcom_err -lkafs"
486 elif krb5-config 2> /dev/null >/dev/null ; then
487 krb5_prefix=`krb5-config --prefix krb5`
488 AC_MSG_RESULT([krb5-config points to kerberosV under $krb5_prefix])
489 if test -f ${krb5_prefix}/include/et/com_err.h && \
490 ! test -f ${krb5_prefix}/include/com_err.h ; then
491 CEFLAGS="$CEFLAGS -I${krb5_prefix}/include/et"
494 CEFLAGS="$CEFLAGS `krb5-config --cflags krb5`"
495 LIBS="$LIBS `krb5-config --libs krb5`"
496 AC_DEFINE(KERBEROS_V5)
498 if test "$with_kerberos5" != "yes"
500 LDEFLAGS="$LDEFLAGS -L${with_kerberos5}/lib"
501 searchdirs="$with_kerberos5"
503 searchdirs="/usr/kerberos /usr/local/krb5 /usr/athena /usr"
506 for dir in $searchdirs
507 do AC_MSG_CHECKING([for Kerberos V in $dir])
508 if test -f "$dir/include/krb5.h" || test -f "$dir/include/krb5/krb5.h"
510 if test -d "$dir/include/krb5" ; then CPFLAGS="$CPFLAGS -I$dir/include/krb5" ; fi
512 if test -f "$dir/include/roken.h" || test -f "$dir/include/krb5/roken.h"
514 ac_krblibs="-lasn1 -lroken -lcom_err"
515 AC_MSG_RESULT([Heimdal found])
516 dnl Attempt to detect if we need to -ldb2 to link Heimdal
517 dnl we assume we do if it is available
518 AC_CHECK_LIB(db2, db_open, ac_krblibs="$ac_krblibs -ldb2", [],
520 AC_CHECK_LIB(des, des_string_to_key, libk5crypto=-ldes,
521 AC_CHECK_LIB(ssl, MD5_Init, [],
522 AC_MSG_ERROR([DES libraries not found. Try adding --with-ssl to enable OpenSSL support]),
523 ${LDEFLAGS} ${ac_krblibs}),
524 ${LDEFLAGS} ${ac_krblibs})
527 AC_MSG_RESULT([found])
528 ac_krblibs="-lcom_err"
530 krb5_des_string_to_key,
531 libk5crypto=-lcrypto,
532 AC_CHECK_LIB(k5crypto,
533 krb5_des_string_to_key,
534 libk5crypto=-lk5crypto,
535 AC_MSG_ERROR([Kerberos 5 DES libraries not found]),
536 ${LDEFLAGS} ${ac_krblibs}),
537 ${LDEFLAGS} ${ac_krblibs})
539 AC_CHECK_LIB(krb5, krb5_init_context,[],
541 ${LDEFLAGS} ${ac_krblibs})
542 AC_DEFINE(KERBEROS_V5)
543 test "$dir" != "/usr" && CEFLAGS="$CEFLAGS -I$dir/include"
544 LDEFLAGS="$LDEFLAGS -L$dir/lib"
545 LIBS="$LIBS $ac_krblibs $libk5crypto"
549 AC_MSG_RESULT([not found])
552 if test -z "$with_kerberos5" ; then
553 AC_MSG_ERROR([Kerberos 5 libraries not found])
557 ]) dnl --with-kerberos5=DIR
559 ### use option --with-kerberos=DIR to point at a Kerberos 4 directory
561 AC_ARG_WITH(kerberos,
562 [ --with-kerberos=DIR point fetchmail compilation at a Kerberos 4 directory],
564 if test "$with_kerberos" != "no"
566 AC_MSG_WARN([Kerberos IV support is obsolete. Use --with-kerberos5 if possible.])
567 # Check for a NetBSD/OpenBSD special case
568 if test "$with_kerberos" = "yes" && ( test `uname` = "NetBSD" || test `uname` = "OpenBSD" )
570 AS_MESSAGE(checking kerberosIV for `uname`...)
572 CEFLAGS="$CEFLAGS -I/usr/include/kerberosIV"
574 NetBSD) LIBS="$LIBS -lkrb -ldes -lroken -lcom_err" ;;
575 OpenBSD) LIBS="$LIBS -lkrb -ldes" ;;
577 elif krb4-config 2> /dev/null >/dev/null ; then
578 krb4_prefix=`krb4-config --prefix`
579 AC_MSG_RESULT([krb4-config points to kerberosIV under $krb4_prefix])
581 CEFLAGS="$CEFLAGS `krb4-config --cflags`"
582 LIBS="$LIBS `krb4-config --libs`"
584 elif krb5-config 2> /dev/null >/dev/null ; then
585 krb4_prefix=`krb5-config --prefix krb4`
586 AC_MSG_RESULT([krb5-config points to kerberosIV under $krb4_prefix])
587 if test -f ${krb4_prefix}/include/kerberosIV/krb.h ; then
588 AC_DEFINE(KERBEROS_V4_V5,1,Define if you have Kerberos V4 headers under a kerberosIV directory)
591 CEFLAGS="$CEFLAGS `krb5-config --cflags krb4`"
592 LIBS="$LIBS `krb5-config --libs krb4`"
595 #we need to detect when we're building under a kerberosV compatibility
597 if test "$with_kerberos" != "yes" ; then
598 searchdirs="$with_kerberos"
600 searchdirs="$with_kerberos5 /usr/kerberos /usr/kerberosIV /usr/athena /usr"
603 ac_saveLDFLAGS="$LDFLAGS"
604 for dir in $searchdirs
606 AC_MSG_CHECKING([for Kerberos IV in $dir])
607 if test -f "$dir/include/krb.h" || test -f "$dir/include/krb4.h" \
608 || test -f "$dir/include/kerberosIV/krb.h"
610 AC_MSG_RESULT([found])
612 AC_MSG_RESULT([not found])
616 if test -f "$with_kerberos5/roken.h" ; then
617 AC_CHECK_LIB(45, krb_mk_req)
619 LDFLAGS="-L$dir/lib $ac_saveLDFLAGS"
620 if test `uname` = "FreeBSD"; then
621 AC_SEARCH_LIBS(_ossl_old_des_string_to_key, [des425 des crypto], [], continue)
623 AC_SEARCH_LIBS(des_string_to_key, [crypto], [], continue)
625 AC_SEARCH_LIBS(krb_realmofhost, [krb4 krb], [], continue)
627 if test -f "$dir/include/kerberosIV/krb.h" ; then
628 dir="$dir/include/kerberosIV"
633 test -f "$with_kerberos5/roken.h" && AC_DEFINE(HEIMDAL)
634 test "$dir" != "/usr/include" && CEFLAGS="$CEFLAGS -I$dir"
635 LDEFLAGS="$LDEFLAGS -L$with_kerberos/lib"
638 if test -z "$with_kerberos" ; then
639 AC_MSG_ERROR([Kerberos 4 libraries not found])
641 LDFLAGS="$ac_saveLDFLAGS"
644 ]) dnl --with-kerberos=DIR
645 if test "$KERBEROS_V4" = 1 ; then
646 AC_DEFINE(KERBEROS_V4,1,Define if you have Kerberos V4)
648 AM_CONDITIONAL(KERBEROS_V4_ENABLE, test "$KERBEROS_V4" = 1)
650 ### use option --with-ssl to compile in the SSL support
652 [ --with-ssl=[DIR] enable SSL support using libraries in DIR],
655 test "$with_ssl" != "no" && AC_DEFINE(SSL_ENABLE,1,Define if you want SSL support compiled in)
657 if test "$with_ssl" = "yes"
659 # User didn't specify an SSL location. Let's look at some common
660 # directories where SSL has been found in the past and try and auto
661 # configure for SSL. OpenSSL determination will be made later.
662 # This will screw up if an OpenSSL install is located in a later
663 # directory than an older SSLeay install, but the user should fix that
664 # anyways and he can override on the configure line.
665 # Just testing for directories is not sufficient, /usr exists on
677 if test -r "$ac_dir/include/openssl/ssl.h" ; then
684 if test -n "$with_ssl" -a "$with_ssl" != "no"
686 # With the autoconfigure above, the only time this is going to be
687 # true is going to be when we could not find the headers. If they
688 # are not in system standard locations, we are going to be broken.
689 if test "$with_ssl" = "yes"
691 # Let's just define the standard location for the SSLeay root
692 with_ssl="/usr/local/ssl"
694 if test -r $with_ssl/include/openssl/ssl.h
696 ### ssl.h found under openssl. Use openssl configuration preferentially,
697 AC_MSG_NOTICE(Enabling OpenSSL support in $with_ssl.)
698 test "$with_ssl" != "/usr" && CEFLAGS="$CEFLAGS -I$with_ssl/include"
699 ### In Red Hat 9, this file includes a reference to <krb5.h>, so we
700 ### force the Kerberos direcory onto the include path so it will build.
701 CEFLAGS="$CEFLAGS -I/usr/kerberos/include"
702 ### OpenBSD comes with ssl headers
704 AC_MSG_ERROR([SSL support enabled, but OpenSSL not found])
706 LDEFLAGS="$LDEFLAGS -L$with_ssl/lib"
707 LIBS="$LIBS -lssl -lcrypto"
708 dnl check if -ldl is needed
709 AC_MSG_CHECKING([for additional library dependencies of SSL])
712 for i in "" "-ldl" ; do
713 LIBS="$LDEFLAGS $save_LIBS $i"
714 AC_LINK_IFELSE([AC_LANG_PROGRAM(,[SSL_library_init()])],[found=1; break])
716 if test $found = 0 ; then
717 AC_MSG_RESULT([error])
718 AC_MSG_ERROR([cannot link with SSL - check config.log])
721 if test "$i" = "" ; then i="(none)" ; fi
723 dnl XXX FIXME: use pkg-config if available!
724 AC_DEFINE(SSL_ENABLE)
726 AC_MSG_NOTICE(Disabling SSL support.)
729 ### use option --with-socks=DIR to point at SOCKS library
731 [ --with-socks[=DIR] add built-in SOCKS firewall access],
733 if test "$with_socks" != no
735 if test "$with_socks" != yes
737 LDEFLAGS="$LDEFLAGS -L$with_socks"
739 AC_CHECK_LIB(socks, Rconnect,,
740 AC_MSG_ERROR([could not find libsocks which is needed for built-in SOCKS support]))
742 AC_DEFINE(HAVE_SOCKS,1,Define if you want built-in SOCKS support)
743 CEFLAGS="$CEFLAGS -Dconnect=Rconnect -Dgetsockname=Rgetsockname -Dbind=Rbind -Daccept=Raccept -Dlisten=Rlisten -Dselect=Rselect"
747 ### use option --with-socks5=DIR to point at SOCKS library
749 [ --with-socks5[=DIR] add built-in SOCKS5 firewall access],
751 if test "$with_socks5" != no
753 if test "$with_socks5" != yes
755 LDEFLAGS="$LDEFLAGS -L$with_socks5"
757 ac_savedLDFLAGS="$LDFLAGS"
758 LDFLAGS="$LDEFLAGS $LDFLAGS"
759 AC_CHECK_LIB(socks5, SOCKSconnect,,
760 AC_MSG_ERROR([could not find libsocks5 which is needed for built-in SOCKS5 support]))
761 AC_DEFINE(HAVE_SOCKS)
762 CEFLAGS="$CEFLAGS -Dconnect=SOCKSconnect -Dgetsockname=SOCKSgetsockname -Dbind=SOCKSbind -Daccept=SOCKSaccept -Dlisten=SOCKSlisten -Dselect=SOCKSselect -Drecvfrom=SOCKSrecvfrom -Dsendto=SOCKSsendto -Drecv=SOCKSrecv -Dsend=SOCKSsend -Dread=SOCKSread -Dwrite=SOCKSwrite -Drresvport=SOCKSrresvport -Dshutdown=SOCKSshutdown -Dlisten=SOCKSlisten -Dclose=SOCKSclose -Ddup=SOCKSdup -Ddup2=SOCKSdup2 -Dgethostbyname=SOCKSgethostbyname"
763 AC_CHECK_FUNC(SOCKSfclose, [CFLAGS="$CFLAGS -Dfclose=SOCKSfclose"])
764 LDFLAGS="$ac_savedLDFLAGS"
767 ACX_WHICH_GETHOSTBYNAME_R
769 ### use option --with-hesiod=DIR to point at a HESIOD directory
770 AC_ma_SEARCH_PACKAGE(hesiod, hesiod_getmailhost, /usr/athena /usr /usr/local,hesiod, hesiod.h)
772 ### use option --with-gssapi=DIR to compile in GSSAPI support
774 [ --with-gssapi[=DIR] compile in GSSAPI support using libraries in DIR],
776 if test "$with_gssapi" != "no"
778 if test "$with_gssapi" = "yes" -a -n "$with_kerberos5"
780 with_gssapi=$with_kerberos5
783 if test "$with_gssapi" != "yes" -a -n "$with_gssapi"
785 CFLAGS="$CFLAGS -I$with_gssapi/include"
786 LDFLAGS="$LDFLAGS -L$with_gssapi/lib"
789 dnl obtain gssapi default libs
790 if krb5-config --libs gssapi 2>/dev/null >/dev/null ; then
791 LIBS="$LIBS `krb5-config --libs gssapi`"
793 AC_CHECK_LIB(gss, gss_check_version, LIBS="$LIBS -lgss", nogss=t)
797 if test "$with_gssapi" = yes ; then
800 if test -f "$with_gssapi/include/roken.h" -o -f "$with_gssapi/include/krb5/roken.h"
802 # have roken.h, assume Heimdal
804 NetBSD) LIBS="$LIBS -lkrb5" ;;
805 *) LIBS="$LIBS -lkrb5 -lasn1 -ldes -lroken -ldb -ldl" ;;
807 AC_CHECK_LIB(gssapi, gss_init_sec_context,LIBS="$LIBS -lgssapi",
808 AC_MSG_ERROR([could not find libgssapi which is needed for GSSAPI support]), )
811 # no roken.h, assume MIT
812 AC_CHECK_LIB(gssapi_krb5, gss_init_sec_context,LIBS="$LIBS -lgssapi_krb5",
813 AC_MSG_ERROR([could not find libgssapi_krb5 which is needed for GSSAPI support]), -lkrb5)
817 AC_DEFINE(GSSAPI,1,Define if you want GSSAPI authentication)
818 if test "$with_gssapi" != yes ; then
819 CPPFLAGS="-I$with_gssapi/include"
821 AC_CHECK_HEADERS(gss.h gssapi.h gssapi/gssapi.h gssapi/gssapi_generic.h)
822 if test "$ac_cv_header_gssapi_h" = "yes"; then
823 AC_EGREP_HEADER(GSS_C_NT_HOSTBASED_SERVICE, gssapi.h, AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE,1,Define if you have MIT kerberos))
825 AC_EGREP_HEADER(GSS_C_NT_HOSTBASED_SERVICE, gssapi/gssapi.h, AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE))
833 dnl ,------------------------------------------------------------------
834 dnl Check if we need TRIO
836 if test "$FORCE_TRIO" = "yes" ; then
838 ac_cv_func_vsnprintf=no
839 ac_cv_func_snprintf=no
841 if test "x$ac_cv_func_snprintf" != "xyes" ; then
842 AC_DEFINE(snprintf, trio_snprintf,
843 [Define to trio_snprintf if your system lacks snprintf])
846 if test "x$ac_cv_func_vsnprintf" != "xyes" ; then
847 AC_DEFINE(vsnprintf, trio_vsnprintf,
848 [Define to trio_vsnprintf if your system lacks vsnprintf])
851 AM_CONDITIONAL(NEED_TRIO, test "$needtrio" = 1)
853 dnl TRIO IEEE compiler option for Alpha
855 if test "$needtrio" = 1 ; then
856 AC_MSG_CHECKING(for IEEE compilation options)
857 AC_CACHE_VAL(ac_cv_ieee_option, [
859 #if !(defined(__alpha) && (defined(__DECC) || defined(__DECCXX) || (defined(__osf__) && defined(__LANGUAGE_C__))) && (defined(VMS) || defined(__VMS)))
860 # error "Option needed"
862 ],ac_cv_ieee_option="/IEEE_MODE=UNDERFLOW_TO_ZERO/FLOAT=IEEE",
864 #if !(defined(__alpha) && (defined(__DECC) || defined(__DECCXX) || (defined(__osf__) && defined(__LANGUAGE_C__))) && !(defined(VMS) || defined(__VMS)) && !defined(_CFE))
865 # error "Option needed"
867 ],ac_cv_ieee_option="-ieee",
869 #if !(defined(__alpha) && (defined(__GNUC__) && (defined(__osf__) || defined(__linux__))))
870 # error "Option needed"
872 ],ac_cv_ieee_option="-mieee",
873 ac_cv_ieee_option="none"
878 AC_MSG_RESULT($ac_cv_ieee_option)
879 if test $ac_cv_ieee_option != none; then
880 CFLAGS="${CFLAGS} ${ac_cv_ieee_option}"
883 dnl ----------------------------------------------------------------'
885 AC_CONFIG_FILES([Makefile m4/Makefile po/Makefile.in genlsm.sh])
889 dnl comment-start: "dnl "
891 dnl comment-start-skip: "\\bdnl\\b\\s *"
892 dnl compile-command: "make configure config.h.in"