mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
build: simplify and improve the compiler warnings for tests.
* configure.ac (warn_common, warn_c, warn_cxx): New. Use them to compute independently the options supported by the C and C++ compilers. Don't AC_SUBST the variables passed to gl_WARN_ADD: it does it for us. (WARN_CFLAGS_TEST, WARN_CXXFLAGS_TEST): Don't aggregate $WARN_CFLAGS and $WARN_CXXFLAGS in them now, leave it to atlocal.in. (O0CFLAGS, O0CXXFLAGS): Move their definition to... * tests/atlocal.in: here. Be more systematic between C and C++. Reorder to factor between variables. Propagate all of the variables when --compile-c-with-cxx.
This commit is contained in:
46
configure.ac
46
configure.ac
@@ -53,6 +53,7 @@ AC_CONFIG_HEADERS([lib/config.h:lib/config.hin])
|
||||
|
||||
# Checks for the compiler.
|
||||
AC_PROG_CC_STDC
|
||||
AC_PROG_CXX
|
||||
|
||||
# Gnulib (early checks).
|
||||
gl_EARLY
|
||||
@@ -65,31 +66,36 @@ AC_ARG_ENABLE([gcc-warnings],
|
||||
esac],
|
||||
[enable_gcc_warnings=no])
|
||||
if test "$enable_gcc_warnings" = yes; then
|
||||
warn_common='-Wall -Wextra -Wno-sign-compare -Wcast-align
|
||||
-Wcast-qual -Wformat -Wpointer-arith -Wwrite-strings'
|
||||
warn_c='-Wbad-function-cast -Wmissing-declarations -Wmissing-prototypes
|
||||
-Wshadow -Wstrict-prototypes'
|
||||
warn_cxx=''
|
||||
AC_LANG_PUSH([C])
|
||||
for i in $warn_common $warn_c;
|
||||
do
|
||||
gl_WARN_ADD([$i], [WARN_CFLAGS])
|
||||
done
|
||||
gl_WARN_ADD([-Werror], [WERROR_CFLAGS])
|
||||
AC_SUBST([WERROR_CFLAGS])
|
||||
gl_WARN_ADD([-Wall])
|
||||
gl_WARN_ADD([-Wextra -Wno-sign-compare])
|
||||
gl_WARN_ADD([-Wcast-align])
|
||||
gl_WARN_ADD([-Wcast-qual])
|
||||
gl_WARN_ADD([-Wformat])
|
||||
gl_WARN_ADD([-Wpointer-arith])
|
||||
gl_WARN_ADD([-Wwrite-strings])
|
||||
AC_SUBST([WARN_CXXFLAGS], [$WARN_CFLAGS])
|
||||
# The following warnings are not suitable for C++.
|
||||
gl_WARN_ADD([-Wbad-function-cast])
|
||||
gl_WARN_ADD([-Wmissing-declarations])
|
||||
gl_WARN_ADD([-Wmissing-prototypes])
|
||||
gl_WARN_ADD([-Wshadow])
|
||||
gl_WARN_ADD([-Wstrict-prototypes])
|
||||
AC_SUBST([WARN_CFLAGS])
|
||||
# Warnings for the test suite only.
|
||||
gl_WARN_ADD([-Wundef], [WARN_CFLAGS_TEST])
|
||||
gl_WARN_ADD([-pedantic], [WARN_CFLAGS_TEST])
|
||||
AC_SUBST([WARN_CXXFLAGS_TEST], ["$WARN_CXXFLAGS $WARN_CFLAGS_TEST"])
|
||||
AC_SUBST([WARN_CFLAGS_TEST], ["$WARN_CFLAGS $WARN_CFLAGS_TEST"])
|
||||
AC_LANG_POP([C])
|
||||
|
||||
AC_LANG_PUSH([C++])
|
||||
for i in $warn_common $warn_cxx;
|
||||
do
|
||||
gl_WARN_ADD([$i], [WARN_CXXFLAGS])
|
||||
done
|
||||
gl_WARN_ADD([-Werror], [WERROR_CXXFLAGS])
|
||||
# Warnings for the test suite only.
|
||||
gl_WARN_ADD([-Wundef], [WARN_CXXFLAGS_TEST])
|
||||
gl_WARN_ADD([-pedantic], [WARN_CXXFLAGS_TEST])
|
||||
AC_LANG_POP([C++])
|
||||
fi
|
||||
|
||||
BISON_TEST_FOR_WORKING_C_COMPILER
|
||||
BISON_TEST_FOR_WORKING_CXX_COMPILER
|
||||
|
||||
AC_ARG_ENABLE([yacc],
|
||||
[AC_HELP_STRING([--disable-yacc],
|
||||
@@ -155,13 +161,9 @@ AC_CONFIG_TESTDIR(tests)
|
||||
AC_CONFIG_FILES([tests/Makefile tests/atlocal])
|
||||
AC_CONFIG_FILES([tests/bison], [chmod +x tests/bison])
|
||||
AC_CHECK_PROGS([VALGRIND], [valgrind])
|
||||
AC_PROG_CXX
|
||||
BISON_TEST_FOR_WORKING_CXX_COMPILER
|
||||
AM_MISSING_PROG([AUTOM4TE], [autom4te])
|
||||
# Needed by tests/atlocal.in.
|
||||
AC_SUBST([GCC])
|
||||
AC_SUBST([O0CFLAGS], [`echo $CFLAGS | sed 's/-O[[0-9]] *//'`])
|
||||
AC_SUBST([O0CXXFLAGS], [`echo $CXXFLAGS | sed 's/-O[[0-9]] *//'`])
|
||||
|
||||
gt_JAVACOMP([1.3])
|
||||
gt_JAVAEXEC
|
||||
|
||||
Reference in New Issue
Block a user