db configuration fix for Debian; yet another location for ndbm.
[mmh] / configure.in
index c4b8cd8..a5e891c 100644 (file)
@@ -29,6 +29,11 @@ VERSION=`sed -e 's/nmh-//' ${srcdir}/VERSION`
 echo "configuring for nmh-$VERSION"
 AC_SUBST(VERSION)dnl
 
+dnl What date of nmh are we building?
+DATE=`cat ${srcdir}/DATE`
+echo "configuring for nmh dated $DATE"
+AC_SUBST(DATE)dnl
+
 dnl --------------------------
 dnl CHECK COMMAND LINE OPTIONS
 dnl --------------------------
@@ -44,7 +49,6 @@ fi
 AC_SUBST(APOPLIB)dnl
 
 dnl Do you want to debug nmh?
-undefine([debug])dnl
 AC_ARG_ENABLE(debug,
 [  --enable-debug          enable nmh code debugging])
 dnl The old redundant --enable-nmh-debug is deprecated and undocumented.
@@ -53,7 +57,6 @@ if test x"$enable_nmh_debug" = x"yes"; then
 fi
 
 dnl Allow users to send email from addresses other than their default?
-undefine([masquerade])dnl
 AC_ARG_ENABLE(masquerade,
   [  --enable-masquerade[='draft_from mmailid username_extension']
                           enable up to 3 types of address masquerading [none]],
@@ -65,7 +68,6 @@ AC_ARG_ENABLE(masquerade,
 AC_SUBST(masquerade)dnl
 
 dnl Do you want mhe support?
-undefine([mhe])dnl
 AC_ARG_ENABLE(mhe,
 [  --enable-mhe            enable mhe support (DEFAULT)])
 
@@ -76,7 +78,6 @@ if test x"$enable_mhe" != x"no" -a x"$enable_nmh_mhe" != x"no"; then
 fi
 
 dnl Do you want client-side support for pop?
-undefine([pop])dnl
 AC_ARG_ENABLE(pop,
 [  --enable-pop            enable client-side support for plain POP3])
 dnl The old redundant --enable-nmh-pop is deprecated and undocumented.
@@ -88,12 +89,14 @@ dnl Do you want client-side support for using SASL for authentication?
 dnl Note that this code will be enabled for both POP and SMTP
 AC_ARG_WITH(cyrus-sasl,
 [  --with-cyrus-sasl=<dir> Specify location of Cyrus SASL library for auth])
-if test x"$with_cyrus_sasl" != x -a x"$with_cyrus_sasl" != "no"; then
+if test x"$with_cyrus_sasl" != x -a x"$with_cyrus_sasl" != x"no"; then
   AC_DEFINE(CYRUS_SASL)dnl
+  sasl_support=yes
+else
+  sasl_support=no
 fi
 
 dnl What should be the default editor?
-undefine([editor])dnl
 AC_ARG_WITH(editor,
 [  --with-editor=EDITOR    specify the default editor])
 
@@ -102,7 +105,6 @@ if test -n "$with_editor"; then
 fi
 
 dnl Set the backup prefix
-undefine([backup-prefix])dnl
 AC_ARG_WITH([hash-backup],
   [  --with-hash-backup      use # as the backup prefix (default: ,)])
 if test x"$with_hash_backup" != x -a x"$with_hash_backup" != x"no"; then
@@ -140,9 +142,9 @@ AC_SUBST(POPLIB)dnl
 AC_SUBST(POPSED)dnl
 
 dnl What method of locking to use?
-undefine([locking])dnl
 AC_ARG_WITH(locking,
-[  --with-locking=LOCKTYPE specify the file locking method])
+[  --with-locking=LOCKTYPE specify the file locking method
+                          (one of dot, fcntl, flock, lockf)])
 
 if test x"$with_locking" = x"dot"; then
   LOCKTYPE="dot"
@@ -162,7 +164,6 @@ else
 fi
 
 dnl What method of posting should post use?
-undefine([mts])dnl
 AC_ARG_WITH(mts,
 [  --with-mts=MTS          specify the default mail transport agent/service])
 
@@ -179,7 +180,6 @@ dnl Both the smtp and sendmail mail transport services use the smtp code
 AC_DEFINE(SMTPMTS)dnl
 
 dnl What should be the default pager?
-undefine([pager])dnl
 AC_ARG_WITH(pager,
 [  --with-pager=PAGER      specify the default pager])
 
@@ -188,7 +188,6 @@ if test -n "$with_pager"; then
 fi
 
 dnl What should be the default mail server(s)?
-undefine([smtpservers])dnl
 AC_ARG_WITH(smtpservers,
 [  --with-smtpservers='SMTPSERVER1[ SMTPSERVER2...]'
                           specify the default SMTP server(s) [localhost]])
@@ -365,7 +364,7 @@ AC_SUBST(editorpath)dnl
 dnl Check for broken vi
 AC_CACHE_CHECK(for broken vi, nmh_cv_attvibug,
 [if echo 'r /nonexist-file
-q' | ex > /dev/null 2>&1
+q' | ex > /dev/null
 then
         nmh_cv_attvibug=no
 else
@@ -554,12 +553,16 @@ dnl --------------
 dnl Checks for ndbm
 AC_CHECK_FUNC(dbm_open, ,
   AC_CHECK_LIB(ndbm, dbm_open, ,
-    AC_CHECK_LIB(dbm, dbm_open)))
+    AC_CHECK_LIB(dbm, dbm_open, ,
+      AC_CHECK_LIB(db1, dbm_open, ,
+        AC_CHECK_LIB(gdbm, dbm_open, ,
+          AC_CHECK_LIB(db, __db_ndbm_open))))))
 
 dnl ----------------
 dnl CHECK FOR NDBM.H
 dnl ----------------
-AC_CHECK_HEADERS(db1/ndbm.h)
+
+AC_CHECK_HEADERS(db1/ndbm.h gdbm/ndbm.h db.h, break, )
 
 dnl ----------------
 dnl CHECK FOR HESIOD
@@ -569,10 +572,16 @@ if test x"$with_hesiod" != x -a x"$with_hesiod" != x"no"; then
     HESIOD_INCLUDES="-I$with_hesiod/include"
     HESIOD_LIBS="-L$with_hesiod/lib"
   fi
-  AC_CHECK_FUNC(res_send, ,
-    AC_CHECK_LIB(resolv, res_send))
-  AC_CHECK_LIB(hesiod, hes_resolve, [HESIOD_LIBS="$HESIOD_LIBS -lhesiod"],
-    [AC_MSG_ERROR(Hesiod library not found)], $HESIOD_LIBS)
+  AC_CHECK_FUNC(res_send,
+       [AC_CHECK_LIB(hesiod, hes_resolve,
+               [HESIOD_LIBS="$HESIOD_LIBS -lhesiod"],
+               [AC_MSG_ERROR(Hesiod library not found)],
+               $HESIOD_LIBS)],
+       [AC_CHECK_LIB(hesiod, hes_resolve,
+               [HESIOD_LIBS="$HESIOD_LIBS -lhesiod -lresolv"],
+               [AC_MSG_ERROR(Hesiod library not found)],
+               $HESIOD_LIBS -lresolv)])
+
 fi
 AC_SUBST(HESIOD_INCLUDES)dnl
 AC_SUBST(HESIOD_LIBS)dnl
@@ -590,13 +599,23 @@ if test x"$with_krb4" != x -a x"$with_krb4" != x"no"; then
   elif test -d /usr/include/kerberosIV; then
     KRB4_INCLUDES="-I/usr/include/kerberosIV"
   fi
-  AC_CHECK_LIB(krb4, krb_rd_req,
-    [KRB4_LIBS="$KRB4_LIBS -lkrb4 -ldes425 -lkrb5 -lcrypto -lcom_err"],
-    [AC_CHECK_LIB(krb, krb_rd_req,
-      [KRB4_LIBS="$KRB4_LIBS -lkrb -ldes"],
-      [AC_MSG_ERROR(Kerberos 4 libraries not found)],
-      $KRB4_LIBS -ldes)],
-    $KRB4_LIBS -ldes425 -lkrb5 -lcrypto -lcom_err)
+dnl First, check if we have -lk5crypto, since that means we have a recent krb5
+
+  AC_CHECK_LIB(k5crypto, krb5_encrypt,
+       [AC_CHECK_LIB(krb4, krb_rd_req,
+               [KRB4_LIBS="$KRB4_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"],
+               [AC_MSG_ERROR(Kerberos 4 compatibility libraries not found)],
+               $KRB4_LIBS -ldes425 -lkrb5 -lk5crypto -lcom_err)],
+
+       [AC_CHECK_LIB(krb4, krb_rd_req,
+           [KRB4_LIBS="$KRB4_LIBS -lkrb4 -ldes425 -lkrb5 -lcrypto -lcom_err"],
+           [AC_CHECK_LIB(krb, krb_rd_req,
+             [KRB4_LIBS="$KRB4_LIBS -lkrb -ldes"],
+             [AC_MSG_ERROR(Kerberos 4 libraries not found)],
+             $KRB4_LIBS -ldes)],
+           $KRB4_LIBS -ldes425 -lkrb5 -lcrypto -lcom_err)],
+       $KRB4_LIBS)
+
 fi
 AC_SUBST(KRB4_INCLUDES)dnl
 AC_SUBST(KRB4_LIBS)dnl
@@ -604,15 +623,24 @@ AC_SUBST(KRB4_LIBS)dnl
 dnl --------------------
 dnl CHECK FOR CYRUS SASL
 dnl --------------------
-if test x"$with_cyrus_sasl" != x -a x"$with_cyrus_sasl" != "no"; then
+if test x"$with_cyrus_sasl" != x -a x"$with_cyrus_sasl" != x"no"; then
   if test x"$with_cyrus_sasl" != x"yes"; then
     SASL_INCLUDES="-I$with_cyrus_sasl/include"
     SASL_LIBS="-L$with_cyrus_sasl/lib"
+
+    dnl Do OS-specific hardcoding of SASL shared library path into executables,
+    dnl so user isn't forced to set environment variables like Solaris'
+    dnl LD_LIBRARY_PATH.
+    case "$target_os" in
+      solaris*)
+       SASL_LIBS="$SASL_LIBS -R$with_cyrus_sasl/lib"
+       ;;
+    esac
   fi
   save_LDFLAGS="$LDFLAGS"
   LDFLAGS="$LDFLAGS $SASL_LIBS"
-  AC_CHECK_LIB(sasl, sasl_client_new,
-    [SASL_LIBS="$SASL_LIBS -lsasl"],
+  AC_CHECK_LIB(sasl2, sasl_client_new,
+    [SASL_LIBS="$SASL_LIBS -lsasl2"],
     [AC_MSG_ERROR(Cyrus SASL library not found)])
   LDFLAGS="$save_LDFLAGS"
 fi
@@ -855,5 +883,6 @@ default smtp servers       : ${smtpservers}
 default editor             : ${editorpath}
 default pager              : ${pagerpath}
 email address masquerading : ${masquerade}
-pop is enabled             : ${pop_kinds}"
+pop is enabled             : ${pop_kinds}
+SASL support               : ${sasl_support}"
 echo ""