dnl Common configure.in fragment
AC_DEFUN([AM_BINUTILS_WARNINGS],[
-WARN_CFLAGS="-W -Wall -Wstrict-prototypes -Wmissing-prototypes"
+GCC_WARN_CFLAGS="-W -Wall -Wstrict-prototypes -Wmissing-prototypes"
+AC_EGREP_CPP([^[0-3]$],[__GNUC__],,GCC_WARN_CFLAGS="$GCC_WARN_CFLAGS -Wshadow")
AC_ARG_ENABLE(werror,
- [ --enable-werror treat compile warnings as errors],
+ [ --enable-werror treat compile warnings as errors],
[case "${enableval}" in
yes | y) ERROR_ON_WARNING="yes" ;;
no | n) ERROR_ON_WARNING="no" ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-werror) ;;
esac])
+# Disable -Wformat by default when using gcc on mingw
+case "${host}" in
+ *-*-mingw32*)
+ if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then
+ GCC_WARN_CFLAGS="$GCC_WARN_CFLAGS -Wno-format"
+ fi
+ ;;
+ *) ;;
+esac
+
# Enable -Werror by default when using gcc
if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then
ERROR_ON_WARNING=yes
NO_WERROR=
if test "${ERROR_ON_WARNING}" = yes ; then
- WARN_CFLAGS="$WARN_CFLAGS -Werror"
+ GCC_WARN_CFLAGS="$GCC_WARN_CFLAGS -Werror"
NO_WERROR="-Wno-error"
fi
+if test "${GCC}" = yes ; then
+ WARN_CFLAGS="${GCC_WARN_CFLAGS}"
+fi
+
AC_ARG_ENABLE(build-warnings,
-[ --enable-build-warnings Enable build-time compiler warnings],
+[ --enable-build-warnings enable build-time compiler warnings],
[case "${enableval}" in
- yes) ;;
- no) WARN_CFLAGS="-w";;
+ yes) WARN_CFLAGS="${GCC_WARN_CFLAGS}";;
+ no) if test "${GCC}" = yes ; then
+ WARN_CFLAGS="-w"
+ fi;;
,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
- WARN_CFLAGS="${WARN_CFLAGS} ${t}";;
+ WARN_CFLAGS="${GCC_WARN_CFLAGS} ${t}";;
*,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
- WARN_CFLAGS="${t} ${WARN_CFLAGS}";;
+ WARN_CFLAGS="${t} ${GCC_WARN_CFLAGS}";;
*) WARN_CFLAGS=`echo "${enableval}" | sed -e "s/,/ /g"`;;
esac])