* Merged mts/sendmail functionality into mts/smtp; switching between
[mmh] / configure.in
index 814884f..a3d3386 100644 (file)
@@ -31,11 +31,30 @@ 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
+
+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
+
 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 3 types of email address masquerading [none]],
+  [  --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
@@ -43,27 +62,44 @@ AC_ARG_ENABLE(masquerade,
   fi])
 AC_SUBST(masquerade)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 Do you want mhe support?
-undefine([nmh-mhe])dnl
-AC_ARG_ENABLE(nmh-mhe,
-[  --enable-nmh-mhe        enable mhe support (DEFAULT)])
+undefine([mhe])dnl
+AC_ARG_ENABLE(mhe,
+[  --enable-mhe            enable mhe support (DEFAULT)])
 
-dnl mhe support is on by default, so define it unless
-dnl explicitly disabled.
-if test x$"enable_nmh_mhe" != x"no"; then
+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([nmh-pop])dnl
-AC_ARG_ENABLE(nmh-pop,
-[  --enable-nmh-pop        enable client-side support for pop])
+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 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 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
+
+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'
@@ -82,42 +118,22 @@ if test -n "$with_editor"; then
   editorpath="$with_editor"
 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" != x"no"; then
-  AC_DEFINE(HESIOD)dnl
-fi
-
-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
-  AC_DEFINE(KPOP)dnl
-  AC_DEFINE(KPOP_PRINCIPAL, "pop")dnl
-fi
-
 dnl What method of posting should post use?
 undefine([mts])dnl
 AC_ARG_WITH(mts,
-[  --with-mts=MTS          specify the mail transport agent])
+[  --with-mts=MTS          specify the default mail transport agent/service])
 
 if test x"$with_mts" = x"smtp"; then
   MTS="smtp"
-  MTSLIB="mts/smtp/libsmtp.a"
-  AC_DEFINE(SMTPMTS)dnl
 elif test x"$with_mts" = x"sendmail"; then
   MTS="sendmail"
-  MTSLIB="mts/sendmail/libsend.a"
-  AC_DEFINE(SENDMTS)dnl
 else
   MTS="smtp"
-  MTSLIB="mts/smtp/libsmtp.a"
-  AC_DEFINE(SMTPMTS)dnl
 fi
-
 AC_SUBST(MTS)dnl
-AC_SUBST(MTSLIB)dnl
+
+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
@@ -132,7 +148,7 @@ 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]])
+                          specify the default SMTP server(s) [localhost]])
 if test -n "$with_smtpservers"; then
   smtpservers="$with_smtpservers"
 else
@@ -151,7 +167,7 @@ dnl ------------------
 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" = x"yes"; then
+if test x"$enable_debug" = x"yes"; then
   test -z "$LDFLAGS" && LDFLAGS=-g
 fi
 
@@ -162,7 +178,7 @@ dnl   if compiler is gcc, then
 dnl     use -O2 and some warning flags
 dnl   else use -O
 if test -n "$auto_cflags"; then
-  if test x"$enable_nmh_debug" = x"yes"; 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
@@ -171,7 +187,7 @@ if test -n "$auto_cflags"; then
   else
     test -z "$LDFLAGS" && LDFLAGS=-s
     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
@@ -193,6 +209,25 @@ dnl Look for `cut'
 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)
+AC_SUBST(LINTFLAGS)
 
 dnl try to figure out which one we've got
 AC_CHECK_PROG(LIBTOOL, libtool, libtool, , [$pathtmp])
@@ -216,6 +251,20 @@ dnl   AC_SUBST(LORDER)dnl
 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])
@@ -302,8 +351,25 @@ if test "$lspath" != "no" -a "$cutpath" != "no"; then
   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
@@ -382,7 +448,7 @@ 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 \
-               sethostent)
+               sethostent getutent)
 
 dnl solaris screws this up
 AC_CHECK_FUNC(gethostbyname, [AC_DEFINE(HAVE_GETHOSTBYNAME)],
@@ -424,17 +490,12 @@ AC_CHECK_FUNC(modf, , AC_CHECK_LIB(m, modf))
 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
 
-
 dnl --------------
 dnl CHECK FOR NDBM
 dnl --------------
@@ -679,10 +740,10 @@ dnl ----------------
 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, \
+          zotnet/Makefile zotnet/mts/Makefile \
+          mts/Makefile mts/smtp/Makefile \
+         mts/sendmail/Makefile mts/mmdf/Makefile etc/Makefile \
+         docs/Makefile man/Makefile, \
           [test -z "$CONFIG_HEADERS" || echo > stamp-h])
 
 dnl Umm, what's the point of these assignments??  -- <dan-nmh@dilvish.speed.net>
@@ -691,6 +752,21 @@ 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
 -----------------
@@ -708,5 +784,9 @@ transport system           : ${MTS}
 default smtp servers       : ${smtpservers}
 default editor             : ${editorpath}
 default pager              : ${pagerpath}
-email address masquerading : ${masquerade}"
+email address masquerading : ${masquerade}
+pop is enabled             : ${pop_kinds}"
 echo ""
+
+
+