X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/3800e2f1d7cbd085f8faf8df6141f92e8ee0617e..81661ad29fa62d2bbf7bdb4b499d65efb07954dc:/configure.ac diff --git a/configure.ac b/configure.ac index 5f6b556d..6d140bc2 100644 --- a/configure.ac +++ b/configure.ac @@ -92,73 +92,68 @@ dnl CHECK THE COMPILER dnl ------------------ dnl We want these before the checks, dnl so the checks can modify their values. -test -z "$CFLAGS" && CFLAGS= auto_cflags=1 +test -z "$CFLAGS" && auto_cflags=1 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"]) - -dnl Can't use -ansi with gcc 4.5.3 on Cygwin, at least through setup -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" - nmh_saved_cflags="$CFLAGS" - CPPFLAGS="-D_GNU_SOURCE" - CFLAGS="-ansi -Wall -Werror" - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ],[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 -dnl else use -O -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_dash_ansi" = "yes"; then - nmh_gcc_warnflags="-ansi -pedantic -Wall" -else - nmh_gcc_warnflags="-Wall" -fi -if test "$nmh_cv_has_wextra" = "yes"; then - nmh_gcc_warnflags="${nmh_gcc_warnflags} -Wextra" -fi - +dnl ---------------- +dnl CUSTOMIZE CFLAGS +dnl ---------------- if test -n "$auto_cflags"; then - if test x"$enable_debug" = x"yes"; then - if test -n "$GCC"; then - test -z "$CFLAGS" && CFLAGS="$nmh_gcc_warnflags -g" || CFLAGS="$CFLAGS $nmh_gcc_warnflags -g" - else - test -z "$CFLAGS" && CFLAGS=-g || CFLAGS="$CFLAGS -g" - fi + dnl The user didn't specify CFLAGS, so customize them. + if test "$GCC" = yes; then + dnl Can't use -ansi with gcc 4.5.3 on Cygwin, at least through setup + 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, with gcc. + 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 ],[tzset();])], + [nmh_cv_has_dash_ansi=yes], + [nmh_cv_has_dash_ansi=no]) + CPPFLAGS="$nmh_saved_cppflags" + CFLAGS="$nmh_saved_cflags"]) + test "$nmh_cv_has_dash_ansi" = "yes" && \ + CFLAGS="${CFLAGS:+$CFLAGS }-ansi -pedantic" else - 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 + dnl Use -v and some other options with SunStudio cc. lex produces + dnl code that causes unreachable-statement warnings. It might be + dnl better to use an autoconf test, except -v will probably succeed + dnl with many other compilers but have different meaning. + AS_CASE([`${CC} -V 2>&1`], + [cc:\ Sun\ C*], [CFLAGS=\ +"${CFLAGS:+$CFLAGS }-v -errtags=yes -erroff=E_STATEMENT_NOT_REACHED"]) fi + + AC_CACHE_CHECK([whether compiler supports -Wall], [nmh_cv_has_wall], + [nmh_saved_cflags="$CFLAGS" + CFLAGS="$CFLAGS -Wall -Werror" + AC_TRY_COMPILE([],[],nmh_cv_has_wall=yes,nmh_cv_has_wall=no) + CFLAGS="$nmh_saved_cflags"]) + test "$nmh_cv_has_wall" = "yes" && CFLAGS="${CFLAGS:+$CFLAGS }-Wall" + + 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"]) + test "$nmh_cv_has_wextra" = "yes" && CFLAGS="${CFLAGS:+$CFLAGS }-Wextra" +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 @@ -329,6 +324,19 @@ AC_CACHE_CHECK(what group owns the mail spool, nmh_cv_ls_mail_grp, MAIL_SPOOL_GRP=$nmh_cv_ls_mail_grp AC_SUBST(MAIL_SPOOL_GRP)dnl +dnl --------------------------------------------- +dnl CHECK FOR PROGRAM TO PROVIDE MIME TYPE STRING +dnl --------------------------------------------- +AS_IF([file --mime "${srcdir}"/configure >/dev/null 2>&1], + [AS_IF([file --brief --mime "${srcdir}"/configure >/dev/null 2>&1], + [nmh_mimetypeproc='"file --brief --mime"'], + [nmh_mimetypeproc='"file --mime"'])]) +AS_CASE([$nmh_mimetypeproc], [?*], + [AC_DEFINE_UNQUOTED([MIMETYPEPROC], [$nmh_mimetypeproc], + [Program, with arguments, that provides MIME type string.])]) +AS_ECHO_N(["AS_ESCAPE([checking program to provide MIME type string ... ])"]) +AS_ECHO(["AS_ESCAPE([$nmh_mimetypeproc], [""])"]) + dnl ------------------ dnl CHECK HEADER FILES dnl ------------------ @@ -585,14 +593,16 @@ 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 2.5.36 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 $@']) +'; printf "%s\n" '\''1,$$s/(size_t) \(num_to_read\)/\1/'\'' w q | ed -s $@; \ +true'], + [flex\ 2.5.36], [LFLAGS=\ +'; printf "%s\n" '\''1,$$s/\( \)int i;/\1yy_size_t i;/'\'' w q | ed -s $@; \ +true']) AC_SUBST([LFLAGS])]) dnl --------------