Commit Diff


commit - 37e38d6df5bd04abf0567257c5b8647804fec161
commit + 94343c1ad59482dbbfb659c5707261ebbbbe8882
blob - edc932330d2a61685aa327e9c4ba8d36fd128f9b
blob + 5aaf428d1af6ccd53968e24a997dac6eba8602b6
--- Makefile.am
+++ Makefile.am
@@ -12,13 +12,6 @@ AM_CPPFLAGS += -DKAMID_VERSION='"@VERSION"' \
 
 LDADD = $(LIBOBJS)
 
-AM_CFLAGS += -Wall
-AM_CFLAGS += -Wextra
-AM_CFLAGS += -Wmissing-prototypes
-AM_CFLAGS += -Wstrict-prototypes
-AM_CFLAGS += -Wwrite-strings
-AM_CFLAGS += -Wno-unused-parameter
-
 SUDO ?= sudo
 HAVE_LISP ?= no
 
blob - 5a11f3f989fb1713410426a02fdd65e2097103e6
blob + 76585165daea579c6ccb88b09d81b0e911a9b68e
--- configure.ac
+++ configure.ac
@@ -143,6 +143,28 @@ AS_CASE([$host_os],
 AC_SUBST(READLINE_CFLAGS)
 AC_SUBST(READLINE_LIBS)
 
+# check compiler flags
+AC_DEFUN([CC_ADD_CHECK_FLAGS], [
+	AC_MSG_CHECKING([if $CC supports $1 flag])
+	old_AM_CFLAGS="$AM_CFLAGS"
+	AM_CFLAGS="$AM_CFLAGS $1"
+	AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [])],
+		AC_MSG_RESULT(yes), [
+			AC_MSG_RESULT(no)
+			AM_CFLAGS="$old_AM_CFLAGS"
+		])
+])
+CC_ADD_CHECK_FLAGS([-Wall])
+CC_ADD_CHECK_FLAGS([-Wextra])
+CC_ADD_CHECK_FLAGS([-Wmissing-declarations])
+CC_ADD_CHECK_FLAGS([-Wmissing-prototypes])
+CC_ADD_CHECK_FLAGS([-Wstrict-prototypes])
+CC_ADD_CHECK_FLAGS([-Wwrite-strings])
+CC_ADD_CHECK_FLAGS([-Wno-unused-parameter])
+CC_ADD_CHECK_FLAGS([-Wpointer-arith])
+CC_ADD_CHECK_FLAGS([-Wsign-compare])
+CC_ADD_CHECK_FLAGS([-Wcast-align])
+
 # Save our CFLAGS/CPPFLAGS/LDFLAGS for the Makefile and restore the old user
 # variables.
 AC_SUBST(AM_CPPFLAGS)