diff options
-rw-r--r-- | configure.ac | 693 |
1 files changed, 693 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac new file mode 100644 index 00000000..730dad70 --- /dev/null +++ b/configure.ac @@ -0,0 +1,693 @@ +dnl Autoconfigure input file for fetchmail +dnl Eric S. Raymond <esr@thyrsus.com> +dnl +dnl Process this file with autoconf to produce a configure script. +dnl + +AC_INIT([fetchmail],[6.2.6]) +AC_CONFIG_SRCDIR([fetchmail.h]) +AC_CONFIG_HEADERS([config.h]) +AC_CONFIG_LIBOBJ_DIR([.]) + +dnl we may need a newer automake version - the oldest tested is 1.7 +AC_PREREQ(2.59) +AM_INIT_AUTOMAKE(1.5 foreign no-installinfo) + +AC_PROG_AWK +AC_PROG_CC +AC_PROG_INSTALL +AC_PROG_CPP dnl Later checks need this. +AM_PROG_CC_C_O +AC_AIX +AC_ISC_POSIX +AC_MINIX +AC_HEADER_STDC +AC_HEADER_TIME +AC_TYPE_SIZE_T +AC_TYPE_PID_T +AC_TYPE_SIGNAL +AC_CHECK_HEADERS([unistd.h termios.h termio.h sgtty.h stdarg.h \ + alloca.h sys/itimer.h fcntl.h sys/fcntl.h memory.h sys/wait.h \ + sys/shm.h arpa/inet.h arpa/nameser.h netinet/in.h net/socket.h \ + sys/select.h sys/time.h]) +AC_CHECK_HEADERS([resolv.h],,,[ +#include <sys/types.h> +#ifdef HAVE_NETINET_IN_H +#include <netinet/in.h> +#endif +#ifdef HAVE_ARPA_NAMESER_H +#include <arpa/nameser.h> +#endif +]) + +AC_C_CONST dnl getopt needs this. + +AM_PROG_LEX +AC_PROG_MAKE_SET +AC_PROG_YACC + +AC_FUNC_ALLOCA + +# Check for LynxOS special case: -lbsd needed (at least on 2.3.0) and -s +# not working. +if test `uname` = "LynxOS" +then + echo "Adding -lbsd to standard libraries" + LIBS="$LIBS -lbsd" + LDFLAGS="" + echo "Prepending standard include path to gcc flags" + CPFLAGS="-I/usr/include" +fi + +# Check for FreeBSD special case: more libs needed +if test `uname` = "FreeBSD" +then + echo "Adding -lmd -lkvm -lcom_err to standard libraries" + LIBS="$LIBS -lmd -lkvm -lcom_err" +fi + +# Check for Rhapsody special case: it doesn't like -s +if test `uname` = "Rhapsody" +then + echo "Removing -s load flag" + LDFLAGS=`echo $LDFLAGS | sed "s/-s //"` +fi + +dnl i18n +AM_GNU_GETTEXT(no-libtool) +AM_GNU_GETTEXT_VERSION(0.13) +dnl end i18n + +# Under sysV68, socket and friends are provided by the C library. +# -linet does not provide socket, but causes multiple definition +# errors at link-time. It is thus better to only use the C library. +# So don't add -linet to the link list unless it's necessary +AC_CHECK_FUNC(socket, + AC_MSG_RESULT(using libc's socket), + AC_CHECK_LIB(socket,socket) + AC_CHECK_LIB(inet,socket)) + +# The condition in this test copes with the presence of inet_addr in libc6. +AC_CHECK_FUNC(inet_addr, + AC_MSG_RESULT(using libc's inet_addr), + AC_CHECK_LIB(nsl,inet_addr)) + +dnl Port hack for Interactive UNIX System V/386 Release 3.2 +AC_CHECK_LIB(cposix, strchr, + [DEFS="$DEFS -D_SYSV3" + LIBS="$LIBS -lcposix"]) + +dnl Port hack for Sparc/NetBSD-1.5 +AC_CHECK_LIB(intl, gettext, + [LIBS="$LIBS -lintl"]) + +AC_REPLACE_FUNCS([strstr strcasecmp memmove]) + +AC_CHECK_FUNC(MD5Init, AC_DEFINE(HAVE_MD5,1,Define if you have md5 in libc), + [AC_LIBSOURCE(md5c.c) + EXTRAOBJ="$EXTRAOBJ md5c.\$(OBJEXT)"]) + +AC_CHECK_FUNC(getopt_long, AC_DEFINE(HAVE_GETOPT_LONG), + [AC_LIBSOURCES([getopt.c, getopt1.c]) + EXTRAOBJ="$EXTRAOBJ getopt.\$(OBJEXT) getopt1.\$(OBJEXT)"]) + +AC_FUNC_VPRINTF +if test -n "$ALLOCA" +then + EXTRAOBJ="$EXTRAOBJ alloca.\$(OBJEXT)" +fi + +AC_SUBST(EXTRAOBJ) + +AC_CHECK_FUNCS(tcsetattr stty setsid geteuid seteuid gethostbyname \ + res_search herror strrchr strerror setlinebuf syslog \ + snprintf vprintf vsnprintf vsyslog \ + atexit inet_aton strftime setrlimit socketpair sigprocmask sigaction \ + getopt_long strdup) + +# Under Red Hat 4.0 (and many other Linuxes) -lresolv is seriously flaky +# and breaks gethostbyname(2). It's better to use the bind stuff in the C +# library. So don't add -lresolv to the link list unless it's necessary +# (It will be necessary when using GNU libc6). +AC_CHECK_FUNC(res_search, + AC_MSG_RESULT(using libc's resolver functions), + AC_CHECK_LIB(resolv,res_search, + [AC_DEFINE(HAVE_RES_SEARCH) AC_MSG_RESULT(found resolver functions in libresolv); LIBS="$LIBS -lresolv"], AC_MSG_RESULT(no resolver calls found))) + +dnl Check for libcrypt -- it may live in libc or libcrypt, as on IRIX +AC_CHECK_FUNC(crypt, , AC_CHECK_LIB(crypt,crypt)) + +dnl Check for RSA refersence library in case we're using SSL +AC_CHECK_LIB(rsaref, RSAPublicDecrypt) + +dnl AC_FUNC_SETVBUF_REVERSED + +dnl Check for usable void pointer type +AC_MSG_CHECKING(use of void pointer type) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[char *p; + void *xmalloc(); + p = (char *) xmalloc(1); + ]])],[AC_DEFINE(HAVE_VOIDPOINTER,1,[Define if your C compiler allows void * as a function result]) AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)]) + +dnl Check for ANSI volatile +AC_C_VOLATILE + +dnl Check out the wait reality. We have to assume sys/wait.h is present. +AC_CHECK_FUNCS(waitpid wait3) +AC_MSG_CHECKING(for union wait); +AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h> +#include <sys/wait.h>]], [[union wait status; int pid; pid = wait (&status); +#ifdef WEXITSTATUS +/* Some POSIXoid systems have both the new-style macros and the old + union wait type, and they do not work together. If union wait + conflicts with WEXITSTATUS et al, we don't want to use it at all. */ +if (WEXITSTATUS (status) != 0) pid = -1; +#endif +#ifdef HAVE_WAITPID +/* Make sure union wait works with waitpid. */ +pid = waitpid (-1, &status, 0); +#endif +]])],[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)]) + +AC_MSG_CHECKING(sys_siglist declaration in signal.h or unistd.h) +AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <signal.h> +/* NetBSD declares sys_siglist in <unistd.h>. */ +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#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)]) + +# Find the right directory to put the root-mode PID file in +for dir in "/var/run" "/etc" +do + if test -d $dir + then + break; + fi +done +AC_MSG_RESULT(root-mode pid file will go in $dir) +AC_DEFINE_UNQUOTED(PID_DIR, "$dir", directory for PID lock files) + +# We may have a fallback MDA available in case the socket open to the +# local SMTP listener fails. Best to use procmail for this, as we know +# it won't try delivering through local SMTP and cause a mail loop. +# Sendmail without the -t option to use the message headers will work too, +# not just for sendmail itself but for workalikes like exim. +# +# Note1: A disadvantage of using procmail is that local alias expansion +# according to /etc/aliases won't get done if we fall back. This doesn't +# matter in single-drop mode. +# +# Note2: it would be a very bad idea to use any MDA that doesn't return +# a refuse-to-deliver status on disk- or process-table-full +# conditions; mail could get lost that way. Sendmail and all of the MDAs +# like exim that might be lurking under a sendmail alias) do the right +# thing in this circumstance. Matthias Andree warns that procmail does +# not. +# +# Note3: Defalt value of fallback is now off. Matthias writes: +# +# 1. there is no way to predict when the fallback is used. With some MTAs +# (such as those limiting load average), outer circumstances can cause +# the fallback to kick in. +# +# 2. the fallback changes fetchmail behaviour in unpredictable ways. It's +# not only about alias expansion, .forwards to special filters won't +# work, mail may end up in a different place (users claim "mail loss" +# for that). +# +# 3. The claim procmail did the right thing with its exit codes is plain +# wrong. I've seen procmail exit with code 1 when it should have exited +# with code 75, like, configuration errors. Procmail is a dangerous +# beast and is best replaced by maildrop. +# +# 4. if multiple choices exist (like procmail and maildrop), fetchmail +# cannot tell which one it should choose. Say, your MTA is configured +# to use maildrop to deliver to user's mailboxes, if fetchmail then +# chooses procmail, this is plain wrong. +# + +AC_PATH_PROG(procmail, procmail, "", $PATH:/usr/sbin) +AC_PATH_PROG(sendmail, sendmail, "", $PATH:/usr/sbin:/usr/lib) +AC_PATH_PROG(maildrop, maildrop, "", $PATH:/usr/local/bin) + +### use option --disable-fallback to disable fallback MDA +### use option --enable-fallback=procmail or +### --enable-fallback=sendmail to select +AC_ARG_ENABLE(fallback, + [ --enable-fallback=procmail enable procmail as fallback + --enable-fallback=sendmail enable /usr/sbin/sendmail as fallback + --enable-fallback=maildrop enable maildrop as fallback + --enable-fallback=no disable fallback],,[enable_fallback=no]) + +case "$enable_fallback" in + sendmail) if test -z "$sendmail" ; then + AC_MSG_ERROR([Sendmail selected as fallback, but not found]) + #not reached + fi + AC_DEFINE_UNQUOTED(FALLBACK_MDA, "$sendmail -i %T", Fallback MTA to use if defined) + echo "Will use $sendmail as fallback MDA." + ;; + procmail) if test -z "$procmail" ; then + AC_MSG_ERROR([procmail selected as fallback, but not found]) + #not reached + fi + AC_DEFINE_UNQUOTED(FALLBACK_MDA, "$procmail -d %T") + echo "Will use $procmail as fallback MDA." + ;; + maildrop) if test -z "$maildrop" ; then + AC_MSG_ERROR([maildrop selected as fallback, but not found]) + #not reached + fi + AC_DEFINE_UNQUOTED(FALLBACK_MDA, "$maildrop -d %T") + echo "Will use $maildrop as fallback MDA." + ;; + no|unset) echo "Will not use a fallback MDA" + ;; + auto|yes|set) if test -n "$sendmail" ; then + AC_DEFINE_UNQUOTED(FALLBACK_MDA,"$sendmail -i %T") + echo "Will use $sendmail as fallback MDA." + else + echo "No fallback MDA available. procmail and maildrop are not eligible" + echo "for automatic fallback MDA configuration for reliability reasons." + fi + ;; + *) AC_MSG_ERROR([unkown value for --enable-fallback given: $enable_fallback]) + #notreached + ;; +esac + +AC_CHECK_SIZEOF(short) +AC_CHECK_SIZEOF(int) +AC_CHECK_SIZEOF(long) + +### use option --enable-POP2 to compile in the POP2 support +AC_ARG_ENABLE(POP2, + [ --enable-POP2 compile in POP2 protocol support (obsolete)], + [with_POP2=$enableval], + [with_POP2=no]) +test "$with_POP2" = "yes" && AC_DEFINE(POP2_ENABLE,1,Define if you want POP2 support compiled in) + +### use option --disable-POP3 to omit the POP3 support +AC_ARG_ENABLE(POP3, + [ --disable-POP3 don't compile in POP3 protocol support], + [with_POP3=$enableval], + [with_POP3=yes]) +test "$with_POP3" = "yes" && AC_DEFINE(POP3_ENABLE,1,Define if you want POP3 support compiled in) + +### use option --disable-IMAP to omit the IMAP support +AC_ARG_ENABLE(IMAP, + [ --disable-IMAP don't compile in IMAP protocol support], + [with_IMAP=$enableval], + [with_IMAP=yes]) +test "$with_IMAP" = "yes" && AC_DEFINE(IMAP_ENABLE,1,"Define if you want IMAP support compiled in") + +### use option --disable-ETRN to omit the ETRN support +AC_ARG_ENABLE(ETRN, + [ --disable-ETRN don't compile in ETRN protocol support], + [with_ETRN=$enableval], + [with_ETRN=yes]) +test "$with_ETRN" = "yes" && AC_DEFINE(ETRN_ENABLE,1,Define if you want ETRN support compiled in.) + +### use option --disable-ODMR to omit the ODMR support +AC_ARG_ENABLE(ODMR, + [ --disable-ODMR don't compile in ODMR protocol support], + [with_ODMR=$enableval], + [with_ODMR=yes]) +test "$with_ODMR" = "yes" && AC_DEFINE(ODMR_ENABLE,1,Define if you want ODMR support compiled in) + +### use option --enable-RPA to compile in the RPA support +AC_ARG_ENABLE(RPA, + [ --enable-RPA compile in RPA protocol support], + [with_RPA=$enableval], + [with_RPA=no]) +test "$with_RPA" = "yes" && AC_DEFINE(RPA_ENABLE,1,Define if you want RPA support compiled in) + +### use option --enable-NTLM to compile in the NTLM support +AC_ARG_ENABLE(NTLM, + [ --enable-NTLM compile in NTLM authentication support], + [with_NTLM=$enableval], + [with_NTLM=no]) +test "$with_NTLM" = "yes" && AC_DEFINE(NTLM_ENABLE,1,Define if you want NTLM authentication) + +### use option --enable-SDPS to compile in the SDPS support +AC_ARG_ENABLE(SDPS, + [ --enable-SDPS compile in SDPS protocol support], + [with_SDPS=$enableval], + [with_SDPS=no]) +test "$with_SDPS" = "yes" && AC_DEFINE(SDPS_ENABLE,1,Define if you want SDPS support compiled in) + +### use option --enable-opie to compile in the OPIE support +AC_ARG_ENABLE(opie, + [ --enable-opie support OTP through the OPIE library], + [ AC_CHECK_HEADER(opie.h,, [echo 'configure: cannot find <opie.h>, which is required for OPIE support.'; exit 1]) + AC_CHECK_LIB(opie,opiegenerator,, [echo 'configure: cannot find libopie, which is required for OPIE support.'; exit 1]) + with_opie=$enableval], + [with_opie=no]) +test "$with_opie" = "yes" && AC_DEFINE(OPIE_ENABLE,1,Define if you want OPIE support compiled in) + +AC_ARG_ENABLE(inet6, + [ --enable-inet6 support IPv6 (requires the inet6-apps library)], + + [ AC_CHECK_FUNC(getaddrinfo, [with_inet6=yes], + [ LDFLAGS="$LDFLAGS -L/usr/inet6/lib"; + AC_CHECK_LIB(inet6, getaddrinfo, [with_inet6=yes + LIBS="$LIBS -linet6"], + [ echo 'configure: cannot find proper glibc version or libinet6,'; + echo ' which is required for IPv6 support.'; + exit 1]) ] )], + [with_inet6=no]) +test "$with_inet6" = "yes" && AC_DEFINE(INET6_ENABLE,1,Define if you want IPv6 support compiled in) + +AC_CHECK_FUNCS(inner_connect) + +AC_ARG_ENABLE(netsec, + [ --enable-netsec support network security (requires inet6-apps library)], + [ unset ac_cv_lib_inet6_net_security_strtorequest; AC_CHECK_LIB(inet6, net_security_strtorequest,, + [ unset ac_cv_lib_inet6_net_security_strtorequest; + LDFLAGS="$LDFLAGS -L/usr/inet6/lib"; + AC_CHECK_LIB(inet6, net_security_strtorequest,, + [ echo 'configure: cannot find net_security_strtorequest in libinet6, which is required'; + echo ' for network security support. Either it does not exist, or it was'; + echo ' not built with network security support enabled.'; + exit 1]) ]) + unset ac_cv_header_net_security_h; AC_CHECK_HEADER(net/security.h,, + [ unset ac_cv_header_net_security_h; + CPPFLAGS="$CPPFLAGS -I/usr/inet6/include"; + CFLAGS="$CFLAGS -I/usr/inet6/include"; AC_CHECK_HEADER(net/security.h,, + [ echo 'configure: cannot find <net/security.h>, which is required'; + echo ' for network security support.'; + exit 1]) ]) ] + [with_netsec=no]) +test "$with_netsec" = "yes" && AC_DEFINE(NET_SECURITY,1,Define if you want network security support compiled in) + +# This version of the Kerberos 4 and 5 options addresses the follwing issues: +# +# * Build correctly under Heimdal kerberos if it is compiled with db2 and +# OpenSSL support (Debian's is) +# * Build the kerberos.c stuff (KPOP) only for kerberosIV, to avoid breakage. +# I don't know if this is 100% correct, but now at least IMAP and POP3 +# behave the same way regarding kerberosV. +# * Build without any fuss for both kerberosIV and V at the same time. +# * Move all the kerberos header mess to kerberos.h, and #include that +# in driver.c and kerberos.c. +# +# Tested using the Heimdal Kerberos V libs, Kungliga Tekniska Högskolan (the +# Royal Institute of Technology in Stockholm, Sweden)'s kerberos IV libs, and +# the MIT reference implementation of KerberosV (all as packaged in Debian). + +### use option --with-kerberos5=DIR to point at a Kerberos 5 directory +### make sure --with-ssl is run before --with-kerberos* ! +AC_ARG_WITH(kerberos5, + [ --with-kerberos5=DIR point fetchmail compilation at a Kerberos 5 +directory], +[ +if test "$with_kerberos5" != "no" +then +# Check for a OpenBSD special case +if test "$with_kerberos5" = "yes" && ( test `uname` = "OpenBSD" ) +then + AS_MESSAGE(checking kerberosV for OpenBSD...) + AC_DEFINE(HEIMDAL,1,Define if you have HEIMDAL kerberos 5) + AC_DEFINE(KERBEROS_V5,1,Define if you have Kerberos V5) + CEFLAGS="$CEFLAGS -I/usr/include/kerberosV" + LIBS="$LIBS -lasn1 -lkrb5 -lcom_err -lkafs" +else + if test "$with_kerberos5" != "yes" + then + LDEFLAGS="$LDEFLAGS -L${with_kerberos5}/lib" + searchdirs="$with_kerberos5" + else + searchdirs="/usr/kerberos /usr/local/krb5 /usr/athena /usr" + fi + with_kerberos5= + for dir in $searchdirs + do AC_MSG_CHECKING([for Kerberos V in $dir]) + if test -f "$dir/include/krb5.h" + then + ac_krblibs= + if test -f "$dir/include/roken.h" + then + ac_krblibs="-lasn1 -lroken -lcom_err" + AC_MSG_RESULT([Heimdal found]) + dnl Attempt to detect if we need to -ldb2 to link Heimdal + dnl we assume we do if it is available + AC_CHECK_LIB(db2, db_open, ac_krblibs="$ac_krblibs -ldb2", [], + ${LDEFLAGS}) + AC_CHECK_LIB(des, des_string_to_key, libk5crypto=-ldes, + AC_CHECK_LIB(ssl, MD5_Init, [], + AC_MSG_ERROR([DES libraries not found. Try adding --with-ssl to enable OpenSSL support]), + ${LDEFLAGS} ${ac_krblibs}), + ${LDEFLAGS} ${ac_krblibs}) + AC_DEFINE(HEIMDAL) + else + AC_MSG_RESULT([found]) + ac_krblibs="-lcom_err" + AC_CHECK_LIB(crypto, + krb5_des_string_to_key, + libk5crypto=-lcrypto, + AC_CHECK_LIB(k5crypto, + krb5_des_string_to_key, + libk5crypto=-lk5crypto, + AC_MSG_ERROR([Kerberos 5 DES libraries not found]), + ${LDEFLAGS} ${ac_krblibs}), + ${LDEFLAGS} ${ac_krblibs}) + fi + AC_CHECK_LIB(krb5, krb5_init_context,[], + continue, + ${LDEFLAGS} ${ac_krblibs}) + AC_DEFINE(KERBEROS_V5) + test "$dir" != "/usr" && CEFLAGS="$CEFLAGS -I$dir/include" + LDEFLAGS="$LDEFLAGS -L$dir/lib" + LIBS="$LIBS $ac_krblibs $libk5crypto" + with_kerberos5=$dir + break + else + AC_MSG_RESULT([not found]) + fi + done + if test -z "$with_kerberos5" ; then + AC_MSG_ERROR([Kerberos 5 libraries not found]) + fi +fi +fi +]) dnl --with-kerberos5=DIR + +### use option --with-kerberos=DIR to point at a Kerberos 4 directory +AC_ARG_WITH(kerberos, + [ --with-kerberos=DIR point fetchmail compilation at a Kerberos 4 +directory], +[ +if test "$with_kerberos" != "no" +then +# Check for a NetBSD/OpenBSD special case +if test "$with_kerberos" = "yes" && ( test `uname` = "NetBSD" || test `uname` = "OpenBSD" ) +then + AS_MESSAGE(checking kerberosIV for `uname`...) + AC_DEFINE(KERBEROS_V4,1,Define if you have Kerberos V4) + CEFLAGS="$CEFLAGS -I/usr/include/kerberosIV" + LIBS="$LIBS -lkrb -ldes" +else + #we need to detect when we're building under a kerberosV compatibility + #layer, btw... + if test "$with_kerberos" != "yes" ; then + searchdirs="$with_kerberos" + else + searchdirs="$with_kerberos5 /usr/kerberos /usr/kerberosIV /usr/athena/usr" + fi + with_kerberos= + ac_saveLDFLAGS="$LDFLAGS" + for dir in $searchdirs + do + AC_MSG_CHECKING([for Kerberos IV in $dir]) + if test -f "$dir/include/krb.h" || test -f "$dir/include/krb4.h" \ + || test -f "$dir/include/kerberosIV/krb.h" + then + AC_MSG_RESULT([found]) + else + AC_MSG_RESULT([not found]) + continue + fi + #Find libs + if test -f "$with_kerberos5/roken.h" ; then + AC_CHECK_LIB(45, krb_mk_req) + fi + LDFLAGS="-L$dir/lib $ac_saveLDFLAGS" + AC_SEARCH_LIBS(des_string_to_key, [des425 des], [], continue) + AC_SEARCH_LIBS(krb_realmofhost, [krb4 krb], [], continue) + with_kerberos="$dir" + if test -f "$dir/include/kerberosIV/krb.h" ; then + dir="$dir/include/kerberosIV" + else + dir="$dir/include" + fi + AC_DEFINE(KERBEROS_V4) + test -f "$with_kerberos5/roken.h" && AC_DEFINE(HEIMDAL) + test "$dir" != "/usr/include" && CEFLAGS="$CEFLAGS -I$dir" + LDEFLAGS="$LDEFLAGS -L$with_kerberos/lib" + break + done + if test -z "$with_kerberos" ; then + AC_MSG_ERROR([Kerberos 4 libraries not found]) + fi + LDFLAGS="$ac_saveLDFLAGS" +fi +fi +]) dnl --with-kerberos=DIR + +### use option --with-ssl to compile in the SSL support +AC_ARG_WITH(ssl, + [ --with-ssl=[DIR] enable SSL support using libraries in DIR], + [with_ssl=$withval], + [with_ssl=no]) +test "$with_ssl" != "no" && AC_DEFINE(SSL_ENABLE,1,Define if you want SSL support compiled in) + +if test "$with_ssl" = "yes" +then + # He didn't specify an SSL location. Let's look at some common + # directories where SSL has been found in the past and try and auto + # configure for SSL. OpenSSL determination will be made later. + # This will screw up if an OpenSSL install is located in a later + # directory than an older SSLeay install, but the user should fix that + # anyways and he can override on the configure line. + # Just testing for directories is not sufficient, /usr exists on + # all systems! + for ac_dir in \ + /usr/local/ssl \ + /usr/local \ + /usr/ssl \ + /usr \ + /local/ssl \ + /opt/ssl \ + ; \ + do + if test -r "$ac_dir/include/openssl/ssl.h" ; then + with_ssl=$ac_dir + break; + fi + done +fi + +if test -n "$with_ssl" -a "$with_ssl" != "no" +then + # With the autoconfigure above, the only time this is going to be + # true is going to be when we could not find the headers. If they + # are not in system standard locations, we are going to be broken. + if test "$with_ssl" = "yes" + then + # Let's just define the standard location for the SSLeay root + with_ssl="/usr/local/ssl" + fi + if test -r $with_ssl/include/openssl/ssl.h + then + ### ssl.h found under openssl. Use openssl configuration preferentially, + echo "Enabling OpenSSL support in $with_ssl" + test "$with_ssl" != "/usr" && CEFLAGS="$CEFLAGS -I$with_ssl/include" + ### In Red Hat 9, this file includes a reference to <krb5.h>, so we + ### force the Kerberos direcory onto the include path so it will build. + CEFLAGS="$CEFLAGS -I/usr/kerberos/include" + ### OpenBSD comes with ssl headers + else + AC_MSG_ERROR([SSL support enabled, but OpenSSL not found]) + fi + LDEFLAGS="$LDEFLAGS -L$with_ssl/lib" + LIBS="$LIBS -lssl -lcrypto" + AC_DEFINE(SSL_ENABLE) +else + echo 'Disabling SSL support...' +fi + +### use option --with-socks=DIR to point at SOCKS library +AC_ARG_WITH(socks, + [ --with-socks[=DIR] add built-in SOCKS firewall access], +[ +if test "$with_socks" != no +then + if test "$with_socks" != yes + then + LDEFLAGS="$LDEFLAGS -L$with_socks" + else + AC_CHECK_LIB(socks, Rconnect,, + AC_MSG_ERROR([could not find libsocks which is needed for built-in SOCKS support])) + fi + AC_DEFINE(HAVE_SOCKS,1,Define if you want built-in SOCKS support) + CEFLAGS="$CEFLAGS -Dconnect=Rconnect -Dgetsockname=Rgetsockname -Dbind=Rbind -Daccept=Raccept -Dlisten=Rlisten -Dselect=Rselect" + LIBS="-lsocks $LIBS" +fi]) + +### use option --with-socks5=DIR to point at SOCKS library +AC_ARG_WITH(socks5, + [ --with-socks5[=DIR] add built-in SOCKS5 firewall access], +[ +if test "$with_socks5" != no +then + if test "$with_socks5" != yes + then + LDEFLAGS="$LDEFLAGS -L$with_socks5" + fi + ac_savedLDFLAGS="$LDFLAGS" + LDFLAGS="$LDEFLAGS $LDFLAGS" + AC_CHECK_LIB(socks5, SOCKSconnect,, + AC_MSG_ERROR([could not find libsocks5 which is needed for built-in SOCKS5 support])) + AC_DEFINE(HAVE_SOCKS) + 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" + AC_CHECK_FUNC(SOCKSfclose, [CFLAGS="$CFLAGS -Dfclose=SOCKSfclose"]) + LDFLAGS="$ac_savedLDFLAGS" +fi]) + +### use option --with-hesiod=DIR to point at a HESIOD directory +AC_ma_SEARCH_PACKAGE(hesiod, hesiod_getmailhost, /usr/athena /usr /usr/local,hesiod, hesiod.h) + +### use option --with-gssapi=DIR to compile in GSSAPI support +AC_ARG_WITH(gssapi, + [ --with-gssapi[=DIR] compile in GSSAPI support using libraries in DIR], +[ +if test "$with_gssapi" != "no" +then + if test "$with_gssapi" = "yes" -a -n "$with_kerberos5" + then + with_gssapi=$with_kerberos5 + fi + if test "$with_gssapi" != "yes" -a -n "$with_gssapi" + then + CFLAGS="$CFLAGS -I$with_gssapi/include" + LDFLAGS="$LDFLAGS -L$with_gssapi/lib" + fi + + AC_CHECK_LIB(gss, gss_check_version, LIBS="$LIBS -lgss", nogss=t) + if test -n "$nogss" + then + if test -f "$with_gssapi/include/roken.h" + then + LIBS="$LIBS -lkrb5 -lasn1 -ldes -lroken -ldb -ldl" + AC_CHECK_LIB(gssapi, gss_init_sec_context,LIBS="$LIBS -lgssapi", + AC_MSG_ERROR([could not find libgssapi which is needed for GSSAPI support]), ) + AC_DEFINE(HEIMDAL) + else + AC_CHECK_LIB(gssapi_krb5, gss_init_sec_context,LIBS="$LIBS -lgssapi_krb5", + AC_MSG_ERROR([could not find libgssapi_krb5 which is needed for GSSAPI support]), -lkrb5) + fi + fi + AC_DEFINE(GSSAPI,1,Define if you want GSSAPI authentication) + save_CPPFLAGS=$CPPFLAGS + CPPFLAGS="-I$with_gssapi/include" + AC_CHECK_HEADERS(gss.h gssapi.h gssapi/gssapi.h gssapi/gssapi_generic.h) + if test "$ac_cv_header_gssapi_h" = "yes"; then + 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)) + else + AC_EGREP_HEADER(GSS_C_NT_HOSTBASED_SERVICE, gssapi/gssapi.h, AC_DEFINE(HAVE_GSS_C_NT_HOSTBASED_SERVICE)) + fi +fi]) + +AC_SUBST(CPFLAGS) +AC_SUBST(CEFLAGS) +AC_SUBST(LDEFLAGS) + +AC_CONFIG_FILES([Makefile m4/Makefile po/Makefile.in intl/Makefile]) +AC_OUTPUT + +dnl Local Variables: +dnl comment-start: "dnl " +dnl comment-end: "" +dnl comment-start-skip: "\\bdnl\\b\\s *" +dnl compile-command: "make configure config.h.in" +dnl End: |