]> diplodocus.org Git - nmh/blobdiff - configure.ac
That didn't work, so try this awk command from Robert Elz.
[nmh] / configure.ac
index cf69894fa516355acc131b92f5a9c4d7c81e4910..520c8d42dbdcb44850feaeac9b2a5bd38dd18fde 100644 (file)
@@ -54,12 +54,6 @@ AS_IF([test x"$with_tls" != x -a x"$with_tls" != x"no"],[
       AC_DEFINE([TLS_SUPPORT], [1], [Support TLS for session encryption.])dnl
       tls_support=yes],[tls_support=no])
 
       AC_DEFINE([TLS_SUPPORT], [1], [Support TLS for session encryption.])dnl
       tls_support=yes],[tls_support=no])
 
-dnl What should be the default editor?
-AC_ARG_WITH([editor],
-  AS_HELP_STRING([--with-editor=EDITOR],[specify the default editor]))
-
-AS_IF([test -n "$with_editor"], [editorpath="$with_editor"])
-
 dnl Set the backup prefix
 AC_ARG_WITH([hash-backup],
   AS_HELP_STRING([--with-hash-backup],[use # as the backup prefix (default: ,)]))
 dnl Set the backup prefix
 AC_ARG_WITH([hash-backup],
   AS_HELP_STRING([--with-hash-backup],[use # as the backup prefix (default: ,)]))
@@ -68,43 +62,6 @@ AS_IF([test x"$with_hash_backup" != x -a x"$with_hash_backup" != x"no"],
 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
 
 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]))
-
-AS_IF([test x"$with_locking" = x"dot"],
-    [LOCKTYPE="dot"
-    AC_DEFINE([DOT_LOCKING], [1], [Define to use dot based file locking.])],
-  [test x"$with_locking" = x"flock"],
-    [LOCKTYPE="flock"
-    AC_DEFINE([FLOCK_LOCKING], [1], [Define to use flock() based locking.])],
-  [test x"$with_locking" = x"lockf"],
-    [LOCKTYPE="lockf"
-    AC_DEFINE([LOCKF_LOCKING], [1], [Define to use lockf() based locking.])],
-  [test x"$with_locking" = x"fcntl"],
-    [LOCKTYPE="fcntl"
-    AC_DEFINE([FCNTL_LOCKING], [1], [Define to use fnctl() based locking.])],
-  [LOCKTYPE="$default_locktype"
-  AC_DEFINE_UNQUOTED([$default_locking], [1])])
-
-dnl Should we use a locking directory?
-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],[
-    AC_MSG_ERROR([Can only use --enable-lockdir with dot locking])])
-  AC_DEFINE_UNQUOTED([LOCKDIR], ["$enableval"],
-                    [Directory to store dot-locking lock files])
-])
-
 dnl What method of posting should post use?
 AC_ARG_WITH([mts],
   AS_HELP_STRING([--with-mts=@<:@smtp|sendmail/smtp|sendmail/pipe@:>@],
 dnl What method of posting should post use?
 AC_ARG_WITH([mts],
   AS_HELP_STRING([--with-mts=@<:@smtp|sendmail/smtp|sendmail/pipe@:>@],
@@ -117,20 +74,6 @@ AS_IF([test x"$with_mts" = x"smtp"], [MTS="smtp"],
       [MTS="smtp"])
 AC_SUBST([MTS])dnl
 
       [MTS="smtp"])
 AC_SUBST([MTS])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'.
-AS_IF([test -z "$pagerpath"],
-  [pathtmp=/usr/bin:/bin:/usr/ucb:/usr/local/bin
-  AC_PATH_PROGS([pagerpath], [more less most cat], [no], [$pathtmp])])
-AC_SUBST([pagerpath])dnl
-
 dnl What should be the default mail server(s)?
 AC_ARG_WITH([smtpservers],
   [AS_HELP_STRING([--with-smtpservers='SMTPSERVER1@<:@ SMTPSERVER2...@:>@'],
 dnl What should be the default mail server(s)?
 AC_ARG_WITH([smtpservers],
   [AS_HELP_STRING([--with-smtpservers='SMTPSERVER1@<:@ SMTPSERVER2...@:>@'],
@@ -157,45 +100,12 @@ fi
 AC_PROG_CC
 AM_PROG_CC_C_O
 
 AC_PROG_CC
 AM_PROG_CC_C_O
 
-AC_CACHE_CHECK([whether preprocessor supports -Wunused-macros],
-  [nmh_cv_has_unusedmacros],
-  [nmh_saved_cppflags="$CPPFLAGS"
-   CPPFLAGS="$CPPFLAGS -Wunused-macros -Wno-unused-macros"
-   AC_TRY_COMPILE([],[],nmh_cv_has_unusedmacros=yes,nmh_cv_has_unusedmacros=no)
-   CPPFLAGS="$nmh_saved_cppflags"])
-
-if test "$nmh_cv_has_unusedmacros" = 'yes'; then
-  test -z "$CPPFLAGS"  &&  CPPFLAGS=-Wunused-macros \
-                      ||  CPPFLAGS="$CPPFLAGS -Wunused-macros"
-  DISABLE_UNUSED_MACROS_WARNING=-Wno-unused-macros
-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"
 AC_CACHE_CHECK([whether compiler supports -Wextra], [nmh_cv_has_wextra],
 [nmh_saved_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -Wextra -Wno-clobbered"
+ CFLAGS="$CFLAGS -Wextra -Werror"
  AC_TRY_COMPILE([],[],nmh_cv_has_wextra=yes,nmh_cv_has_wextra=no)
  CFLAGS="$nmh_saved_cflags"])
 
  AC_TRY_COMPILE([],[],nmh_cv_has_wextra=yes,nmh_cv_has_wextra=no)
  CFLAGS="$nmh_saved_cflags"])
 
-AC_CACHE_CHECK([whether compiler supports -Wno-pointer-sign], [nmh_cv_has_noptrsign],
-[nmh_saved_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -Wno-pointer-sign"
- 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 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
@@ -211,6 +121,20 @@ if test "$GCC" = yes; then
        [nmh_cv_has_dash_ansi=no])
      CPPFLAGS="$nmh_saved_cppflags"
      CFLAGS="$nmh_saved_cflags"])
        [nmh_cv_has_dash_ansi=no])
      CPPFLAGS="$nmh_saved_cppflags"
      CFLAGS="$nmh_saved_cflags"])
+
+  dnl Disable clang complaint about unused -ansi when linking.
+  AC_CACHE_CHECK([whether linker supports -Qunused-arguments],
+                 [nmh_cv_has_q_unused_arguments],
+    [nmh_saved_ldflags="$LDFLAGS"
+     LDFLAGS="$LDFLAGS -Qunused-arguments"
+     AC_TRY_LINK([],[],nmh_cv_has_q_unused_arguments=yes,
+                 nmh_cv_has_q_unused_arguments=no)
+     LDFLAGS="$nmh_saved_ldflags"])
+
+  if test "$nmh_cv_has_q_unused_arguments" = "yes"; then
+    test -z "$LDFLAGS" && LDFLAGS=-Qunused-arguments \
+                       || LDFLAGS="$LDFLAGS -Qunused-arguments"
+  fi
 else
   nmh_cv_has_dash_ansi=no
 fi
 else
   nmh_cv_has_dash_ansi=no
 fi
@@ -223,24 +147,13 @@ dnl We use -Wall and -Wextra if supported.  If the compiler supports it we
 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.
 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="${nmh_gcc_common_flags} -Wextra -Wno-clobbered "\
-"-Wno-pointer-sign"
-    else
-        nmh_gcc_warnflags="${nmh_gcc_common_flags} -Wno-pointer-sign"
-    fi
+if test "$nmh_cv_has_dash_ansi" = "yes"; then
+    nmh_gcc_warnflags="-ansi -pedantic -Wall"
 else
 else
-    if test "$nmh_cv_has_wextra" = "yes"; then
-        nmh_gcc_warnflags="${nmh_gcc_common_flags} -Wextra -Wno-clobbered"
-    else
-        nmh_gcc_warnflags="${nmh_gcc_common_flags}"
-    fi
+    nmh_gcc_warnflags="-Wall"
+fi
+if test "$nmh_cv_has_wextra" = "yes"; then
+    nmh_gcc_warnflags="${nmh_gcc_warnflags} -Wextra"
 fi
 
 if test -n "$auto_cflags"; then
 fi
 
 if test -n "$auto_cflags"; then
@@ -266,6 +179,8 @@ if test -n "$auto_cflags"; then
     else
       test -z "$CFLAGS" && CFLAGS=-O  || CFLAGS="$CFLAGS -O"
     fi
     else
       test -z "$CFLAGS" && CFLAGS=-O  || CFLAGS="$CFLAGS -O"
     fi
+    AC_DEFINE([NDEBUG], [1],
+              [Define to disable run-time debugging and asserts.])
   fi
 fi
 
   fi
 fi
 
@@ -282,7 +197,7 @@ AM_PROG_LEX             dnl Check for lex/flex
 AM_PROG_AR
 
 dnl Look for `cut'
 AM_PROG_AR
 
 dnl Look for `cut'
-pathtmp=/usr/bin:/bin:/usr/local/bin:/usr/xpg4/bin:/usr/ucb
+pathtmp=/usr/xpg4/bin:/usr/bin:/bin:/usr/local/bin:/usr/ucb
 AC_PATH_PROG([cutpath], [cut], [no], [$pathtmp])
 
 dnl
 AC_PATH_PROG([cutpath], [cut], [no], [$pathtmp])
 
 dnl
@@ -291,7 +206,7 @@ dnl
 AC_CHECK_PROGS([MD5SUM], [md5sum md5], [missing])
 AS_CASE(["${MD5SUM}"],
        [md5sum], [MD5FMT="cat"],
 AC_CHECK_PROGS([MD5SUM], [md5sum md5], [missing])
 AS_CASE(["${MD5SUM}"],
        [md5sum], [MD5FMT="cat"],
-       [md5], [[MD5FMT="${SED} -e 's/MD5 *(\(.*\)) *= \([0-9a-f]*\)/\2  \1/'"]],
+       [md5], [[MD5FMT="${SED} -e 's/MD5 *(.*) *= \([0-9a-f]*\)/\1/'"]],
        [MD5FMT="missing"])
 AC_SUBST([MD5FMT])
 
        [MD5FMT="missing"])
 AC_SUBST([MD5FMT])
 
@@ -312,7 +227,7 @@ AC_SUBST([LINT])dnl
 AC_SUBST([LINTFLAGS])dnl
 
 dnl Look for `ls'
 AC_SUBST([LINTFLAGS])dnl
 
 dnl Look for `ls'
-pathtmp=/usr/bin:/bin:/usr/local/bin:/usr/xpg4/bin:/usr/ucb
+pathtmp=/usr/xpg4/bin:/usr/bin:/bin:/usr/local/bin:/usr/ucb
 AC_PATH_PROG([lspath], [ls], [no], [$pathtmp])
 
 dnl See how we get ls to display the owner and the group
 AC_PATH_PROG([lspath], [ls], [no], [$pathtmp])
 
 dnl See how we get ls to display the owner and the group
@@ -328,22 +243,13 @@ AS_IF([test "$lspath" != "no"],
     nmh_cv_ls_grpopt="-lg"])])])
 
 dnl Look for `sendmail'
     nmh_cv_ls_grpopt="-lg"])])])
 
 dnl Look for `sendmail'
-pathtmp=/usr/lib:/usr/sbin:/usr/etc:/usr/ucblib:/usr/bin:/bin
+pathtmp=/usr/sbin:/usr/lib:/usr/etc:/usr/ucblib:/usr/bin:/bin
 AC_PATH_PROG([sendmailpath], [sendmail], [/usr/sbin/sendmail], [$pathtmp])
 
 AC_PATH_PROG([sendmailpath], [sendmail], [/usr/sbin/sendmail], [$pathtmp])
 
-dnl Look for `vi'
-pathtmp=/usr/bin:/bin:/usr/ucb:/usr/local/bin
-AC_PATH_PROG([vipath], [vi], [/bin/vi], [$pathtmp])
-
-dnl If editor is not specified yet,
-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"],
 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],
+  [cygwin*], [LN=cp],
   [LN=ln])
 AC_SUBST([LN])
 
   [LN=ln])
 AC_SUBST([LN])
 
@@ -436,15 +342,6 @@ AC_HEADER_TIOCGWINSZ
 AC_CHECK_HEADERS([fcntl.h ncurses/termcap.h termcap.h langinfo.h \
                   wchar.h wctype.h sys/param.h sys/time.h sys/stream.h])
 
 AC_CHECK_HEADERS([fcntl.h ncurses/termcap.h termcap.h langinfo.h \
                   wchar.h wctype.h sys/param.h sys/time.h sys/stream.h])
 
-dnl
-dnl Checks for _IO_write_ptr. A Linuxism used by nmh on linux. We
-dnl really use a whole set of them, but this check should be
-dnl sufficient.
-dnl
-AC_CHECK_HEADER(libio.h, [
-  AC_EGREP_HEADER(_IO_write_ptr, libio.h, [
-    AC_DEFINE(LINUX_STDIO,1,[Use the Linux _IO_*_ptr defines from <libio.h>.]) ]) ])
-
 AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1,
   [Define to 1 if `struct winsize' requires <sys/ptem.h>.]),,
 [[#if HAVE_SYS_STREAM_H
 AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1,
   [Define to 1 if `struct winsize' requires <sys/ptem.h>.]),,
 [[#if HAVE_SYS_STREAM_H
@@ -480,6 +377,9 @@ NMH_CHECK_NETLIBS
 dnl Check for readline support
 NMH_READLINE
 
 dnl Check for readline support
 NMH_READLINE
 
+dnl Check the locking functions supported and what we should use by default
+NMH_LOCKING
+
 dnl Check for iconv
 NMH_CHECK_ICONV
 
 dnl Check for iconv
 NMH_CHECK_ICONV
 
@@ -670,6 +570,20 @@ dnl Now put the libraries back to what it was before we
 dnl starting checking the termcap library.
 LIBS="$nmh_save_LIBS"
 
 dnl starting checking the termcap library.
 LIBS="$nmh_save_LIBS"
 
+dnl ----------------
+dnl CHECK FLEX FIXUP
+dnl ----------------
+dnl Use LFLAGS make variable setting to work around bugs in flex
+dnl 2.5.35-37 that cause signed/unsigned mismatch,
+dnl http://sourceforge.net/p/flex/bugs/140/
+AS_IF([test "$LEX" = flex],
+      [AS_CASE([`$LEX -V`],
+               [flex\ 2.5.35], [[LFLAGS=\
+'; printf "%s\n" '\''1,$$s/(size_t) \(num_to_read\)/\1/'\'' w q | ed -s $@']],
+               [flex\ 2.5.3@<:@67@:>@], [[LFLAGS=\
+'; printf "%s\n" '\''1,$$s/\(  \)int i;/\1yy_size_t i;/'\'' w q | ed -s $@']])
+       AC_SUBST([LFLAGS])])
+
 dnl --------------
 dnl CHECK TYPEDEFS
 dnl --------------
 dnl --------------
 dnl CHECK TYPEDEFS
 dnl --------------
@@ -751,10 +665,8 @@ man page install path      : ${nmhman}
 RPM build root             : ${nmhrpm}
 backup prefix              : ${backup_prefix}
 transport system           : ${MTS}
 RPM build root             : ${nmhrpm}
 backup prefix              : ${backup_prefix}
 transport system           : ${MTS}
-file locking type          : ${LOCKTYPE}
+spool default locking type : ${with_locking}
 default smtp servers       : ${smtpservers}
 default smtp servers       : ${smtpservers}
-default editor             : ${editorpath}
-default pager              : ${pagerpath}
 SASL support               : ${sasl_support}
 TLS support                : ${tls_support}
 ])])dnl
 SASL support               : ${sasl_support}
 TLS support                : ${tls_support}
 ])])dnl