]> diplodocus.org Git - nmh/blobdiff - configure.ac
Removed a bunch of unreachable break statements found by
[nmh] / configure.ac
index 3a91e19a9885412b044e255a4d2980cc5ca92c69..f206b8092c36462a062d3d172d788fc747a4b65d 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])
 
-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: ,)]))
@@ -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
 
-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@:>@],
@@ -117,20 +74,6 @@ AS_IF([test x"$with_mts" = x"smtp"], [MTS="smtp"],
       [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...@:>@'],
@@ -154,52 +97,26 @@ if test x"$enable_debug" = x"yes"; then
   test -z "$LDFLAGS" && LDFLAGS=-g
 fi
 
+dnl Use SunStudio cc, with -v, on Solaris if user didn't set CC.
+if test -z "$CC"  -a  -d /opt/solarisstudio12.3/bin; then
+  CC=/opt/solarisstudio12.3/bin/cc; export CC
+  ${CC} -V
+  CFLAGS="${CFLAGS:+$CFLAGS }-v"
+fi
+
 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"
- 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_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 to test for that generally, though still with gcc.
+dnl version 2.763, because it disables some features in the system
+dnl header files and warns about them with -Wall.  Try to test for
+dnl 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"
@@ -211,6 +128,20 @@ if test "$GCC" = yes; then
        [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
@@ -223,24 +154,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.
-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
-    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
@@ -266,6 +186,8 @@ if test -n "$auto_cflags"; then
     else
       test -z "$CFLAGS" && CFLAGS=-O  || CFLAGS="$CFLAGS -O"
     fi
+    AC_DEFINE([NDEBUG], [1],
+              [Define to disable run-time debugging and asserts.])
   fi
 fi
 
@@ -282,7 +204,7 @@ AM_PROG_LEX             dnl Check for lex/flex
 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
@@ -291,7 +213,7 @@ 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/'"]],
+       [md5], [[MD5FMT="${SED} -e 's/MD5 *(.*) *= \([0-9a-f]*\)/\1/'"]],
        [MD5FMT="missing"])
 AC_SUBST([MD5FMT])
 
@@ -312,7 +234,7 @@ AC_SUBST([LINT])dnl
 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
@@ -328,22 +250,13 @@ AS_IF([test "$lspath" != "no"],
     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])
 
-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"],
-  [cygwin*],[LN=cp],
+  [cygwin*], [LN=cp],
   [LN=ln])
 AC_SUBST([LN])
 
@@ -433,18 +346,8 @@ AS_CASE(["$host_os"],
                 [CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"])])
 
 AC_HEADER_TIOCGWINSZ
-AC_CHECK_HEADERS([errno.h fcntl.h crypt.h ncurses/termcap.h termcap.h \
-                  langinfo.h wchar.h wctype.h netdb.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_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_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1,
   [Define to 1 if `struct winsize' requires <sys/ptem.h>.]),,
@@ -481,6 +384,9 @@ NMH_CHECK_NETLIBS
 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
 
@@ -671,6 +577,20 @@ dnl Now put the libraries back to what it was before we
 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 --------------
@@ -752,10 +672,8 @@ man page install path      : ${nmhman}
 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 editor             : ${editorpath}
-default pager              : ${pagerpath}
 SASL support               : ${sasl_support}
 TLS support                : ${tls_support}
 ])])dnl