From 7160ce9f6ef3ef6d5afd3234e77611c01e90e1c2 Mon Sep 17 00:00:00 2001 From: Pierre d'Herbemont Date: Fri, 21 Aug 2009 17:25:48 +0200 Subject: [PATCH] configure: Per module Werror flags. This allow a little bit more flexibility and won't require the same level of code quality in configure tests (is that a plus?). --- configure.ac | 3 ++- m4/flags.m4 | 18 +++++++++--------- m4/vlc.m4 | 9 +++++++++ 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/configure.ac b/configure.ac index b2364dabab..7bb2b5dafe 100644 --- a/configure.ac +++ b/configure.ac @@ -1004,7 +1004,7 @@ fi CFLAGS="${CFLAGS_save}" RDC_PROG_CC_WFLAGS([all extra sign-compare undef pointer-arith bad-function-cast cast-align write-strings missing-prototypes volatile-register-var error-implicit-function-declaration]) -RDC_PROG_CC_FLAGS_IFELSE([-pipe]) +RDC_PROG_CC_FLAGS([-pipe]) AC_ARG_ENABLE(warnings-as-error, AS_HELP_STRING([--enable-warnings-as-error],[Treat acceptable warnings as error (default in debug)]),, [enable_warnings_as_error="$enable_debug"]) @@ -1013,6 +1013,7 @@ AS_IF([test "${enable_warnings_as_error}" = "yes"], [ missing-braces nonnull parentheses uninitialized address enum-compare undef comment switch \ bad-function-cast ignored]) ]) +AC_SUBST(CFLAGS_WERROR) dnl Check for various optimization flags AC_CACHE_CHECK([if \$CC accepts -Os], diff --git a/m4/flags.m4 b/m4/flags.m4 index 326a90933a..2741979bb0 100644 --- a/m4/flags.m4 +++ b/m4/flags.m4 @@ -22,24 +22,24 @@ AC_DEFUN([RDC_PROG_CC_FLAGS_IFELSE], ]) ac_res=`eval echo '${'$as_ac_var'}'` - AS_IF([test "${ac_res}" != "no"], [ - CFLAGS="${CFLAGS_save} $1" - $2 - ], [ - CFLAGS="${CFLAGS_save}" - $3 - ]) + CFLAGS="${CFLAGS_save}" + AS_IF([test "${ac_res}" != "no"], [$2], [$3]) +]) + +AC_DEFUN([RDC_PROG_CC_FLAGS], +[AC_LANG_ASSERT(C) + RDC_PROG_CC_FLAGS_IFELSE([$1], [CFLAGS="${CFLAGS} $1"]) ]) AC_DEFUN([RDC_PROG_CC_WERRORFLAGS], [ for a in $1; do - RDC_PROG_CC_FLAGS_IFELSE([-Werror=$a]) + RDC_PROG_CC_FLAGS_IFELSE([-Werror=$a], [CFLAGS_WERROR="${CFLAGS_WERROR} -Werror=${a}"]) done ]) AC_DEFUN([RDC_PROG_CC_WFLAGS], [ for a in $1; do - RDC_PROG_CC_FLAGS_IFELSE([-W$a]) + RDC_PROG_CC_FLAGS([-W$a]) done ]) diff --git a/m4/vlc.m4 b/m4/vlc.m4 index 6a4f241a6e..130e47a5c4 100644 --- a/m4/vlc.m4 +++ b/m4/vlc.m4 @@ -58,6 +58,12 @@ AC_DEFUN([VLC_ADD_LIBS], [ done ]) +AC_DEFUN([VLC_SET_CFLAGS_WERROR], [ + for element in [$1]; do + eval "CFLAGS_WERROR_${element}="'"'"$2"''"' + done +]) + dnl =========================================================================== dnl Macros to save and restore default flags @@ -132,6 +138,9 @@ AC_DEFUN([VLC_OUTPUT_VLC_CONFIG_IN], [ if test "`eval echo @'$'LIBS_${x}@`" != "@@"; then echo " libs=\"\${libs} `eval echo '$'LIBS_${x}`\"" fi + if test "`eval echo @'$'LIBS_${x}@`" != "@@"; then + echo " CFLAGS_WERROR=\"`eval echo '$'CFLAGS_WERROR_${x}`\"" + fi echo " ;;" ] done >> vlc-config.in -- 2.39.2