diff options
-rw-r--r-- | configure.ac | 12 | ||||
-rw-r--r-- | m4/mpd_check_cflag.m4 | 18 |
2 files changed, 28 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac index 1b8bc0400..81a94afdc 100644 --- a/configure.ac +++ b/configure.ac @@ -10,6 +10,7 @@ AC_SUBST(MPD_CFLAGS) AC_SUBST(MP4FF_LIB) AC_SUBST(MP4FF_SUBDIR) +AC_LANG(C) AC_PROG_CC AM_PROG_CC_C_O AC_PROG_INSTALL @@ -21,8 +22,15 @@ AC_DEFINE(PROTOCOL_VERSION, "0.14.0", [The mpd protocol version]) MPD_LIBS="" MPD_CFLAGS="" -if test x$GCC = xyes; then - MPD_CFLAGS="-Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations -Wmissing-prototypes" +if test x$GCC = xyes +then + MPD_CHECK_FLAG([-Wall]) + MPD_CHECK_FLAG([-Wextra]) + MPD_CHECK_FLAG([-Wno-unused-parameter]) + MPD_CHECK_FLAG([-Wno-deprecated-declarations]) + MPD_CHECK_FLAG([-Wmissing-prototypes]) + MPD_CHECK_FLAG([-Wdeclaration-after-statement]) + MPD_CHECK_FLAG([-Wshadow]) fi if test -z "$prefix" || test "x$prefix" = xNONE; then diff --git a/m4/mpd_check_cflag.m4 b/m4/mpd_check_cflag.m4 new file mode 100644 index 000000000..05682f611 --- /dev/null +++ b/m4/mpd_check_cflag.m4 @@ -0,0 +1,18 @@ +AC_DEFUN([MPD_CHECK_FLAG],[ + var=`echo "$1" | tr "-" "_"` + AC_CACHE_CHECK([whether the C compiler accepts $1], + [mpd_check_cflag_$var],[ + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $1" + AC_COMPILE_IFELSE([ + int main(void) { return 0; } + ], [ eval "mpd_check_cflag_$var=yes" + ], [ eval "mpd_check_cflag_$var=no" ]) + CFLAGS="$save_CFLAGS" + ]) + if eval "test x`echo '$mpd_check_cflag_'$var` = xyes" + then + MPD_CFLAGS="$MPD_CFLAGS $1" + fi + ]) +]) |