build: Update CFLAGS and also check if they are supported

Also, enable all warnings by default, whether it is a debug
build or not.
This commit is contained in:
Mukund Sivaraman 2009-09-20 13:32:46 +05:30
parent 07ad8ad1b2
commit 753010f571
3 changed files with 76 additions and 4 deletions

View File

@ -232,6 +232,14 @@ if test x"$profiling_enabled" = x"yes" ; then
debug_enabled=yes debug_enabled=yes
fi fi
dnl Enable extra warnings
DESIRED_FLAGS="-fdiagnostics-show-option -Wall -Wextra -Wno-unused-parameter -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Wfloat-equal -Wundef -Wformat=2 -Wlogical-op -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Waggregate-return -Winit-self -Wpacked -pedantic -Wc++-compat -Wno-long-long -Wno-overlength-strings -Wdeclaration-after-statement -Wredundant-decls -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-qual -Wcast-align -Wwrite-strings -Wp,-D_FORTIFY_SOURCE=2 -fno-common"
for flag in $DESIRED_FLAGS ; do
AS_COMPILER_FLAG([$flag], [CFLAGS="$CFLAGS $flag"])
done
LDFLAGS="-Wl,-z,defs"
dnl Enable the debugging flags (by checking for the GCC compiler) dnl Enable the debugging flags (by checking for the GCC compiler)
if test x"$debug_enabled" = x"yes" ; then if test x"$debug_enabled" = x"yes" ; then
dnl Add the warnings if we have the GCC compiler dnl Add the warnings if we have the GCC compiler
@ -239,10 +247,6 @@ if test x"$debug_enabled" = x"yes" ; then
if test x"$profiling_enabled" = x"yes" ; then if test x"$profiling_enabled" = x"yes" ; then
CFLAGS="-pg -fprofile-arcs $CFLAGS" CFLAGS="-pg -fprofile-arcs $CFLAGS"
fi fi
CFLAGS="-Wshadow -Wcast-qual -Wcast-align -Wstrict-prototypes $CFLAGS"
CFLAGS="-Wmissing-prototypes -Wmissing-declarations $CFLAGS"
CFLAGS="-Wpointer-arith -Waggregate-return -Wnested-externs $CFLAGS"
CFLAGS="-Wwrite-strings -Wcomment -Wextra -Wc++-compat $CFLAGS"
fi fi
CFLAGS="-Wall -g $CFLAGS" CFLAGS="-Wall -g $CFLAGS"
else else
@ -270,6 +274,9 @@ else
#if HAVE_REGEX_H #if HAVE_REGEX_H
# include <regex.h> # include <regex.h>
#endif #endif
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
int main(void) int main(void)
{ {
regex_t blah; regex_t blah;

View File

@ -1,3 +1,4 @@
EXTRA_DIST = \ EXTRA_DIST = \
as-compiler-flag.m4 \
argenable.m4 \ argenable.m4 \
typecheck.m4 typecheck.m4

View File

@ -0,0 +1,64 @@
dnl as-compiler-flag.m4 0.1.0
dnl autostars m4 macro for detection of compiler flags
dnl David Schleef <ds@schleef.org>
dnl Tim-Philipp Müller <tim centricular net>
dnl AS_COMPILER_FLAG(CFLAGS, ACTION-IF-ACCEPTED, [ACTION-IF-NOT-ACCEPTED])
dnl Tries to compile with the given CFLAGS.
dnl Runs ACTION-IF-ACCEPTED if the compiler can compile with the flags,
dnl and ACTION-IF-NOT-ACCEPTED otherwise.
AC_DEFUN([AS_COMPILER_FLAG],
[
AC_MSG_CHECKING([to see if compiler understands $1])
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $1"
AC_TRY_COMPILE([ ], [], [flag_ok=yes], [flag_ok=no])
CFLAGS="$save_CFLAGS"
if test "X$flag_ok" = Xyes ; then
$2
true
else
$3
true
fi
AC_MSG_RESULT([$flag_ok])
])
dnl AS_CXX_COMPILER_FLAG(CPPFLAGS, ACTION-IF-ACCEPTED, [ACTION-IF-NOT-ACCEPTED])
dnl Tries to compile with the given CPPFLAGS.
dnl Runs ACTION-IF-ACCEPTED if the compiler can compile with the flags,
dnl and ACTION-IF-NOT-ACCEPTED otherwise.
AC_DEFUN([AS_CXX_COMPILER_FLAG],
[
AC_REQUIRE([AC_PROG_CXX])
AC_MSG_CHECKING([to see if c++ compiler understands $1])
save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $1"
AC_LANG_PUSH(C++)
AC_TRY_COMPILE([ ], [], [flag_ok=yes], [flag_ok=no])
CPPFLAGS="$save_CPPFLAGS"
if test "X$flag_ok" = Xyes ; then
$2
true
else
$3
true
fi
AC_LANG_POP(C++)
AC_MSG_RESULT([$flag_ok])
])