* 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.
This commit is contained in:
Akim Demaille
2002-10-13 18:49:44 +00:00
parent 2a1fe6ed6f
commit f377f69fec
7 changed files with 68 additions and 31 deletions

View File

@@ -1,3 +1,14 @@
2002-10-13 Akim Demaille <akim@epita.fr>
* 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 <akim@epita.fr> 2002-10-13 Akim Demaille <akim@epita.fr>
* data/glr.c: Formatting changes. * data/glr.c: Formatting changes.

11
HACKING
View File

@@ -52,11 +52,10 @@ release:
that 1. Bison compiles cleanly, 2. the parsers it produces compile that 1. Bison compiles cleanly, 2. the parsers it produces compile
cleanly too. cleanly too.
- Change tests/bison to run `valgrind -q bison' to run Bison under - run `make maintainer-check' which:
Valgrind. - runs `valgrind -q bison' to run Bison under Valgrind.
- runs the parsers under Valdrind.
- Run the test suite with `./testsuite PREPARSER='valgrind -q' to make - runs the test suite with G++ as C compiler...
sure the parser behave properly.
- Change tests/atlocal/CFLAGS to add your preferred options. For - Change tests/atlocal/CFLAGS to add your preferred options. For
instance, `-traditional' to check that the parsers are K&R. Note 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 but currently is actually GNU C, nor for lalr1.cc, which anyway is
not exercised yet in the test suite. not exercised yet in the test suite.
- Change tests/atlocal/CC to use a C++ compiler.
* Release Procedure * Release Procedure

View File

@@ -22,6 +22,9 @@ SUBDIRS = config po lib data src doc m4 tests
EXTRA_DIST = REFERENCES OChangeLog Makefile.maint GNUmakefile EXTRA_DIST = REFERENCES OChangeLog Makefile.maint GNUmakefile
.PHONY: maintainer-check
maintainer-check:
cd tests && $(MAKE) $(AM_MAKEFLAGS) $@
## ---------------------------- ## ## ---------------------------- ##
## Customizing Makefile.maint. ## ## Customizing Makefile.maint. ##

View File

@@ -26,28 +26,13 @@ AC_CONFIG_AUX_DIR(config)
AM_INIT_AUTOMAKE([1.7 check-news readme-alpha dist-bzip2]) AM_INIT_AUTOMAKE([1.7 check-news readme-alpha dist-bzip2])
AC_CONFIG_HEADERS([config.h:config.hin]) AC_CONFIG_HEADERS([config.h:config.hin])
# Initialize the test suite. # Checks for the compiler.
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.
AC_PROG_CC AC_PROG_CC
AM_PROG_LEX # Remove with Automake 1.8.
AC_PROG_YACC
AC_MINIX
AC_ISC_POSIX AC_ISC_POSIX
AC_GNU_SOURCE
AC_MINIX
AM_PROG_CC_STDC 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, AC_ARG_ENABLE(gcc-warnings,
[ --enable-gcc-warnings turn on lots of GCC warnings (not recommended)], [ --enable-gcc-warnings turn on lots of GCC warnings (not recommended)],
[case "${enableval}" in [case "${enableval}" in
@@ -73,8 +58,15 @@ if test "${enableval}" = yes; then
BISON_WARNING(-Wwrite-strings) BISON_WARNING(-Wwrite-strings)
fi fi
# Checks for libraries. # Checks for programs.
AC_DEFINE([_GNU_SOURCE],1,[Define to 1 for GNU C library extensions.]) 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. # Checks for header files.
AC_HEADER_STDC AC_HEADER_STDC
@@ -110,6 +102,18 @@ BISON_PREREQ_TIMEVAR
AM_GNU_GETTEXT(external, need-ngettext) AM_GNU_GETTEXT(external, need-ngettext)
AM_GNU_GETTEXT_VERSION(0.11.5) 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 AC_CONFIG_FILES([Makefile
config/Makefile config/Makefile
po/Makefile.in po/Makefile.in

View File

@@ -71,3 +71,23 @@ check_SCRIPTS = bison
# Run the test suite on the *installed* tree. # Run the test suite on the *installed* tree.
installcheck-local: installcheck-local:
$(SHELL) $(TESTSUITE) AUTOTEST_PATH=$(exec_prefix)/bin $(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++

View File

@@ -1,10 +1,12 @@
# @configure_input@ -*- shell-script -*- # @configure_input@ -*- shell-script -*-
# Configurable variable values for Bison test suite. # 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. # We need a C compiler.
CC='@CC@' CC='@CC@'
CFLAGS='@CFLAGS@ @WARNING_CFLAGS@ @WERROR_CFLAGS@'
# We want no optimization.
CFLAGS='@O0CFLAGS@ @WARNING_CFLAGS@ @WERROR_CFLAGS@'
# We need `config.h'. # We need `config.h'.
CPPFLAGS="-I$abs_top_builddir @CPPFLAGS@" CPPFLAGS="-I$abs_top_builddir @CPPFLAGS@"

View File

@@ -5,4 +5,4 @@
# We want to use the files shipped with Bison. # We want to use the files shipped with Bison.
BISON_PKGDATADIR='@abs_top_srcdir@/data' BISON_PKGDATADIR='@abs_top_srcdir@/data'
export BISON_PKGDATADIR export BISON_PKGDATADIR
exec '@abs_top_builddir@/src/bison' ${1+"$@"} exec $PREBISON '@abs_top_builddir@/src/bison' ${1+"$@"}