mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Poaching someone else's macro name is a really dumb idea, because aclocal looks in our macros directory only if it can't find the macro in the system directories. Our config code doesn't work with Gnome's macro, it exports WARN_CFLAGS rather than modifying CFLAGS directly the way ours does.
110 lines
3.2 KiB
Plaintext
110 lines
3.2 KiB
Plaintext
dnl COMPILE_WARNINGS
|
|
dnl Turn on many useful compiler warnings
|
|
dnl For now, only works on GCC
|
|
AC_DEFUN([COMPILE_WARNINGS],[
|
|
AC_ARG_ENABLE(compile-warnings,
|
|
[ --enable-compile-warnings=[no/minimum/yes] Turn on compiler warnings.],,enable_compile_warnings=minimum)
|
|
|
|
AC_MSG_CHECKING(what warning flags to pass to the C compiler)
|
|
warnCFLAGS=
|
|
if test "x$GCC" != xyes; then
|
|
enable_compile_warnings=no
|
|
fi
|
|
|
|
if test "x$enable_compile_warnings" != "xno"; then
|
|
if test "x$GCC" = "xyes"; then
|
|
case " $CFLAGS " in
|
|
*[\ \ ]-Wall[\ \ ]*) ;;
|
|
*) warnCFLAGS="-Wall -Wunused" ;;
|
|
esac
|
|
|
|
## -W is not all that useful. And it cannot be controlled
|
|
## with individual -Wno-xxx flags, unlike -Wall
|
|
if test "x$enable_compile_warnings" = "xyes"; then
|
|
warnCFLAGS="$warnCFLAGS -Wmissing-prototypes -Wmissing-declarations"
|
|
fi
|
|
fi
|
|
fi
|
|
AC_MSG_RESULT($warnCFLAGS)
|
|
|
|
AC_ARG_ENABLE(iso-c,
|
|
[ --enable-iso-c Try to warn if code is not ISO C ],,
|
|
enable_iso_c=no)
|
|
|
|
AC_MSG_CHECKING(what language compliance flags to pass to the C compiler)
|
|
complCFLAGS=
|
|
if test "x$enable_iso_c" != "xno"; then
|
|
if test "x$GCC" = "xyes"; then
|
|
case " $CFLAGS " in
|
|
*[\ \ ]-ansi[\ \ ]*) ;;
|
|
*) complCFLAGS="$complCFLAGS -ansi" ;;
|
|
esac
|
|
|
|
case " $CFLAGS " in
|
|
*[\ \ ]-pedantic[\ \ ]*) ;;
|
|
*) complCFLAGS="$complCFLAGS -pedantic" ;;
|
|
esac
|
|
fi
|
|
fi
|
|
AC_MSG_RESULT($complCFLAGS)
|
|
if test "x$cflags_set" != "xyes"; then
|
|
CFLAGS="$CFLAGS $warnCFLAGS $complCFLAGS"
|
|
cflags_set=yes
|
|
AC_SUBST(cflags_set)
|
|
fi
|
|
])
|
|
|
|
dnl For C++, do basically the same thing.
|
|
|
|
AC_DEFUN([CXX_WARNINGS],[
|
|
AC_ARG_ENABLE(cxx-warnings,
|
|
[ --enable-cxx-warnings=[no/minimum/yes] Turn on compiler warnings.],,enable_cxx_warnings=minimum)
|
|
|
|
AC_MSG_CHECKING(what warning flags to pass to the C++ compiler)
|
|
warnCXXFLAGS=
|
|
if test "x$GCC" != xyes; then
|
|
enable_compile_warnings=no
|
|
fi
|
|
if test "x$enable_cxx_warnings" != "xno"; then
|
|
if test "x$GCC" = "xyes"; then
|
|
case " $CXXFLAGS " in
|
|
*[\ \ ]-Wall[\ \ ]*) ;;
|
|
*) warnCXXFLAGS="-Wall -Wno-unused" ;;
|
|
esac
|
|
|
|
## -W is not all that useful. And it cannot be controlled
|
|
## with individual -Wno-xxx flags, unlike -Wall
|
|
if test "x$enable_cxx_warnings" = "xyes"; then
|
|
warnCXXFLAGS="$warnCXXFLAGS -Wmissing-prototypes -Wmissing-declarations -Wshadow -Woverloaded-virtual"
|
|
fi
|
|
fi
|
|
fi
|
|
AC_MSG_RESULT($warnCXXFLAGS)
|
|
|
|
AC_ARG_ENABLE(iso-cxx,
|
|
[ --enable-iso-cxx Try to warn if code is not ISO C++ ],,
|
|
enable_iso_cxx=no)
|
|
|
|
AC_MSG_CHECKING(what language compliance flags to pass to the C++ compiler)
|
|
complCXXFLAGS=
|
|
if test "x$enable_iso_cxx" != "xno"; then
|
|
if test "x$GCC" = "xyes"; then
|
|
case " $CXXFLAGS " in
|
|
*[\ \ ]-ansi[\ \ ]*) ;;
|
|
*) complCXXFLAGS="$complCXXFLAGS -ansi" ;;
|
|
esac
|
|
|
|
case " $CXXFLAGS " in
|
|
*[\ \ ]-pedantic[\ \ ]*) ;;
|
|
*) complCXXFLAGS="$complCXXFLAGS -pedantic" ;;
|
|
esac
|
|
fi
|
|
fi
|
|
AC_MSG_RESULT($complCXXFLAGS)
|
|
if test "x$cxxflags_set" != "xyes"; then
|
|
CXXFLAGS="$CXXFLAGS $warnCXXFLAGS $complCXXFLAGS"
|
|
cxxflags_set=yes
|
|
AC_SUBST(cxxflags_set)
|
|
fi
|
|
])
|