Add/update copyright notice in all source code files.
[mmh] / configure.in
index bb58e1f..70dac65 100644 (file)
@@ -14,11 +14,13 @@ dnl define a macro or two
 dnl ---------------------
 
 AC_DEFUN(NMH_PROG_GNU_LIBTOOL, [
 dnl ---------------------
 
 AC_DEFUN(NMH_PROG_GNU_LIBTOOL, [
+if test -n "$LIBTOOL" ; then
   tmptest=`$LIBTOOL --version 2>&1 | grep GNU`
   if test x"$tmptest" != x  ; then
     GNU_LIBTOOL=1
     AC_SUBST(GNU_LIBTOOL)dnl
   fi
   tmptest=`$LIBTOOL --version 2>&1 | grep GNU`
   if test x"$tmptest" != x  ; then
     GNU_LIBTOOL=1
     AC_SUBST(GNU_LIBTOOL)dnl
   fi
+fi
 ] )
   
 
 ] )
   
 
@@ -27,30 +29,76 @@ VERSION=`sed -e 's/nmh-//' ${srcdir}/VERSION`
 echo "configuring for nmh-$VERSION"
 AC_SUBST(VERSION)dnl
 
 echo "configuring for nmh-$VERSION"
 AC_SUBST(VERSION)dnl
 
-dnl -------------------------
-dnl CHECK COMMAND LINE OPTION
-dnl -------------------------
-dnl What method of posting should post use?
-undefine([mts])dnl
-AC_ARG_WITH(mts,
-[  --with-mts=MTS          specify the mail transport agent])
+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 --------------------------
+
+dnl Do you want client-side support for apop?
+AC_ARG_ENABLE(apop,
+[  --enable-apop           enable client-side support for POP3 and APOP])
+if test x"$enable_apop" = x"yes"; then
+  AC_DEFINE(APOP)dnl
+  APOPLIB=md5.o
+  enable_pop=yes
+fi
+AC_SUBST(APOPLIB)dnl
 
 
-if test x$with_mts = xsmtp; then
-  MTS="smtp"
-  MTSLIB="mts/smtp/libsmtp.a"
-  AC_DEFINE(SMTPMTS)dnl
-elif test x$with_mts = xsendmail; then
-  MTS="sendmail"
-  MTSLIB="mts/sendmail/libsend.a"
-  AC_DEFINE(SENDMTS)dnl
-else
-  MTS="smtp"
-  MTSLIB="mts/smtp/libsmtp.a"
-  AC_DEFINE(SMTPMTS)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.
+if test x"$enable_nmh_debug" = x"yes"; then
+  enable_debug=yes
 fi
 
 fi
 
-AC_SUBST(MTS)
-AC_SUBST(MTSLIB)
+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]],
+  [if test x"$enable_masquerade" = x"yes"; then
+    masquerade="draft_from mmailid username_extension"
+  else
+    masquerade="$enable_masquerade"
+  fi])
+AC_SUBST(masquerade)dnl
+
+dnl Do you want mhe support?
+undefine([mhe])dnl
+AC_ARG_ENABLE(mhe,
+[  --enable-mhe            enable mhe support (DEFAULT)])
+
+dnl mhe support is on by default, so define it unless --disable-mhe or the
+dnl deprecated, undocumented --disable-nmh-mhe are specified.
+if test x"$enable_mhe" != x"no" -a x"$enable_nmh_mhe" != x"no"; then
+  AC_DEFINE(MHE)dnl
+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.
+if test x"$enable_nmh_pop" = x"yes"; then
+  enable_pop=yes
+fi
+
+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" != 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
 
 dnl What should be the default editor?
 undefine([editor])dnl
@@ -61,31 +109,35 @@ if test -n "$with_editor"; then
   editorpath="$with_editor"
 fi
 
   editorpath="$with_editor"
 fi
 
-dnl What should be the default pager?
-undefine([pager])dnl
-AC_ARG_WITH(pager,
-[  --with-pager=PAGER      specify the default pager])
-
-if test -n "$with_pager"; then
-  pagerpath="$with_pager"
+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
+  backup_prefix="#"
+else
+  backup_prefix=","
 fi
 fi
+AC_DEFINE_UNQUOTED(BACKUP_PREFIX, "$backup_prefix")dnl
 
 
-dnl Do you want mhe support?
-undefine([nmh-mhe])dnl
-AC_ARG_ENABLE(nmh-mhe,
-[  --enable-nmh-mhe        enable mhe support (DEFAULT)])
+dnl Do you want support for hesiod
+AC_ARG_WITH(hesiod,
+[  --with-hesiod=PREFIX    specify location of Hesiod])
+if test x"$with_hesiod" != x -a x"$with_hesiod" != x"no"; then
+  AC_DEFINE(HESIOD)dnl
+fi
 
 
-dnl mhe support is on by default, so define it unless
-dnl explicitly disabled.
-if test x$enable_nmh_mhe != xno; then
-  AC_DEFINE(MHE)dnl
+dnl Do you want client-side support for kpop
+AC_ARG_WITH(krb4,
+[  --with-krb4=PREFIX      specify location of Kerberos V4 for KPOP support])
+if test x"$with_krb4" != x -a x"$with_krb4" != x"no"; then
+  enable_pop=yes
+  AC_DEFINE(KPOP)dnl
+  AC_DEFINE(KPOP_PRINCIPAL, "pop")dnl
 fi
 
 fi
 
-dnl Do you want client-side support for pop
-undefine([nmh-pop])dnl
-AC_ARG_ENABLE(nmh-pop,
-[  --enable-nmh-pop        enable client-side support for pop])
-if test x$enable_nmh_pop = xyes; then
+dnl After we know if we're including apop and kpop support, do pop stuff
+if test x"$enable_pop" = x"yes"; then
   AC_DEFINE(POP)dnl
   POPLIB=popsbr.o
   POPSED='/^%nmhbeginpop%/d;/^%nmhendpop%/d'
   AC_DEFINE(POP)dnl
   POPLIB=popsbr.o
   POPSED='/^%nmhbeginpop%/d;/^%nmhendpop%/d'
@@ -95,25 +147,66 @@ fi
 AC_SUBST(POPLIB)dnl
 AC_SUBST(POPSED)dnl
 
 AC_SUBST(POPLIB)dnl
 AC_SUBST(POPSED)dnl
 
-dnl Do you want client-side support for kpop
-AC_ARG_WITH(krb4,
-[  --with-krb4=PREFIX      specify location of Kerberos V4 for kpop support])
-if test x$with_krb4 != x -a x$with_krb4 != xno; then
-  AC_DEFINE(KPOP)dnl
-  AC_DEFINE(KPOP_PRINCIPAL, "pop")dnl
+dnl What method of locking to use?
+undefine([locking])dnl
+AC_ARG_WITH(locking,
+[  --with-locking=LOCKTYPE specify the file locking method
+                          (one of dot, fcntl, flock, lockf)])
+
+if test x"$with_locking" = x"dot"; then
+  LOCKTYPE="dot"
+  AC_DEFINE(DOT_LOCKING)dnl
+elif test x"$with_locking" = x"flock"; then
+  LOCKTYPE="flock"
+  AC_DEFINE(FLOCK_LOCKING)dnl
+elif test x"$with_locking" = x"lockf"; then
+  LOCKTYPE="lockf"
+  AC_DEFINE(LOCKF_LOCKING)dnl
+elif test x"$with_locking" = x"fcntl"; then
+  LOCKTYPE="fcntl"
+  AC_DEFINE(FCNTL_LOCKING)dnl
+else
+  LOCKTYPE="dot"
+  AC_DEFINE(DOT_LOCKING)dnl
 fi
 
 fi
 
-dnl Do you want support for hesiod
-AC_ARG_WITH(hesiod,
-[  --with-hesiod=PREFIX    specify location of Hesiod])
-if test x$with_hesiod != x -a x$with_hesiod != xno; then
-  AC_DEFINE(HESIOD)dnl
+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])
+
+if test x"$with_mts" = x"smtp"; then
+  MTS="smtp"
+elif test x"$with_mts" = x"sendmail"; then
+  MTS="sendmail"
+else
+  MTS="smtp"
 fi
 fi
+AC_SUBST(MTS)dnl
 
 
-dnl Do you want to debug nmh?
-undefine([nmh-debug])dnl
-AC_ARG_ENABLE(nmh-debug,
-[  --enable-nmh-debug      enable nmh code debugging])
+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])
+
+if test -n "$with_pager"; then
+  pagerpath="$with_pager"
+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]])
+if test -n "$with_smtpservers"; then
+  smtpservers="$with_smtpservers"
+else
+  smtpservers="localhost"
+fi
+AC_SUBST(smtpservers)dnl
 
 dnl ----------------------------------------------------
 dnl Default location is /usr/local/nmh/{bin,etc,lib,man}
 
 dnl ----------------------------------------------------
 dnl Default location is /usr/local/nmh/{bin,etc,lib,man}
@@ -126,7 +219,7 @@ dnl ------------------
 dnl We want these before the checks,
 dnl so the checks can modify their values.
 test -z "$CFLAGS" && CFLAGS= auto_cflags=1
 dnl We want these before the checks,
 dnl so the checks can modify their values.
 test -z "$CFLAGS" && CFLAGS= auto_cflags=1
-if test x$enable_nmh_debug = xyes; then
+if test x"$enable_debug" = x"yes"; then
   test -z "$LDFLAGS" && LDFLAGS=-g
 fi
 
   test -z "$LDFLAGS" && LDFLAGS=-g
 fi
 
@@ -137,16 +230,25 @@ dnl   if compiler is gcc, then
 dnl     use -O2 and some warning flags
 dnl   else use -O
 if test -n "$auto_cflags"; then
 dnl     use -O2 and some warning flags
 dnl   else use -O
 if test -n "$auto_cflags"; then
-  if test x$enable_nmh_debug = xyes; then
+  if test x"$enable_debug" = x"yes"; then
     if test -n "$GCC"; then
       test -z "$CFLAGS" && CFLAGS="-Wall -g" || CFLAGS="$CFLAGS -Wall -g"
     else
       test -z "$CFLAGS" && CFLAGS=-g || CFLAGS="$CFLAGS -g"
     fi
   else
     if test -n "$GCC"; then
       test -z "$CFLAGS" && CFLAGS="-Wall -g" || CFLAGS="$CFLAGS -Wall -g"
     else
       test -z "$CFLAGS" && CFLAGS=-g || CFLAGS="$CFLAGS -g"
     fi
   else
-    test -z "$LDFLAGS" && LDFLAGS=-s
+    if test -z "$LDFLAGS"; then
+      case "$build_os" in
+       darwin*)
+         LDFLAGS=
+          ;;
+       *)
+         LDFLAGS=-s
+         ;;
+      esac
+    fi
     if test -n "$GCC"; then
     if test -n "$GCC"; then
-      test -z "$CFLAGS" && CFLAGS=-O2 || CFLAGS="$CFLAGS -O2"
+      test -z "$CFLAGS" && CFLAGS="-Wall -O2" || CFLAGS="$CFLAGS -Wall -O2"
     else
       test -z "$CFLAGS" && CFLAGS=-O  || CFLAGS="$CFLAGS -O"
     fi
     else
       test -z "$CFLAGS" && CFLAGS=-O  || CFLAGS="$CFLAGS -O"
     fi
@@ -168,6 +270,25 @@ dnl Look for `cut'
 pathtmp=/usr/bin:/bin:/usr/local/bin:/usr/xpg4/bin:/usr/ucb
 AC_PATH_PROG(cutpath, cut, no, [$pathtmp])
 
 pathtmp=/usr/bin:/bin:/usr/local/bin:/usr/xpg4/bin:/usr/ucb
 AC_PATH_PROG(cutpath, cut, no, [$pathtmp])
 
+dnl ----------------------------------------------
+dnl check for lclint, and lint if it doesn't exist
+dnl ----------------------------------------------
+AC_CHECK_PROG(linttmp1, lclint, lclint, no)dnl
+if test x$ac_cv_prog_linttmp1 != xno ; then
+  LINT=$ac_cv_prog_linttmp1
+  LINTFLAGS="-weak +posixlib -macrovarprefixexclude"
+else
+  AC_CHECK_PROG(linttmp2, lint, lint, no)dnl
+  if test x$ac_cv_prog_linttmp2 != xno ; then
+    LINT=$ac_cv_prog_linttmp2
+    LINTFLAGS=""
+  else
+    LINT="echo 'No lint program found'"
+    LINTFLAGS=""
+  fi
+fi
+AC_SUBST(LINT)dnl
+AC_SUBST(LINTFLAGS)dnl
 
 dnl try to figure out which one we've got
 AC_CHECK_PROG(LIBTOOL, libtool, libtool, , [$pathtmp])
 
 dnl try to figure out which one we've got
 AC_CHECK_PROG(LIBTOOL, libtool, libtool, , [$pathtmp])
@@ -191,6 +312,20 @@ dnl   AC_SUBST(LORDER)dnl
 dnl   AC_SUBST(TSORT)dnl
 fi
 
 dnl   AC_SUBST(TSORT)dnl
 fi
 
+dnl Check whether tsort can deal with loops
+AC_CACHE_CHECK(whether tsort can deal with loops, nmh_cv_tsort_loop,
+  [if test -z "`echo a b b a | tsort 2>/dev/null | grep a`" ; then
+    nmh_cv_tsort_loop=no
+  else
+    nmh_cv_tsort_loop=yes
+  fi])
+if test x$nmh_cv_tsort_loop = xno ; then
+  LORDER=echo
+  TSORT=cat
+  AC_SUBST(LORDER)dnl
+  AC_SUBST(TSORT)dnl
+fi
+
 dnl Look for `ls'
 pathtmp=/usr/bin:/bin:/usr/local/bin:/usr/xpg4/bin:/usr/ucb
 AC_PATH_PROG(lspath, ls, no, [$pathtmp])
 dnl Look for `ls'
 pathtmp=/usr/bin:/bin:/usr/local/bin:/usr/xpg4/bin:/usr/ucb
 AC_PATH_PROG(lspath, ls, no, [$pathtmp])
@@ -247,7 +382,7 @@ else
 fi])
  
 if test "$nmh_cv_attvibug" = yes; then
 fi])
  
 if test "$nmh_cv_attvibug" = yes; then
-  AC_DEFINE(ATTVIBUG)
+  AC_DEFINE(ATTVIBUG)dnl
 fi
 
 dnl ----------------------------------------------------------
 fi
 
 dnl ----------------------------------------------------------
@@ -277,26 +412,36 @@ if test "$lspath" != "no" -a "$cutpath" != "no"; then
   fi])
 fi
 
   fi])
 fi
 
-dnl ...If it's not, we need to #define MAILGROUP to 1 and make inc setgid.
-if test x"$nmh_cv_mailspool_world_writable" = x"no"; then
+dnl Also, check for liblockfile (as found on Debian systems)
+AC_CHECK_HEADER(lockfile.h, AC_CHECK_LIB(lockfile, lockfile_create) )
+
+dnl and whether its companion program dotlockfile is setgid
+AC_PATH_PROG(dotlockfilepath, dotlockfile, no)
+if test "$ac_cv_lib_lockfile_lockfile_create" != "no" ; then
+  if test "$ac_cv_path_dotlockfilepath" != "no" ; then
+    AC_CACHE_CHECK(whether dotlockfile is setgid, nmh_cv_dotlockfile_setgid,
+    [ if test -g "$ac_cv_path_dotlockfilepath" ; then
+        nmh_cv_dotlockfile_setgid=yes
+      else
+        nmh_cv_dotlockfile_setgid=no
+      fi])
+  fi
+fi
+
+dnl If mailspool is not world-writable and dotlockfile is not setgid,
+dnl we need to #define MAILGROUP to 1 and make inc setgid.
+if test x"$nmh_cv_mailspool_world_writable" = x"no" -a x"$nmh_cv_dotlockfile_setgid" != x"yes" ; then
   dnl do we really need both of these?
   AC_DEFINE(MAILGROUP)dnl
   SETGID_MAIL=1
 fi
 AC_SUBST(SETGID_MAIL)dnl
 
   dnl do we really need both of these?
   AC_DEFINE(MAILGROUP)dnl
   SETGID_MAIL=1
 fi
 AC_SUBST(SETGID_MAIL)dnl
 
-dnl see if we can determine which group owns the mail spool dir
+dnl Use ls to see which group owns the mail spool directory.
 AC_CACHE_CHECK(what group owns the mail spool, nmh_cv_ls_mail_grp,
 [nmh_cv_ls_mail_grp=`$lspath -dL $nmh_cv_ls_grpopt $mailspool|$AWK '{print $4}'`
 AC_CACHE_CHECK(what group owns the mail spool, nmh_cv_ls_mail_grp,
 [nmh_cv_ls_mail_grp=`$lspath -dL $nmh_cv_ls_grpopt $mailspool|$AWK '{print $4}'`
- dnl Should we just set it to whatever ls reports, rather than only allowing
- dnl certain values...?
- if test x$nmh_cv_ls_mail_grp = xmail; then
-   MAIL_SPOOL_GRP="mail"
- elif test x$nmh_cv_ls_mail_grp = xwheel; then
-   MAIL_SPOOL_GRP="wheel"
- else
-   MAIL_SPOOL_GRP="'0'"
- fi])
+])
+MAIL_SPOOL_GRP=$nmh_cv_ls_mail_grp
 AC_SUBST(MAIL_SPOOL_GRP)dnl
 
 dnl ------------------
 AC_SUBST(MAIL_SPOOL_GRP)dnl
 
 dnl ------------------
@@ -342,7 +487,7 @@ if test $nmh_cv_header_termios_h_tiocgwinsz = no; then
   nmh_cv_header_sys_ioctl_h_tiocgwinsz=yes,
   nmh_cv_header_sys_ioctl_h_tiocgwinsz=no)])
   if test $nmh_cv_header_sys_ioctl_h_tiocgwinsz = yes; then
   nmh_cv_header_sys_ioctl_h_tiocgwinsz=yes,
   nmh_cv_header_sys_ioctl_h_tiocgwinsz=no)])
   if test $nmh_cv_header_sys_ioctl_h_tiocgwinsz = yes; then
-    AC_DEFINE(GWINSZ_IN_SYS_IOCTL)
+    AC_DEFINE(GWINSZ_IN_SYS_IOCTL)dnl
   fi
 fi
  
   fi
 fi
  
@@ -364,9 +509,9 @@ AC_FUNC_VFORK
 AC_CHECK_LIB(mkstemp,mkstemp)
 AC_CHECK_FUNCS(waitpid wait3 sigaction sigprocmask sigblock sigsetmask \
                sighold sigrelse writev lstat uname tzset killpg mkstemp \
 AC_CHECK_LIB(mkstemp,mkstemp)
 AC_CHECK_FUNCS(waitpid wait3 sigaction sigprocmask sigblock sigsetmask \
                sighold sigrelse writev lstat uname tzset killpg mkstemp \
-               sethostent)
+               sethostent getutent)
 
 
-dnl solaris screws ths up
+dnl solaris screws this up
 AC_CHECK_FUNC(gethostbyname, [AC_DEFINE(HAVE_GETHOSTBYNAME)],
   AC_CHECK_LIB(nsl, gethostbyname, [AC_DEFINE(HAVE_GETHOSTBYNAME)] ) )
 
 AC_CHECK_FUNC(gethostbyname, [AC_DEFINE(HAVE_GETHOSTBYNAME)],
   AC_CHECK_LIB(nsl, gethostbyname, [AC_DEFINE(HAVE_GETHOSTBYNAME)] ) )
 
@@ -377,6 +522,17 @@ AC_TRY_LINK([#include <setjmp.h>], [sigsetjmp((void *)0, 0);],
 
 AC_REPLACE_FUNCS(snprintf strerror strdup)
 
 
 AC_REPLACE_FUNCS(snprintf strerror strdup)
 
+dnl Look for the initgroups() declaration.  On AIX 4.[13], Solaris 4.1.3, and
+dnl ULTRIX 4.2A the function is defined in libc but there's no declaration in
+dnl any system header.  
+dnl
+dnl On Solaris 2.[456], the declaration is in <grp.h>.  On HP-UX 9-11 and
+dnl (reportedly) FreeBSD 3.[23], it's in <unistd.h>.  Any other locations we
+dnl need to check? 
+AC_EGREP_HEADER(initgroups, grp.h, AC_DEFINE(INITGROUPS_HEADER, <grp.h>),
+                AC_EGREP_HEADER(initgroups, unistd.h, 
+                                AC_DEFINE(INITGROUPS_HEADER, <unistd.h>)))
+
 dnl On AIX 4.1, snprintf() is defined in libc.a but there's no prototype in
 dnl <stdio.h> or elsewhere.  Apparently it's not officially supported (though it
 dnl seems to work perfectly and IBM apparently uses it in internal code).
 dnl On AIX 4.1, snprintf() is defined in libc.a but there's no prototype in
 dnl <stdio.h> or elsewhere.  Apparently it's not officially supported (though it
 dnl seems to work perfectly and IBM apparently uses it in internal code).
@@ -395,17 +551,12 @@ AC_CHECK_FUNC(modf, , AC_CHECK_LIB(m, modf))
 dnl Checks for network libraries (nsl, socket)
 AC_CHECK_NETLIBS
 
 dnl Checks for network libraries (nsl, socket)
 AC_CHECK_NETLIBS
 
-dnl Check for bug in libraries such that ruserpass
-dnl needs to be linked as _ruserpass.
-AC_CHECK_RUSERPASS
-
 termcap_curses_order="termcap curses ncurses"
 for lib in $termcap_curses_order; do
   AC_CHECK_LIB(${lib}, tgetent, [TERMLIB="-l$lib"; break])
 done
 AC_SUBST(TERMLIB)dnl
 
 termcap_curses_order="termcap curses ncurses"
 for lib in $termcap_curses_order; do
   AC_CHECK_LIB(${lib}, tgetent, [TERMLIB="-l$lib"; break])
 done
 AC_SUBST(TERMLIB)dnl
 
-
 dnl --------------
 dnl CHECK FOR NDBM
 dnl --------------
 dnl --------------
 dnl CHECK FOR NDBM
 dnl --------------
@@ -422,15 +573,21 @@ AC_CHECK_HEADERS(db1/ndbm.h)
 dnl ----------------
 dnl CHECK FOR HESIOD
 dnl ----------------
 dnl ----------------
 dnl CHECK FOR HESIOD
 dnl ----------------
-if test x$with_hesiod != x -a x$with_hesiod != xno; then
-  if test x$with_hesiod != xyes; then
+if test x"$with_hesiod" != x -a x"$with_hesiod" != x"no"; then
+  if test x"$with_hesiod" != x"yes"; then
     HESIOD_INCLUDES="-I$with_hesiod/include"
     HESIOD_LIBS="-L$with_hesiod/lib"
   fi
     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
 fi
 AC_SUBST(HESIOD_INCLUDES)dnl
 AC_SUBST(HESIOD_LIBS)dnl
@@ -438,8 +595,8 @@ AC_SUBST(HESIOD_LIBS)dnl
 dnl ----------------------------------
 dnl CHECK FOR KRB4 (Kerberos4 support)
 dnl ----------------------------------
 dnl ----------------------------------
 dnl CHECK FOR KRB4 (Kerberos4 support)
 dnl ----------------------------------
-if test x$with_krb4 != x -a x$with_krb4 != xno; then
-  if test x$with_krb4 != xyes; then
+if test x"$with_krb4" != x -a x"$with_krb4" != x"no"; then
+  if test x"$with_krb4" != x"yes"; then
     KRB4_INCLUDES="-I$with_krb4/include"
     if test -d "$with_krb4/include/kerberosIV"; then
       KRB4_INCLUDES="$KRB4_INCLUDES -I$with_krb4/include/kerberosIV"
     KRB4_INCLUDES="-I$with_krb4/include"
     if test -d "$with_krb4/include/kerberosIV"; then
       KRB4_INCLUDES="$KRB4_INCLUDES -I$with_krb4/include/kerberosIV"
@@ -448,17 +605,54 @@ if test x$with_krb4 != x -a x$with_krb4 != xno; then
   elif test -d /usr/include/kerberosIV; then
     KRB4_INCLUDES="-I/usr/include/kerberosIV"
   fi
   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
 
 fi
 AC_SUBST(KRB4_INCLUDES)dnl
 AC_SUBST(KRB4_LIBS)dnl
 
+dnl --------------------
+dnl CHECK FOR CYRUS SASL
+dnl --------------------
+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_MSG_ERROR(Cyrus SASL library not found)])
+  LDFLAGS="$save_LDFLAGS"
+fi
+AC_SUBST(SASL_INCLUDES)dnl
+AC_SUBST(SASL_LIBS)dnl
+
 dnl ---------------------
 dnl CHECK TERMCAP LIBRARY
 dnl ---------------------
 dnl ---------------------
 dnl CHECK TERMCAP LIBRARY
 dnl ---------------------
@@ -491,7 +685,7 @@ if test $nmh_cv_decl_ospeed_include_defines = no; then
 fi
  
 if test $nmh_cv_decl_ospeed_include_defines = yes; then
 fi
  
 if test $nmh_cv_decl_ospeed_include_defines = yes; then
-  AC_DEFINE(HAVE_OSPEED)
+  AC_DEFINE(HAVE_OSPEED)dnl
 elif test $nmh_cv_decl_ospeed_must_define = yes; then
   AC_DEFINE(HAVE_OSPEED)
   AC_DEFINE(MUST_DEFINE_OSPEED)
 elif test $nmh_cv_decl_ospeed_must_define = yes; then
   AC_DEFINE(HAVE_OSPEED)
   AC_DEFINE(MUST_DEFINE_OSPEED)
@@ -650,31 +844,51 @@ dnl ----------------
 dnl OUTPUT MAKEFILES
 dnl ----------------
 AC_OUTPUT(Makefile config/Makefile h/Makefile sbr/Makefile uip/Makefile \
 dnl OUTPUT MAKEFILES
 dnl ----------------
 AC_OUTPUT(Makefile config/Makefile h/Makefile sbr/Makefile uip/Makefile \
-          zotnet/Makefile zotnet/mts/Makefile zotnet/tws/Makefile \
-          zotnet/mf/Makefile zotnet/bboards/Makefile mts/Makefile \
-          mts/smtp/Makefile mts/sendmail/Makefile mts/mmdf/Makefile \
-          etc/Makefile man/Makefile, \
+          mts/Makefile mts/smtp/Makefile \
+         etc/Makefile docs/Makefile man/Makefile, \
           [test -z "$CONFIG_HEADERS" || echo > stamp-h])
 
           [test -z "$CONFIG_HEADERS" || echo > stamp-h])
 
+dnl Umm, what's the point of these assignments??  -- <dan-nmh@dilvish.speed.net>
 eval "nmhbin=${bindir}";         eval "nmhbin2=${nmhbin}"
 eval "nmhsysconf=${sysconfdir}"; eval "nmhsysconf2=${nmhsysconf}"
 eval "nmhlib=${libdir}";         eval "nmhlib2=${nmhlib}"
 eval "nmhman=${mandir}"
 
 eval "nmhbin=${bindir}";         eval "nmhbin2=${nmhbin}"
 eval "nmhsysconf=${sysconfdir}"; eval "nmhsysconf2=${nmhsysconf}"
 eval "nmhlib=${libdir}";         eval "nmhlib2=${nmhlib}"
 eval "nmhman=${mandir}"
 
+pop_kinds=no
+if test x"$enable_pop" = x"yes"; then
+  pop_kinds="yes ("
+
+  if test x"$enable_apop" = x"yes"; then
+    pop_kinds="${pop_kinds}APOP "
+  fi
+
+  if test x"$with_krb4" != x -a x"$with_krb4" != x"no"; then
+    pop_kinds="${pop_kinds}KPOP "
+  fi
+
+  pop_kinds="${pop_kinds}POP3)"
+fi
+
 echo "
 nmh configuration
 -----------------
 echo "
 nmh configuration
 -----------------
-nmh version               : ${VERSION}
-target os                 : ${target}
-compiler                  : ${CC}
-compiler flags            : ${CFLAGS}
-linker flags              : ${LDFLAGS}
-source code location      : ${srcdir}
-binary install path       : ${nmhbin2}
-libary install path       : ${nmhlib2}
-config files install path : ${nmhsysconf2}
-man page install path     : ${nmhman}
-transport system          : ${MTS}
-default editor            : ${editorpath}
-default pager             : ${pagerpath}"
+nmh version                : ${VERSION}
+target os                  : ${target}
+compiler                   : ${CC}
+compiler flags             : ${CFLAGS}
+linker flags               : ${LDFLAGS}
+source code location       : ${srcdir}
+binary install path        : ${nmhbin2}
+libary install path        : ${nmhlib2}
+config files install path  : ${nmhsysconf2}
+man page install path      : ${nmhman}
+backup prefix              : ${backup_prefix}
+transport system           : ${MTS}
+file locking type          : ${LOCKTYPE}
+default smtp servers       : ${smtpservers}
+default editor             : ${editorpath}
+default pager              : ${pagerpath}
+email address masquerading : ${masquerade}
+pop is enabled             : ${pop_kinds}
+SASL support               : ${sasl_support}"
 echo ""
 echo ""