* Makefile.am (TESTS, check_PROGRAMS): Initialize here.
* examples/local.mk (doc, extexi): Define here.
* examples/calc++/local.mk: Adjust accordingly.
* configure.ac: Ask for parallel-tests (for the way the logs
are handled).
* examples/calc++/test: As a consequence, always be verbose.
($prog): New.
(run): Use it.
Sort the tests in a more natural order (simplest first).
The directory was still using a local Makefile.am because it provides
"scoped" Make variables: these examples are not meant to use the same
CPPFLAGS etc. If we were to use the same -I set, we'd pick up
gnulib's stdio.h for instance, which we do not want for these simple
examples.
Yet, as a result, the dependencies are less accurate, there is code
duplication, etc. This is especially perceptible when trying to
extract more examples from the documentation, as will be done in
forthcoming changes.
In order to make the tuning of CPPFLAGS easier, discard the predefined
-I from Automake.
* examples/calc++/Makefile.am: Rename as...
* examples/calc++/local.mk: this.
Adjust the paths which are now rooted in top_srcdir/top_builddir.
Handle BISON_CXX_WORKS here, instead of the too crude previous
approach that completely discarded the whole directory.
($(BISON)): Remove now useless bouncing recipe.
(calc___CPPFLAGS): New.
Stay away from -Ilib.
* Makefile.am, configure.ac, examples/local.mk,
* examples/calc++/test: Adjust.
* configure.ac: Pass nostdinc to Automake.
* src/local.mk, lib/local.mk (AM_CPPFLAGS): Move to...
* Makefile.am: here.
* src/local.mk, examples/calc++/Makefile.am (BISON, BISON_IN): Factor
to...
* Makefile.am: here.
* tests/local.mk: Use it.
This should help to avoid some portability problems. For example,
it would have revealed the empty unions fixed by the last patch
* configure.ac (WARN_CFLAGS_TESTS, WARN_CXXFLAGS_TEST): Implement.
* tests/synclines.at (AT_TEST_SYNCLINE): Avoid -pedantic warning
about an empty translation unit.
(cherry picked from commit 5422d56a71)
This change was made by applying emacs' untabify function to
nearly all files in Bison's repository. Required tabs in make
files, ChangeLog, regexps, and test code were manually skipped.
Other notable exceptions and changes are listed below.
* bootstrap: Skip because we sync this with gnulib.
* data/m4sugar/foreach.m4
* data/m4sugar/m4sugar.m4: Skip because we sync these with
Autoconf.
* djgpp: Skip because I don't know how to test djgpp properly, and
this code appears to be unmaintained anyway.
* README-hacking (Hacking): Specify that tabs should be avoided
where not required.
The typo shows up in the `configure --help' output. Reported by
W.C.A. Wijngaards and Paul Eggert at
<http://lists.gnu.org/archive/html/bug-bison/2011-07/msg00000.html>.
* README-hacking (Release Procedure): Remind about updating
maintainer tools before a release.
* THANKS (W.C.A. Wijngaards): Add.
* configure.ac (AC_PREREQ): Set to 2.68, which fixes the YACC
typo.
(cherry picked from commit 845346b3bb)
It creates unnecessary differences between the sources that Bison
maintainers build and test (given that maintainers normally
configure with --enable-gcc-warnings) and the sources that Bison
users build. Instead, use PACIFY_CC, which doesn't. This change
fixes compiler warnings reported by Tys Lefering at
<http://lists.gnu.org/archive/html/bison-patches/2011-05/msg00004.html>.
* configure.ac: Don't AC_DEFINE lint regardless of the configure
options. This change affects imported gnulib sources, where
IF_LINT still appears and depends on lint.
* src/scan-gram.l, src/scan-skel.l: Replace uses of IF_LINT with
PACIFY_CC.
* src/system.h (IF_LINT): Remove cpp macro.
(PACIFY_CC): New cpp macro.
(cherry picked from commit 77bb73e7af)
Conflicts:
src/scan-gram.l
* configure.ac (AM_INIT_AUTOMAKE): Underscore or dash in a
version string should disable gnits. Explain in comments.
(cherry picked from commit 122ff44429)
Conflicts:
configure.ac
* configure.ac: For prepending lib/ to the values of config
variables, fix detection of empty values. Also, due to recent
gnulib changes, add LIBUNISTRING_UNITYPES_H and
LIBUNISTRING_UNIWIDTH_H to the list of those variables.
Reported by Dagobert Michelsen at
<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00023.html>.
* THANKS (Dagobert Michelsen): Add.
* configure.ac (AC_PREREQ): Set to 2.64 so we get the latest
Autoconf macro for handling the restrict keyword.
* gnulib: Update to latest, which no longer overrides that macro
from Autoconf.
(cherry picked from commit 4333ba11c6)
Conflicts:
configure.ac
* HACKING (Release Procedure): Update notes on copyright years.
* Makefile.am (update-package-copyright-year): New target rule.
* build-aux/update-package-copyright-year: New file.
* cfg.mk (update-copyright): Add update-package-copyright-year
as a dependency.
(cherry picked from commit af8a609a90)
* NEWS (2.4.2): Update description of -Wundef fix.
* configure.ac (WARN_CXXFLAGS_TEST): New substitution.
(WARN_CFLAGS_TEST): New substitution.
* data/glr.c: Avoid warning about __STRICT_ANSI__.
* tests/atlocal.in (CFLAGS): Use WARN_CFLAGS_TEST instead of
WARN_CFLAGS.
(NO_WERROR_CFLAGS): Likewise.
(CXXFLAGS): Use WARN_CXXFLAGS_TEST instead of WARN_CXXFLAGS.
* submodules/autoconf: Update to autoconf 2.64.
* configure.ac (M4_GNU_OPTION): New define.
* src/output.c (output_skeleton): Use it to resolve FIXME.
* NEWS: Mention this.
Signed-off-by: Eric Blake <ebb9@byu.net>
(cherry picked from commit b9ad39c1fb)
Bison was uselessly requiring the formatstring macros from
gettext, which resulted in mo files not being installed on systems
that perfectly supported Bison mo files. Lower the requirement.
http://lists.gnu.org/archive/html/bug-bison/2009-08/msg00006.html
* configure.ac: Require need-ngettext instead of
need-formatstring-macros.
Reported by Martin Jabocs.
Suggested by Bruno Haible.
* INSTALL: Restructure.
(Internationalization): New.
(cherry picked from commit b9e42bb439)
* configure.ac (gl_PREFIXED_LIBOBJS): Don't rename it, rather,
change the value of...
(gl_LIBOBJS): this.
Adjust more variables.
* etc/prefix-gnulib-mk (prefix_assignment): Don't rename
gl_LIBOBJS.
(prefix): Also transform rules whose targets have slashes.
Use $prefix liberally.
Map @MKDIR_P@ to $(MKDIR_P).
Prefix directories that are mkdir'd.
If the first m4 in $PATH is wrong, it keeps looking. Moreover, its
requirements for a correct m4 are stricter.
* m4/m4.m4: Make it a symbolic link to submodules/autoconf/m4/m4.m4.
* configure.ac: Update to use AC_PROG_GNU_M4.
Reported by Eric Blake.
* tests/local.mk: Replace "cd && testsuite" by "testsuite -C".
Solves problems when top_srcdir is an absolute path.
Suggested by Eric Blake.
* configure.ac: Require Autoconf 2.62.
The real problem is rather gnulib.mk, which itself is extracted from a
Makefile.am that gnulib expects to the "recursive". The tool
prefix-gnulib-mk converts such a gnulib.mk to be non-recursive. Also,
some AC_SUBST variables need to be adjusted.
* etc/prefix-gnulib-mk: New.
* bootstrap (slurp): Use it to convert further gnulib.mk.
* lib/Makefile.am: Rename as...
* lib/local.mk: this.
Adjust to be prefixed.
* Makefile.am, configure.ac: Adjust.
* src/local.mk (AM_CPPFLAGS): Extend it, don't define it.
* tests/Makefile.am: Rename as...
* tests/local.mk: this.
* Makefile.am, configure.ac: Adjust.
* Makefile.am (DISTCLEANFILES): Define.
(maintainer-check, maintainer-xml-check, maintainer-push-check):
Remove, we no longer need to bounce to the real targets.
* src/Makefile.am: Rename as...
* src/local.mk: this.
Prefix all the paths with src/.
(AUTOMAKE_OPTIONS): Build object files in the sub dirs.
(AM_CPPFLAGS): Find find in builddir/src.
(YACC): Move the flags into...
(AM_YFLAGS): here.
* maint.mk (sc_tight_scope): Disable.
It used to bounce to the version in src/Makefile.am which is now
part of this very Makefile.
* Makefile.am, configure.ac: Adjust.
* src/scan-code-c.c, src/scan-code.l: We can no longer rely on
include "..." to find files "here": we are no longer in src/, so
qualify the includes with src/.
* doc/Makefile.am (PREPATH): No longer include the top_builddir
prefix.
(.x.1): Adjust to be able to create src/foo from the top level
Makefile, instead of going bounce to src/Makefile the creation of
foo.
examples/calc++/Makefile.am might be interesting to keep as is, since
it is an example in itself.
* examples/Makefile.am: Rename as...
* examples/local.mk: this.
Adjust.
* Makefile.am, configure.ac: Adjust.
Recursive Makefiles are really way too slow, let's get rid of some of
them.
* build-aux/Makefile.am: Rename as...
* build-aux/local.mk: this.
Adjust paths.
* Makefile.am, configure.ac: Adjust.
* NEWS: Document them.
General Java skeleton improvements.
* configure.ac (gt_JAVACOMP): Request target of 1.4, which allows
using gcj < 4.3 in the testsuite, according to comments in
gnulib/m4/javacomp.m4.
* data/java.m4 (stype, parser_class_name, lex_throws, throws,
location_type, position_type): Remove extraneous brackets from
b4_percent_define_default.
(b4_lex_param, b4_parse_param): Remove extraneous brackets from
m4_define and m4_define_default.
* data/lalr1.java (b4_pre_prologue): Change to b4_user_post_prologue,
which marks the end of user code with appropriate syncline, like all
the other skeletons.
(b4_user_post_prologue): Add. Don't silently drop.
(yylex): Remove.
(parse): Inline yylex.
* doc/bison.texinfo (bisonVersion, bisonSkeleton): Document.
(%{...%}): Fix typo of %code imports.
* tests/java.at (AT_JAVA_COMPILE): Add "java" keyword.
Support annotations on parser class with %define annotations.
* data/lalr1.java (annotations): Add to parser class modifier.
* doc/bison.texinfo (Java Parser Interface): Document
%define annotations.
(Java Declarations Summary): Document %define annotations.
* tests/java.at (Java parser class modifiers): Test annotations.
Do not generate code for %error-verbose unless requested.
* data/lalr1.java (errorVerbose): Rename to yyErrorVerbose.
Make private. Make conditional on %error-verbose.
(getErrorVerbose, setErrorVerbose): New.
(yytnamerr_): Make conditional on %error-verbose.
(yysyntax_error): Make some code conditional on %error-verbose.
* doc/bison.texinfo (Java Bison Interface): Remove the parts
about %error-verbose having no effect.
(getErrorVerbose, setErrorVerbose): Document.
Move constants for token names to Lexer interface.
* data/lalr1.java (Lexer): Move EOF, b4_token_enums(b4_tokens) here.
* data/java.m4 (b4_token_enum): Indent for move to Lexer interface.
(parse): Qualify EOF to Lexer.EOF.
* doc/bison.texinfo (Java Parser Interface): Move documentation of
EOF and token names to Java Lexer Interface.
* tests/java.at (_AT_DATA_JAVA_CALC_Y): Remove Calc qualifier.
Make yyerror public.
* data/lalr1.java (Lexer.yyerror): Use longer parameter name.
(yyerror): Change to public. Add Javadoc comments. Use longer
parameter names. Make the body rather than the declarator
conditional on %locations.
* doc/bison.texinfo (yyerror): Document. Don't mark as protected.
Allow user to add code to the constructor with %code init.
* data/java.m4 (b4_init_throws): New, for %define init_throws.
* data/lalr1.java (YYParser.YYParser): Add b4_init_throws.
Add %code init to the front of the constructor body.
* doc/bison.texinfo (YYParser.YYParser): Document %code init
and %define init_throws.
(Java Declarations Summary): Document %code init and
%define init_throws.
* tests/java.at (Java %parse-param and %lex-param): Adjust grep.
(Java constructor init and init_throws): Add tests.
* .cvsignore (.tarball-version, GNUmakefile, *~): Add.
* .gitignore (/.tarball-version, /GNUmakefile, /*~): Add.
* .prev-version: New.
* .version.in: Remove.
* ChangeLog: Remove the $Id$ previously used for capturing the CVS
revision.
* GNUmakefile: Remove, now copied from Gnulib.
* Makefile.am: Add code suggested by comments in
build-aux/git-version-gen.
(EXTRA_DIST): Remove GNUmakefile, handled by Gnulib. Add maint.mk,
.prev-version, and .version.
* NEWS (2.3b+): Rename to...
(?.?): ... this because we're dropping the "+" version naming scheme,
but, in general, we still can't be sure of our next release name.
* bootstrap: Add a quick hack to remove from .gitignore the
GNUmakefile entry that gnulib adds. We already have a /GNUmakefile
entry. This should really be fixed in gnulib instead.
* bootstrap.conf (gnulib_modules): Add gnumakefile.
* configure.ac (AC_INIT): Set version name by invoking
build-aux/git-version-gen.
(AC_CONFIG_FILES): Remove .version, now generated by
build-aux/git-version-gen.
* maint.mk: New, copied from coreutils.
* doc/.cvsignore (bison.1): Add.
* doc/.gitignore (/bison.1): Add.
* doc/bison.1: Remove, generated.
* src/.cvsignore (revision.c): Remove.
* src/.gitignore (/revision.c): Remove.
* src/Makefile.am (bison_SOURCES): Remove revision.c and revision.h.
(BUILT_SOURCES): Remove revision.c.
(revision.c): Remove.
* src/getargs.c (version): Don't print revision after the VERSION.
* src/revision.h: Remove.
starting at
<http://lists.gnu.org/archive/html/bison-patches/2007-11/msg00021.html>.
* configure.ac (XSLTPROC): New substitution.
* Makefile.am (maintainer-xml-check): New phony target invoking...
* tests/Makefile.am (maintainer-xml-check): ... this new phony target
invoking make maintainer-check with BISON_TEST_XML=1.
* tests/atlocal.in (XSLTPROC): New.
* tests/local.at (AT_BISON_CHECK): New macro to (1) instruct Valgrind
not to report reachable memory when Bison is expected to have a
non-zero exit status and (2) to compare XML/XSLT output with --graph
and --report=all output for every working grammar when
BISON_TEST_XML=1.
(AT_BISON_CHECK_NO_XML): Likewise, but skip XML checks.
(AT_BISON_CHECK_XML): New.
(AT_QUELL_VALGRIND): New.
* tests/testsuite.at (ORIGINAL_AT_CHECK): Remove this and...
(AT_CHECK): ... don't redefine this since this was the old way to
quell Valgrind.
* tests/actions.at: Rewrite all AT_CHECK invocations for bison as
AT_BISON_CHECK invocations.
* tests/c++.at: Likewise.
* tests/calc.at: Likewise.
* tests/conflicts.at: Likewise.
* tests/cxx-type.at: Likewise.
* tests/existing.at: Likewise.
* tests/glr-regression.at: Likewise.
* tests/headers.at: Likewise.
* tests/input.at: Likewise.
* tests/java.at: Likewise.
* tests/output.at: Likewise.
* tests/push.at: Likewise.
* tests/reduce.at: Likewise.
* tests/regression.at: Likewise.
* tests/sets.at: Likewise.
* tests/skeletons.at: Likewise.
* tests/synclines.at: Likewise.
* tests/torture.at: Likewise.
(Big triangle): Use AT_BISON_CHECK_NO_XML instead since this grammar
tends to hang xsltproc.
(Big horizontal): Likewise.
* configure.ac, doc/Makefile.am: Adjust.
* configure.ac (PACKAGE_COPYRIGHT_YEAR): New substitution, and new
config.h symbol.
Use AC_SUBST for assignments too.
* src/getargs.c (version): Use PACKAGE_COPYRIGHT_YEAR.
* doc/common.x, doc/bison.x: New.
* doc/Makefile.am (bison.1, .x.1): New.
The code is taken from autoconf-2.61/man/Makefile.am.
* configure.ac: Look for help2man.