X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/dbc395a6d80f378a6ebf82dc10334468a2861b0f..43a65e9777214029046fe7a1427493e6e503a717:/configure.ac diff --git a/configure.ac b/configure.ac index d8a51a47..f206b809 100644 --- a/configure.ac +++ b/configure.ac @@ -8,7 +8,7 @@ AC_PREREQ([2.68]) 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 color-tests foreign serial-tests subdir-objects 1.12]) +AM_INIT_AUTOMAKE([-Wall foreign serial-tests subdir-objects 1.12]) AC_CANONICAL_HOST @@ -62,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@:>@], @@ -134,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" @@ -191,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 @@ -203,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 @@ -246,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 @@ -262,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 @@ -271,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]) @@ -292,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 @@ -308,13 +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 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]) @@ -407,15 +349,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]) -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 .]) ]) ]) - AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1, [Define to 1 if `struct winsize' requires .]),, [[#if HAVE_SYS_STREAM_H @@ -451,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 @@ -641,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 -------------- @@ -722,9 +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} SASL support : ${sasl_support} TLS support : ${tls_support} ])])dnl