]> git.saurik.com Git - bison.git/commitdiff
Between Bison releases, manually append `+' to the previous Bison
authorJoel E. Denny <jdenny@ces.clemson.edu>
Tue, 6 Jun 2006 05:23:44 +0000 (05:23 +0000)
committerJoel E. Denny <jdenny@ces.clemson.edu>
Tue, 6 Jun 2006 05:23:44 +0000 (05:23 +0000)
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.

ChangeLog
configure.ac
src/.cvsignore
src/Makefile.am
src/getargs.c
src/revision.h [new file with mode: 0644]

index c44f0e4c7245c81d93da498c027889500a6088be..b83293398bec314d1539781b1fe6cce8b340ea2c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+$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.
index 7804b023f797fa4b2e29d63f0b4e51afae0571ea..808243f76ca86015e0d9861cc6635ff6b2abbf80 100644 (file)
@@ -24,7 +24,7 @@
 # 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])
 
index 5b8481ab9e8bd82f731a8b3f7a568a747ac7ce89..2fa6d0ea316f25d6bb3b5c90421d674a705e9c07 100644 (file)
@@ -5,6 +5,7 @@
 Makefile
 Makefile.in
 bison
+revision.c
 scan-gram.c
 scan-skel.c
 yacc
index c973e9e75c3d1a7eb13e757c5013b3f0766cafeb..fd148f1034d5b3316d66366d3251840473c89821 100644 (file)
@@ -52,6 +52,7 @@ bison_SOURCES =                                         \
        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                 \
@@ -66,7 +67,7 @@ bison_SOURCES =                                         \
 
 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
 
@@ -78,6 +79,16 @@ 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.
 
index 13b0d3215c072584fb3b3197b35a4fb72cdc64eb..3895d3faa2da8d1117c84b8295987cb38c798daa 100644 (file)
@@ -22,6 +22,7 @@
 
 #include <config.h>
 #include "system.h"
+#include "revision.h"
 
 #include <argmatch.h>
 #include <error.h>
@@ -272,6 +273,7 @@ version (void)
      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);
 
diff --git a/src/revision.h b/src/revision.h
new file mode 100644 (file)
index 0000000..f8d3885
--- /dev/null
@@ -0,0 +1,27 @@
+/* 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_ */