From f377f69fec28013c79db4efe12bbb9d48987fb2c Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Sun, 13 Oct 2002 18:49:44 +0000 Subject: [PATCH] * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code. (O0FLAGS): New. (VALGRIND, GXX): New. * tests/atlocal.in (CFLAGS): Use O0FLAGS. * tests/bison.in: Run $PREBISON a pre-command. * tests/Makefile.am (maintainer-check, maintainer-check-valgrind) (maintainer-check-g++): New. * Makefile.am (maintainer-check): New. --- ChangeLog | 11 +++++++++++ HACKING | 11 ++++------- Makefile.am | 3 +++ configure.ac | 46 +++++++++++++++++++++++++--------------------- tests/Makefile.am | 20 ++++++++++++++++++++ tests/atlocal.in | 6 ++++-- tests/bison.in | 2 +- 7 files changed, 68 insertions(+), 31 deletions(-) diff --git a/ChangeLog b/ChangeLog index 99f71fc2..e677c615 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2002-10-13 Akim Demaille + + * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code. + (O0FLAGS): New. + (VALGRIND, GXX): New. + * tests/atlocal.in (CFLAGS): Use O0FLAGS. + * tests/bison.in: Run $PREBISON a pre-command. + * tests/Makefile.am (maintainer-check, maintainer-check-valgrind) + (maintainer-check-g++): New. + * Makefile.am (maintainer-check): New. + 2002-10-13 Akim Demaille * data/glr.c: Formatting changes. diff --git a/HACKING b/HACKING index fa20885a..3db97743 100644 --- a/HACKING +++ b/HACKING @@ -52,11 +52,10 @@ release: that 1. Bison compiles cleanly, 2. the parsers it produces compile cleanly too. -- Change tests/bison to run `valgrind -q bison' to run Bison under - Valgrind. - -- Run the test suite with `./testsuite PREPARSER='valgrind -q' to make - sure the parser behave properly. +- run `make maintainer-check' which: + - runs `valgrind -q bison' to run Bison under Valgrind. + - runs the parsers under Valdrind. + - runs the test suite with G++ as C compiler... - Change tests/atlocal/CFLAGS to add your preferred options. For instance, `-traditional' to check that the parsers are K&R. Note @@ -64,8 +63,6 @@ release: but currently is actually GNU C, nor for lalr1.cc, which anyway is not exercised yet in the test suite. -- Change tests/atlocal/CC to use a C++ compiler. - * Release Procedure diff --git a/Makefile.am b/Makefile.am index 400831cb..77c96e98 100644 --- a/Makefile.am +++ b/Makefile.am @@ -22,6 +22,9 @@ SUBDIRS = config po lib data src doc m4 tests EXTRA_DIST = REFERENCES OChangeLog Makefile.maint GNUmakefile +.PHONY: maintainer-check +maintainer-check: + cd tests && $(MAKE) $(AM_MAKEFLAGS) $@ ## ---------------------------- ## ## Customizing Makefile.maint. ## diff --git a/configure.ac b/configure.ac index b777e27c..bafaaa78 100644 --- a/configure.ac +++ b/configure.ac @@ -26,28 +26,13 @@ AC_CONFIG_AUX_DIR(config) AM_INIT_AUTOMAKE([1.7 check-news readme-alpha dist-bzip2]) AC_CONFIG_HEADERS([config.h:config.hin]) -# Initialize the test suite. -AC_CONFIG_TESTDIR(tests) -AC_CONFIG_FILES([tests/Makefile tests/atlocal]) -AC_CONFIG_FILES([tests/bison], [chmod +x tests/bison]) -# Needed by tests/atlocal.in. -AC_SUBST([GCC]) - -# Checks for programs. +# Checks for the compiler. AC_PROG_CC -AM_PROG_LEX -AC_PROG_YACC -AC_MINIX +# Remove with Automake 1.8. AC_ISC_POSIX +AC_GNU_SOURCE +AC_MINIX AM_PROG_CC_STDC -AC_PROG_RANLIB -AM_MISSING_PROG([AUTOM4TE], [autom4te]) -BISON_PROG_GNU_M4 -if test x"$ac_cv_prog_gnu_m4" != xyes; then - AC_MSG_ERROR([GNU M4 1.4 is required]) -fi -AC_DEFINE_UNQUOTED([M4], ["$M4"], [Define to the GNU M4 executable name.]) - AC_ARG_ENABLE(gcc-warnings, [ --enable-gcc-warnings turn on lots of GCC warnings (not recommended)], [case "${enableval}" in @@ -73,8 +58,15 @@ if test "${enableval}" = yes; then BISON_WARNING(-Wwrite-strings) fi -# Checks for libraries. -AC_DEFINE([_GNU_SOURCE],1,[Define to 1 for GNU C library extensions.]) +# Checks for programs. +AM_PROG_LEX +AC_PROG_YACC +AC_PROG_RANLIB +BISON_PROG_GNU_M4 +if test x"$ac_cv_prog_gnu_m4" != xyes; then + AC_MSG_ERROR([GNU M4 1.4 is required]) +fi +AC_DEFINE_UNQUOTED([M4], ["$M4"], [Define to the GNU M4 executable name.]) # Checks for header files. AC_HEADER_STDC @@ -110,6 +102,18 @@ BISON_PREREQ_TIMEVAR AM_GNU_GETTEXT(external, need-ngettext) AM_GNU_GETTEXT_VERSION(0.11.5) +# Initialize the test suite. +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_CHECK_PROGS([GXX], [g++]) +AM_MISSING_PROG([AUTOM4TE], [autom4te]) +# Needed by tests/atlocal.in. +AC_SUBST([GCC]) +O0CFLAGS=`echo $CFLAGS | sed 's/-O[0-9] *//'` +AC_SUBST([O0CFLAGS]) + AC_CONFIG_FILES([Makefile config/Makefile po/Makefile.in diff --git a/tests/Makefile.am b/tests/Makefile.am index 0bb522c9..d41846ac 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -71,3 +71,23 @@ check_SCRIPTS = bison # Run the test suite on the *installed* tree. installcheck-local: $(SHELL) $(TESTSUITE) AUTOTEST_PATH=$(exec_prefix)/bin + +# Be real mean with it. +.PHONY: maintainer-check-valgrind +maintainer-check-valgrind: $(TESTSUITE) + if test -n "$(VALGRIND)"; then \ + $(TESTSUITE) PREBISON='$(VALGRIND) -q' PREPARSER='$(VALGRIND) -q'; \ + else \ + true; \ + fi + +.PHONY: maintainer-check-g++ +maintainer-check-g++: $(TESTSUITE) + if test -n "$(VALGRIND)"; then \ + $(TESTSUITE) CC='$(GXX)' \ + else \ + true; \ + fi + +.PHONY: maintainer-check +maintainer-check: maintainer-check-valgrind maintainer-check-g++ diff --git a/tests/atlocal.in b/tests/atlocal.in index 31cc12cf..356833c9 100644 --- a/tests/atlocal.in +++ b/tests/atlocal.in @@ -1,10 +1,12 @@ # @configure_input@ -*- shell-script -*- # Configurable variable values for Bison test suite. -# Copyright 2000, 2001, 2002 Free Software Foundation, Inc. +# Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. # We need a C compiler. CC='@CC@' -CFLAGS='@CFLAGS@ @WARNING_CFLAGS@ @WERROR_CFLAGS@' + +# We want no optimization. +CFLAGS='@O0CFLAGS@ @WARNING_CFLAGS@ @WERROR_CFLAGS@' # We need `config.h'. CPPFLAGS="-I$abs_top_builddir @CPPFLAGS@" diff --git a/tests/bison.in b/tests/bison.in index 6a582f77..6d0de7e3 100644 --- a/tests/bison.in +++ b/tests/bison.in @@ -5,4 +5,4 @@ # We want to use the files shipped with Bison. BISON_PKGDATADIR='@abs_top_srcdir@/data' export BISON_PKGDATADIR -exec '@abs_top_builddir@/src/bison' ${1+"$@"} +exec $PREBISON '@abs_top_builddir@/src/bison' ${1+"$@"} -- 2.45.2