X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/99eff0a93842acf785ad325d5a19902e9b6c1f3a..a75b45f604c4e48b0f39be25ce59cd1955e5f9a4:/configure.ac diff --git a/configure.ac b/configure.ac index 59389360..ce4b46d5 100644 --- a/configure.ac +++ b/configure.ac @@ -93,13 +93,15 @@ 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" @@ -107,23 +109,23 @@ AC_CACHE_CHECK([whether compiler supports -Wextra], [nmh_cv_has_wextra], 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" - 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 + 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 @@ -150,28 +152,49 @@ 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 - LDFLAGS= - ;; - esac - fi if test -n "$GCC"; then -# test -z "$CFLAGS" && CFLAGS="$nmh_gcc_warnflags -O2" || CFLAGS="$CFLAGS $nmh_gcc_warnflags -O2" - test -z "$CFLAGS" && CFLAGS="$nmh_gcc_warnflags -g" || CFLAGS="$CFLAGS $nmh_gcc_warnflags -g" + 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 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 ------------------ @@ -566,10 +589,10 @@ 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 $@']]) + [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 --------------