X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/17932f7aea1c21cf17738f47996345d9d0a6ce51..a8bb0c0d8fcfa7f5b43dee30ccfdf799bbbf8520:/configure.ac?ds=sidebyside diff --git a/configure.ac b/configure.ac index de7f93f1..868b43bb 100644 --- a/configure.ac +++ b/configure.ac @@ -93,29 +93,25 @@ 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_debug" = x"yes"; then - test -z "$LDFLAGS" && LDFLAGS=-g -fi -AC_PROG_CC +AC_PROG_CC([cc gcc]) AM_PROG_CC_C_O +dnl Use -v and some other options with SunStudio cc. +AS_CASE([`${CC} -V 2>&1`], + [cc:\ Sun\ C*], [CFLAGS="${CFLAGS:+$CFLAGS }-v -errtags=yes" + CFLAGS="${CFLAGS} -erroff=E_STATEMENT_NOT_REACHED"]) + AC_CACHE_CHECK([whether compiler supports -Wextra], [nmh_cv_has_wextra], [nmh_saved_cflags="$CFLAGS" 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-clobbered], [nmh_cv_has_noclobbered], -[nmh_saved_cflags="$CFLAGS" - CFLAGS="$CFLAGS -Wno-clobbered -Werror" - AC_TRY_COMPILE([],[],nmh_cv_has_noclobbered=yes,nmh_cv_has_noclobbered=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" @@ -147,9 +143,6 @@ fi if test "$nmh_cv_has_wextra" = "yes"; then nmh_gcc_warnflags="${nmh_gcc_warnflags} -Wextra" fi -if test "$nmh_cv_has_noclobbered" = "yes"; then - nmh_gcc_warnflags="${nmh_gcc_warnflags} -Wno-clobbered" -fi if test -n "$auto_cflags"; then if test x"$enable_debug" = x"yes"; then @@ -159,26 +152,59 @@ if test -n "$auto_cflags"; then test -z "$CFLAGS" && CFLAGS=-g || CFLAGS="$CFLAGS -g" fi else - if test -z "$LDFLAGS"; then - case "$build_os" in - darwin*) - LDFLAGS= - ;; - *) - LDFLAGS=-s - ;; - esac - fi if test -n "$GCC"; then test -z "$CFLAGS" && CFLAGS="$nmh_gcc_warnflags -O2" || CFLAGS="$CFLAGS $nmh_gcc_warnflags -O2" else test -z "$CFLAGS" && CFLAGS=-O || CFLAGS="$CFLAGS -O" fi - AC_DEFINE([NDEBUG], [1], - [Define to disable run-time debugging and asserts.]) fi fi +dnl -------------- +dnl CUSTOMIZE LINK +dnl -------------- +if test `uname` = OpenBSD; then + dnl Filter out "often/almost always misused" warnings from OpenBSD linker. + [POSTLINK="2>&1 | egrep -v ': [w]arning: s[a-z]+\(\) is \ +(almost always|often) misused, please use'; true"] +fi +AC_SUBST([POSTLINK]) + +dnl ----------------- +dnl CUSTOMIZE LDFLAGS +dnl ----------------- +if test "$GCC" = yes; then + 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"]) + test "$nmh_cv_has_q_unused_arguments" = "yes" && \ + LDFLAGS="${LDFLAGS:+$LDFLAGS }-Qunused-arguments" +fi + +dnl This really shouldn't be necessary. And we really shouldn't add -s. +if test x"$enable_debug" = x"yes"; then + test -z "$LDFLAGS" && LDFLAGS=-g +else + if test -z "$LDFLAGS"; then + case "$build_os" in + darwin*) LDFLAGS= ;; + *) LDFLAGS=-s ;; + esac + fi +fi + +dnl This hack turns off assertions by default, assuming +dnl that configure still uses this shell variable. Without +dnl it, AC_HEADER_ASSERT enables assertions by default. +test -z "$enable_assert" && enable_assert=no + +AC_HEADER_ASSERT + dnl ------------------ dnl CHECK FOR PROGRAMS dnl ------------------ @@ -192,7 +218,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 @@ -222,7 +248,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 @@ -238,13 +264,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]) @@ -347,7 +373,7 @@ AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1, dnl --------------- dnl CHECK FUNCTIONS dnl --------------- -AC_CHECK_FUNCS([wcwidth mbtowc writev lstat nl_langinfo getutxent]) +AC_CHECK_FUNCS([wcwidth mbtowc writev lstat nl_langinfo getutxent arc4random]) dnl Check for multibyte character set support AS_IF([test "x$ac_cv_header_wchar_h" = "xyes" -a \ @@ -565,6 +591,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 --------------