aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.ac17
-rw-r--r--m4/cflags.m415
2 files changed, 31 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index 3ffc87009..16a13571d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -206,9 +206,24 @@ AC_ARG_ENABLE([debug],
[enable_debug=no])
AC_MSG_RESULT([$enable_debug])
if test "x$enable_debug" = "xyes" ; then
- CFLAGS="$CFLAGS -Wall -g -DDEBUG"
+ CFLAGS="$CFLAGS -g -DDEBUG"
fi
+dnl CFLAGS
+
+AC_SUBST(AM_CFLAGS)
+
+CHECK_CFLAG([-Wall])
+CHECK_CFLAG([-Wextra])
+CHECK_CFLAG([-Wno-deprecated-declarations])
+CHECK_CFLAG([-Wmissing-prototypes])
+CHECK_CFLAG([-Wdeclaration-after-statement])
+CHECK_CFLAG([-Wshadow])
+CHECK_CFLAG([-Wpointer-arith])
+CHECK_CFLAG([-Wstrict-prototypes])
+CHECK_CFLAG([-Wcast-qual])
+CHECK_CFLAG([-Wwrite-strings])
+
dnl Optional screen - help screen
#AC_MSG_CHECKING([whether to include the help screen])
#AC_ARG_ENABLE([help-screen],
diff --git a/m4/cflags.m4 b/m4/cflags.m4
new file mode 100644
index 000000000..cc6d5fab3
--- /dev/null
+++ b/m4/cflags.m4
@@ -0,0 +1,15 @@
+AC_DEFUN([CHECK_CFLAG], [
+ var=`echo "$1" | tr "=-" "__"`
+ AC_CACHE_CHECK([whether the C compiler accepts $1],[check_cflag_$var],[
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $1"
+ AC_COMPILE_IFELSE([int main(void) { return 0; }],
+ [eval "check_cflag_$var=yes"],
+ [eval "check_cflag_$var=no"])
+ CFLAGS="$save_CFLAGS"
+ ])
+ if eval "test x`echo '$check_cflag_'$var` = xyes"; then
+ AM_CFLAGS="$AM_CFLAGS $1"
+ fi
+ ])
+])