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:
parent
07ad8ad1b2
commit
753010f571
15
configure.ac
15
configure.ac
@ -232,6 +232,14 @@ if test x"$profiling_enabled" = x"yes" ; then
|
||||
debug_enabled=yes
|
||||
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)
|
||||
if test x"$debug_enabled" = x"yes" ; then
|
||||
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
|
||||
CFLAGS="-pg -fprofile-arcs $CFLAGS"
|
||||
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
|
||||
CFLAGS="-Wall -g $CFLAGS"
|
||||
else
|
||||
@ -270,6 +274,9 @@ else
|
||||
#if HAVE_REGEX_H
|
||||
# include <regex.h>
|
||||
#endif
|
||||
#if HAVE_STDLIB_H
|
||||
# include <stdlib.h>
|
||||
#endif
|
||||
int main(void)
|
||||
{
|
||||
regex_t blah;
|
||||
|
@ -1,3 +1,4 @@
|
||||
EXTRA_DIST = \
|
||||
as-compiler-flag.m4 \
|
||||
argenable.m4 \
|
||||
typecheck.m4
|
||||
|
64
m4macros/as-compiler-flag.m4
Normal file
64
m4macros/as-compiler-flag.m4
Normal 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])
|
||||
])
|
||||
|
Loading…
Reference in New Issue
Block a user