+$Id$
+
+2006-06-06 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Between Bison releases, manually append `+' to the previous Bison
+ release number, and use that as a signal to automatically print the
+ ChangeLog's CVS Id keyword from --version. Discussed starting at
+ <http://lists.gnu.org/archive/html/bison-patches/2006-05/msg00028.html>.
+ * ChangeLog: Add Id header.
+ * configure.ac (AC_INIT): Append `+' to `2.3'.
+ * src/.cvsignore: Add revision.c.
+ * src/Makefile.am (bison_SOURCES): Add revision.c and revision.h.
+ (BUILT_SOURCES): Add revision.c.
+ (revision.c): New target rule. This file defines a new global variable
+ named revision. It initializes it with either the Id from ChangeLog
+ or, if VERSION doesn't contain `+', with the empty string.
+ * src/getargs.c (version): Print the value of revision.
+ * src/revision.h: Extern revision.
+
2006-06-05 Paul Eggert <eggert@cs.ucla.edu>
* NEWS: Version 2.3.
# least Autoconf 2.59.
AC_PREREQ(2.59)
-AC_INIT([GNU Bison], [2.3], [bug-bison@gnu.org])
+AC_INIT([GNU Bison], [2.3+], [bug-bison@gnu.org])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIR([m4])
Makefile
Makefile.in
bison
+revision.c
scan-gram.c
scan-skel.c
yacc
print_graph.c print_graph.h \
reader.c reader.h \
reduce.c reduce.h \
+ revision.c revision.h \
relation.c relation.h \
scan-gram-c.c \
scan-skel-c.c scan-skel.h \
EXTRA_bison_SOURCES = scan-skel.l scan-gram.l
-BUILT_SOURCES = scan-skel.c scan-gram.c parse-gram.c parse-gram.h
+BUILT_SOURCES = revision.c scan-skel.c scan-gram.c parse-gram.c parse-gram.h
MOSTLYCLEANFILES = yacc
echo:
echo $(bison_SOURCES) $(noinst_HEADERS)
+revision.c: $(top_srcdir)/configure $(top_srcdir)/ChangeLog
+ case "$(VERSION)" in \
+ *+*) sed -n \
+ 's/^\$$\(Id.*\)\$$$$/const char *revision = "\1\\n";/p' \
+ $(top_srcdir)/ChangeLog \
+ ;; \
+ *) echo 'const char *revision = "";' \
+ ;; \
+ esac >$@
+
# The following rule is not designed to be portable,
# and relies on tools that not everyone has.
#include <config.h>
#include "system.h"
+#include "revision.h"
#include <argmatch.h>
#include <error.h>
continue. */
printf (_("bison (GNU Bison) %s"), VERSION);
putc ('\n', stdout);
+ printf ("%s", revision);
fputs (_("Written by Robert Corbett and Richard Stallman.\n"), stdout);
putc ('\n', stdout);
--- /dev/null
+/* Between Bison releases, define a precise revision string.
+
+ Copyright (C) 2006 Free Software Foundation, Inc.
+
+ This file is part of Bison, the GNU Compiler Compiler.
+
+ Bison is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ Bison is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Bison; see the file COPYING. If not, write to the Free
+ Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA. */
+
+#ifndef REVISION_H_
+# define REVISION_H_
+
+extern const char *revision;
+
+#endif /* !REVISION_H_ */