Changed msg_style and msg_delim to be file static to m_getfld.c
[mmh] / configure.ac
index a6b5525..c3ebacf 100644 (file)
@@ -8,7 +8,7 @@ AC_PREREQ([2.61])
 AC_INIT([nmh], m4_normalize(m4_include([VERSION])), [nmh-workers@nongnu.org])
 AC_CONFIG_SRCDIR([h/nmh.h])
 AC_CONFIG_HEADER([config.h])
-AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects])
+AM_INIT_AUTOMAKE([-Wall foreign subdir-objects])
 
 AC_CANONICAL_HOST
 
@@ -30,21 +30,11 @@ AC_ARG_ENABLE([debug],
 dnl The old redundant --enable-nmh-debug is deprecated and undocumented.
 AS_IF([test x"$enable_nmh_debug" = x"yes"], [enable_debug=yes])
 
-dnl Allow users to send email from addresses other than their default?
-AC_ARG_ENABLE(masquerade,
-  AS_HELP_STRING([--enable-masquerade='draft_from mmailid username_extension'],
-    [enable up to 3 types of address masquerading]),
-  [AS_IF([test x"$enable_masquerade" = x"yes"],
-        [masquerade="draft_from mmailid username_extension"],
-        [masquerade="$enable_masquerade"])],
-  [masquerade="draft_from mmailid username_extension"])
-AC_SUBST(masquerade)dnl
-
 dnl Do you want to disable use of locale functions
 AH_TEMPLATE([LOCALE],
 [Undefine if you don't want locale features.  By default this is defined.])
 AC_ARG_ENABLE([locale],
-  [AC_HELP_STRING([--disable-locale], [turn off locale features])],
+  [AS_HELP_STRING([--disable-locale], [turn off locale features])],
   [AS_IF([test x$enableval = xyes], [AC_DEFINE(LOCALE)])],
   [AC_DEFINE(LOCALE)])
 
@@ -81,6 +71,12 @@ AC_DEFINE_UNQUOTED([BACKUP_PREFIX], "$backup_prefix",
     [The prefix that is prepended to the name of message files when they are "removed" by rmm. This should typically be `,' or `#'.])dnl
 
 dnl What method of locking to use?
+AS_CASE(["$host_os"],
+  [aix*|cygwin*|linux*],
+    [default_locktype="fcntl"; default_locking=FCNTL_LOCKING],
+  [freebsd*|openbsd*|darwin*], [default_locktype="flock"; default_locking=FLOCK_LOCKING],
+  [default_locktype="dot"; default_locking=DOT_LOCKING])
+
 AC_ARG_WITH(locking,
   AS_HELP_STRING([--with-locking=@<:@dot|fcntl|flock|lockf@:>@],
   [specify the file locking method]))
@@ -98,13 +94,13 @@ elif test x"$with_locking" = x"fcntl"; then
   LOCKTYPE="fcntl"
   AC_DEFINE(FCNTL_LOCKING, 1, [Define to use fnctl() based locking.])dnl
 else
-  LOCKTYPE="dot"
-  AC_DEFINE(DOT_LOCKING)dnl
+  LOCKTYPE="$default_locktype"
+  AC_DEFINE_UNQUOTED($default_locking, 1)dnl
 fi
 
 dnl Should we use a locking directory?
-AC_ARG_ENABLE([lockdir], [
-  AS_HELP_STRING([--enable-lockdir=dir], [Store dot-lock files in "dir"])], [
+AC_ARG_ENABLE([lockdir],
+  [AS_HELP_STRING([--enable-lockdir=dir], [Store dot-lock files in "dir"])], [
   AS_IF([test "x$enableval" = xyes],[
     AC_MSG_ERROR([--enable-lockdir requires an argument])])
   AS_IF([test "x$LOCKTYPE" != xdot],[
@@ -115,24 +111,31 @@ AC_ARG_ENABLE([lockdir], [
 
 dnl What method of posting should post use?
 AC_ARG_WITH([mts],
-  AS_HELP_STRING([--with-mts=@<:@smtp|sendmail@:>@],
+  AS_HELP_STRING([--with-mts=@<:@smtp|sendmail/smtp|sendmail/pipe@:>@],
   [specify the default mail transport agent/service]))
 
 AS_IF([test x"$with_mts" = x"smtp"], [MTS="smtp"],
-      [test x"$with_mts" = x"sendmail"], [MTS="sendmail"],
+      [test x"$with_mts" = x"sendmail"], [MTS="sendmail/smtp"],
+      [test x"$with_mts" = x"sendmail/smtp"], [MTS="sendmail/smtp"],
+      [test x"$with_mts" = x"sendmail/pipe"], [MTS="sendmail/pipe"],
       [MTS="smtp"])
 AC_SUBST([MTS])dnl
 
-dnl Both the smtp and sendmail mail transport services use the smtp code
-AC_DEFINE([SMTPMTS], [1],
-  [Define if you want SMTP (simple mail transport protocol) support.])dnl
-
 dnl What should be the default pager?
 AC_ARG_WITH([pager],
   AS_HELP_STRING([--with-pager=PAGER],[specify the default pager]))
 
 AS_IF([test -n "$with_pager"], [pagerpath="$with_pager"])
 
+dnl If a pager is not explicitly specified, then look for one.
+dnl Fall back to `cat', to avoid catastrophic failure of
+dnl `mhshow', et al., if pagerpath is set to `no'.
+if test -z "$pagerpath"; then
+  pathtmp=/usr/bin:/bin:/usr/ucb:/usr/local/bin
+  AC_PATH_PROGS([pagerpath], [more less most cat], [no], [$pathtmp])
+fi
+AC_SUBST(pagerpath)dnl
+
 dnl What should be the default mail server(s)?
 AC_ARG_WITH(smtpservers,
   AS_HELP_STRING([--with-smtpservers='SMTPSERVER1@<:@ SMTPSERVER2...@:>@'],
@@ -173,6 +176,19 @@ if test "$nmh_cv_has_unusedmacros" = 'yes'; then
 fi
 AC_SUBST(DISABLE_UNUSED_MACROS_WARNING)dnl
 
+AC_CACHE_CHECK([whether compiler supports -Wno-sign-compare],
+  [nmh_cv_has_nosigncompare],
+  [nmh_saved_cppflags="$CPPFLAGS"
+   CPPFLAGS="$CPPFLAGS -Wno-sign-compare"
+   AC_TRY_COMPILE([],[],nmh_cv_has_nosigncompare=yes,
+                  nmh_cv_has_nosigncompare=no)
+   CPPFLAGS="$nmh_saved_cppflags"])
+
+if test "$nmh_cv_has_nosigncompare" = 'yes'; then
+  DISABLE_SIGN_COMPARE_WARNING=-Wno-sign-compare
+fi
+AC_SUBST(DISABLE_SIGN_COMPARE_WARNING)dnl
+
 AC_CACHE_CHECK([whether compiler supports -Wextra], [nmh_cv_has_wextra],
 [nmh_saved_cflags="$CFLAGS"
  CFLAGS="$CFLAGS -Wextra -Wno-clobbered"
@@ -185,6 +201,25 @@ AC_CACHE_CHECK([whether compiler supports -Wno-pointer-sign], [nmh_cv_has_noptrs
  AC_TRY_COMPILE([],[],nmh_cv_has_noptrsign=yes,nmh_cv_has_noptrsign=no)
  CFLAGS="$nmh_saved_cflags"])
 
+dnl Can't use -ansi with gcc 4.5.3 on Cygwin, at least through setup
+dnl setup version 2.763, because it disables some features in the
+dnl system system header files and warns about them with -Wall.  Try
+dnl to test for that generally, though still with gcc.
+if test "$GCC" = yes; then
+  AC_CACHE_CHECK([whether we can use -ansi with gcc], [nmh_cv_has_dash_ansi],
+    [nmh_saved_cppflags="$CPPFLAGS"
+     nmh_saved_cflags="$CFLAGS"
+     CPPFLAGS="-D_GNU_SOURCE"
+     CFLAGS="-ansi -Wall -Werror"
+     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <time.h>],[tzset();])],
+       [nmh_cv_has_dash_ansi=yes],
+       [nmh_cv_has_dash_ansi=no])
+     CPPFLAGS="$nmh_saved_cppflags"
+     CFLAGS="$nmh_saved_cflags"])
+else
+  nmh_cv_has_dash_ansi=no
+fi
+
 dnl if the user hasn't specified CFLAGS, then
 dnl   if compiler is gcc, then
 dnl    use -O2 and some warning flags
@@ -194,16 +229,22 @@ dnl also use -Wno-pointer-sign, because gcc 4 now produces a lot of new
 dnl warnings which are probably mostly spurious and which in any case we
 dnl don't want to deal with now.
 if test "$nmh_cv_has_noptrsign" = "yes"; then
+    if test "$nmh_cv_has_dash_ansi" = "yes"; then
+        nmh_gcc_common_flags="-ansi -pedantic -Wall"
+    else
+        nmh_gcc_common_flags="-Wall"
+    fi
     if test "$nmh_cv_has_wextra" = "yes"; then
-        nmh_gcc_warnflags="-Wall -Wextra -Wno-clobbered -Wno-pointer-sign"
+        nmh_gcc_warnflags="${nmh_gcc_common_flags} -Wextra -Wno-clobbered "\
+"-Wno-pointer-sign"
     else
-        nmh_gcc_warnflags="-Wall -Wno-pointer-sign"
+        nmh_gcc_warnflags="${nmh_gcc_common_flags} -Wno-pointer-sign"
     fi
 else
     if test "$nmh_cv_has_wextra" = "yes"; then
-        nmh_gcc_warnflags="-Wall -Wextra -Wno-clobbered"
+        nmh_gcc_warnflags="${nmh_gcc_common_flags} -Wextra -Wno-clobbered"
     else
-        nmh_gcc_warnflags="-Wall"
+        nmh_gcc_warnflags="${nmh_gcc_common_flags}"
     fi
 fi
 
@@ -247,7 +288,17 @@ AC_PROG_LEX             dnl Check for lex/flex
 
 dnl Look for `cut'
 pathtmp=/usr/bin:/bin:/usr/local/bin:/usr/xpg4/bin:/usr/ucb
-AC_PATH_PROG(cutpath, cut, no, [$pathtmp])
+AC_PATH_PROG([cutpath], [cut], [no], [$pathtmp])
+
+dnl
+dnl Check for MD5 program and formatting command
+dnl
+AC_CHECK_PROGS([MD5SUM], [md5sum md5], [missing])
+AS_CASE(["${MD5SUM}"],
+       [md5sum], [MD5FMT="cat"],
+       [md5], [[MD5FMT="${SED} -e 's/MD5 *(\(.*\)) *= \([0-9a-f]*\)/\2  \1/'"]],
+       [MD5FMT="missing"])
+AC_SUBST([MD5FMT])
 
 dnl ----------------------------------------------
 dnl check for lclint, and lint if it doesn't exist
@@ -288,17 +339,6 @@ if test "$lspath" != "no"; then
   fi])
 fi
 
-dnl Look for `more'
-pathtmp=/usr/bin:/bin:/usr/ucb:/usr/local/bin
-AC_PATH_PROG([morepath], [more], [no], [$pathtmp])
-
-dnl If pager is not specified yet,
-dnl then use `more' as the default.
-if test -z "$pagerpath"; then
-  pagerpath="$morepath"
-fi
-AC_SUBST(pagerpath)dnl
-
 dnl Look for `sendmail'
 pathtmp=/usr/lib:/usr/sbin:/usr/etc:/usr/ucblib:/usr/bin:/bin
 AC_PATH_PROG([sendmailpath], [sendmail], [/usr/sbin/sendmail], [$pathtmp])
@@ -312,6 +352,13 @@ dnl then use `vi' as the default.
 AS_IF([test -z "$editorpath"], [editorpath="$vipath"])
 AC_SUBST([editorpath])dnl
 
+dnl Cygwin FAT filesystems do not support hard links.  So default to
+dnl cp instead, even if running on an NTFS or other filesystem.
+AS_CASE(["$host_os"],
+  [cygwin*],[LN=cp],
+  [LN=ln])
+AC_SUBST([LN])
+
 dnl ----------------------------------------------------------
 dnl FIND MAIL SPOOL AND SEE IF WE NEED TO MAKE inc SETGID MAIL
 dnl ----------------------------------------------------------
@@ -355,6 +402,12 @@ if test "$ac_cv_lib_lockfile_lockfile_create" != "no" ; then
   fi
 fi
 
+dnl Provide a way for distcheck to disable setgid_mail via
+dnl DISTCHECK_CONFIGURE_FLAGS.
+if test x"$DISABLE_SETGID_MAIL" != x -a x"$DISABLE_SETGID_MAIL" != x0; then
+  nmh_cv_dotlockfile_setgid=yes
+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"$LOCKTYPE" = x"dot" -a x"$nmh_cv_mailspool_world_writable" = x"no" -a x"$nmh_cv_dotlockfile_setgid" != x"yes" ; then
@@ -417,14 +470,18 @@ AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1,
 dnl ---------------
 dnl CHECK FUNCTIONS
 dnl ---------------
-AC_CHECK_FUNCS([writev lstat nl_langinfo])
+AC_CHECK_FUNCS([wcwidth mbtowc writev lstat nl_langinfo getutxent])
 
 dnl Check for multibyte character set support
-if test "x$ac_cv_header_wchar_h" = "xyes" -a "x$ac_cv_header_wctype_h" = "xyes" \
-    -a "x$ac_cv_func_wcwidth" = "xyes" -a "x$ac_cv_func_mbtowc" = "xyes"; then
-  AC_DEFINE(MULTIBYTE_SUPPORT, 1,
-    [Define to enable support for multibyte character sets.])
-fi
+AS_IF([test "x$ac_cv_header_wchar_h" = "xyes" -a \
+           "x$ac_cv_header_wctype_h" = "xyes" -a \
+           "x$ac_cv_func_wcwidth" = "xyes" -a \
+           "x$ac_cv_func_mbtowc" = "xyes"],
+      [AC_DEFINE([MULTIBYTE_SUPPORT], [1],
+                [Define to enable support for multibyte character sets.])
+       MULTIBYTE_ENABLED=1],
+      [MULTIBYTE_ENABLED=0])
+AC_SUBST([MULTIBYTE_ENABLED])
 
 dnl -------------------
 dnl CHECK FOR LIBRARIES
@@ -435,6 +492,8 @@ AC_CHECK_FUNC([modf], , AC_CHECK_LIB([m], [modf]))
 dnl Checks for network libraries (nsl, socket)
 NMH_CHECK_NETLIBS
 
+NMH_READLINE
+
 termcap_curses_order="termcap curses ncurses"
 for lib in $termcap_curses_order; do
   AC_CHECK_LIB(${lib}, tgetent, [TERMLIB="-l$lib"; break])
@@ -752,7 +811,6 @@ file locking type          : ${LOCKTYPE}
 default smtp servers       : ${smtpservers}
 default editor             : ${editorpath}
 default pager              : ${pagerpath}
-email address masquerading : ${masquerade}
 SASL support               : ${sasl_support}
 TLS support                : ${tls_support}
 ])])dnl
@@ -760,5 +818,6 @@ TLS support                : ${tls_support}
 dnl ---------------
 dnl OUTPUT MAKEFILE
 dnl ---------------
-AC_CONFIG_FILES([Makefile])
+AC_CONFIG_FILES([Makefile test/common.sh])
+AC_CONFIG_FILES([uip/spost], [chmod +x uip/spost])
 AC_OUTPUT