bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 2/2] Adjust to recent changes to gnulib bootstrap.


From: Paul Eggert
Subject: [PATCH 2/2] Adjust to recent changes to gnulib bootstrap.
Date: Fri, 08 Oct 2010 11:15:25 -0700
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.12) Gecko/20100915 Thunderbird/3.0.8

* .cvsignore, build-aux/.cvsignore, doc/.cvsignore, etc/.cvsignore:
* examples/calc++/.cvsignore, lib/.cvsignore, m4/.cvsignore:
* po/.cvsignore, runtime-po/.cvsignore, src/.cvsignore:
* tests/.cvsignore: Remove; I don't use CVS to maintain Bison
anymore and don't know of anybody else who does.  If someone needs
these files, they can resurrect them.
* .gitignore, build-aux/.gitignore, doc/.gitignore, lib/.gitignore:
* m4/.gitignore, po/.gitignore, runtime-po/.gitignore:
Omit leading '/', since bootstrap omits it.
Adjust file names to match current contents better.
* bootstrap: Sync from gnulib: this contains the new gnulib_mk_hook
installed just for us.
* bootstrap.conf (excluded_files): Don't exclude codeset.m4,
glibc21.m4, inttypes_h.m4, size_max.m4, xsize.m4, as they are now
needed somehow.  Don't have time to look into why.
(gnulib_modules): Change malloc to malloc-gnu.  Do we really assume
the GNU malloc behavior, where malloc (0) != NULL unless we're
out of storage?  If not, we can omit malloc-gnu; but for now I left
it in to be safe.
(vc_ignore): Remove.
(gnulib_mk_hook): New function.
* README-hacking: Renamed from HACKING, since gnulib bootstrap now
uses that convention.
---
 .cvsignore                 |   32 ----
 .gitignore                 |   54 +++---
 ChangeLog                  |   28 +++
 HACKING                    |  389 ---------------------------------------
 README-hacking             |  389 +++++++++++++++++++++++++++++++++++++++
 bootstrap                  |  239 ++++++++++++++----------
 bootstrap.conf             |   15 +-
 build-aux/.cvsignore       |   22 ---
 build-aux/.gitignore       |   44 +++---
 doc/.cvsignore             |   25 ---
 doc/.gitignore             |   52 +++---
 etc/.cvsignore             |    1 -
 examples/calc++/.cvsignore |   11 -
 lib/.cvsignore             |  219 ----------------------
 lib/.gitignore             |  438 ++++++++++++++++++++++----------------------
 m4/.cvsignore              |  143 --------------
 m4/.gitignore              |  284 ++++++++++++++--------------
 po/.cvsignore              |   22 ---
 po/.gitignore              |   44 +++---
 runtime-po/.cvsignore      |   22 ---
 runtime-po/.gitignore      |   44 +++---
 src/.cvsignore             |    9 -
 src/.gitignore             |   23 ++-
 tests/.cvsignore           |   13 --
 24 files changed, 1055 insertions(+), 1507 deletions(-)
 delete mode 100644 .cvsignore
 delete mode 100644 HACKING
 create mode 100644 README-hacking
 delete mode 100644 build-aux/.cvsignore
 delete mode 100644 doc/.cvsignore
 delete mode 100644 etc/.cvsignore
 delete mode 100644 examples/calc++/.cvsignore
 delete mode 100644 lib/.cvsignore
 delete mode 100644 m4/.cvsignore
 delete mode 100644 po/.cvsignore
 delete mode 100644 runtime-po/.cvsignore
 delete mode 100644 src/.cvsignore
 delete mode 100644 tests/.cvsignore

diff --git a/.cvsignore b/.cvsignore
deleted file mode 100644
index 20ef677..0000000
--- a/.cvsignore
+++ /dev/null
@@ -1,32 +0,0 @@
-*.cache
-*.flc
-*.prj
-*~
-.tarball-version
-.version
-ABOUT-NLS
-COPYING
-GNUmakefile
-INSTALL
-Makefile
-Makefile.in
-_*
-a.exe
-a.out
-aclocal.m4
-b.out
-bison-*
-conf[0-9]*
-confdefs*
-config.log
-config.status
-configure
-configure.lineno
-conftest*
-gnulib
-javacomp.sh
-javaexec.sh
-maint.mk
-patches
-releases
-stamp-h*
diff --git a/.gitignore b/.gitignore
index 185cefc..95e5d69 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,32 +1,32 @@
+.tarball-version
+.version
 /*.cache
 /*.flc
 /*.prj
 /*~
-/.tarball-version
-/.version
-/ABOUT-NLS
-/COPYING
-/GNUmakefile
-/INSTALL
-/Makefile
-/Makefile.in
 /_*
-/a.exe
-/a.out
-/aclocal.m4
-/b.out
-/bison-*
-/conf[0-9]*
-/confdefs*
-/config.log
-/config.status
-/configure
-/configure.lineno
-/conftest*
-/gnulib
-/javacomp.sh
-/javaexec.sh
-/maint.mk
-/patches
-/releases
-/stamp-h*
+ABOUT-NLS
+COPYING
+GNUmakefile
+INSTALL
+Makefile
+Makefile.in
+a.exe
+a.out
+aclocal.m4
+b.out
+bison-*
+conf[0-9]*
+confdefs*
+config.log
+config.status
+configure
+configure.lineno
+conftest*
+gnulib
+javacomp.sh
+javaexec.sh
+maint.mk
+patches
+releases
+stamp-h*
diff --git a/ChangeLog b/ChangeLog
index 5b61ec5..65a7c02 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,31 @@
+2010-10-08  Paul Eggert  <address@hidden>
+
+       Adjust to recent changes to gnulib bootstrap.
+
+       * .cvsignore, build-aux/.cvsignore, doc/.cvsignore, etc/.cvsignore:
+       * examples/calc++/.cvsignore, lib/.cvsignore, m4/.cvsignore:
+       * po/.cvsignore, runtime-po/.cvsignore, src/.cvsignore:
+       * tests/.cvsignore: Remove; I don't use CVS to maintain Bison
+       anymore and don't know of anybody else who does.  If someone needs
+       these files, they can resurrect them.
+       * .gitignore, build-aux/.gitignore, doc/.gitignore, lib/.gitignore:
+       * m4/.gitignore, po/.gitignore, runtime-po/.gitignore:
+       Omit leading '/', since bootstrap omits it.
+       Adjust file names to match current contents better.
+       * bootstrap: Sync from gnulib: this contains the new gnulib_mk_hook
+       installed just for us.
+       * bootstrap.conf (excluded_files): Don't exclude codeset.m4,
+       glibc21.m4, inttypes_h.m4, size_max.m4, xsize.m4, as they are now
+       needed somehow.  Don't have time to look into why.
+       (gnulib_modules): Change malloc to malloc-gnu.  Do we really assume
+       the GNU malloc behavior, where malloc (0) != NULL unless we're
+       out of storage?  If not, we can omit malloc-gnu; but for now I left
+       it in to be safe.
+       (vc_ignore): Remove.
+       (gnulib_mk_hook): New function.
+       * README-hacking: Renamed from HACKING, since gnulib bootstrap now
+       uses that convention.
+
 2010-09-09  Paul Hilfinger  <address@hidden>
 
        * data/glr.c (yySymbol): Define as int to avoid compiler warnings about
diff --git a/HACKING b/HACKING
deleted file mode 100644
index ec3d36d..0000000
--- a/HACKING
+++ /dev/null
@@ -1,389 +0,0 @@
--*- outline -*-
-
-This file attempts to describe the rules to use when hacking Bison.
-Don't put this file into the distribution.
-
-Everything related to the development of Bison is on Savannah:
-
-        http://savannah.gnu.org/projects/bison/
-
-
-* Administrivia
-
-** If you incorporate a change from somebody on the net:
-First, if it is a large change, you must make sure they have signed
-the appropriate paperwork.  Second, be sure to add their name and
-email address to THANKS.
-
-** If a change fixes a test, mention the test in the ChangeLog entry.
-
-** Bug reports
-If somebody reports a new bug, mention his name in the ChangeLog entry
-and in the test case you write.  Put him into THANKS.
-
-The correct response to most actual bugs is to write a new test case
-which demonstrates the bug.  Then fix the bug, re-run the test suite,
-and check everything in.
-
-** You may find it useful to install the git-merge-changelog merge driver:
-
-  http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=blob;f=lib/git-merge-changelog.c
-
-When following the generic installation instructions there, keep in mind that
-your clone of Bison's git repository already contains appropriate
-.gitattributes files, and running Bison's bootstrap script will make the
-necessary changes to .git/config.
-
-
-* Hacking
-
-** Visible changes
-Which include serious bug fixes, must be mentioned in NEWS.
-
-** Translations
-Only user visible strings are to be translated: error messages, bits
-of the .output file etc.  This excludes impossible error messages
-(comparable to assert/abort), and all the --trace output which is
-meant for the maintainers only.
-
-
-* Working from the repository
-
-These notes intend to help people working on the checked-out sources.
-These requirements do not apply when building from a distribution tarball.
-
-** Requirements
-
-We've opted to keep only the highest-level sources in the repository.
-This eases our maintenance burden, (fewer merges etc.), but imposes more
-requirements on anyone wishing to build from the just-checked-out sources.
-For example, you have to use the latest stable versions of the maintainer
-tools we depend upon, including:
-
-- Automake <http://www.gnu.org/software/automake/>
-- Autoconf <http://www.gnu.org/software/autoconf/>
-- Flex <http://www.gnu.org/software/flex/>
-- Gettext <http://www.gnu.org/software/gettext/>
-- Gzip <http://www.gnu.org/software/gzip/>
-- Perl <http://www.cpan.org/>
-- Rsync <http://samba.anu.edu.au/rsync/>
-- Tar <http://www.gnu.org/software/tar/>
-
-Valgrind <http://valgrind.org/> is also highly recommended, if
-Valgrind supports your architecture.
-
-Bison is written using Bison grammars, so there are bootstrapping
-issues.  The bootstrap script attempts to discover when the C code
-generated from the grammars is out of date, and to bootstrap with an
-out-of-date version of the C code, but the process is not foolproof.
-Also, you may run into similar problems yourself if you modify Bison.
-
-Only building the initial full source tree will be a bit painful.
-Later, after synchronizing from the repository a plain `make' should
-be sufficient.
-
-** First checkout
-
-Obviously, if you are reading these notes, you did manage to check out
-this package from the repository.  For the record, you will find all the
-relevant information on:
-
-        http://savannah.gnu.org/git/?group=bison
-
-Bison uses Git submodules: subscriptions to other Git repositories.
-In particular it uses gnulib, the GNU portability library.  To ask Git
-to perform the first checkout of the submodules, run
-
-       $ git submodule update --init
-
-Git submodule support is weak before versions 1.6 and later, you
-should probably upgrade Git if your version is older.
-
-The next step is to get other files needed to build, which are
-extracted from other source packages:
-
-        $ ./bootstrap
-
-And there you are!  Just
-
-        $ ./configure
-        $ make
-        $ make check
-
-At this point, there should be no difference between your local copy,
-and the master copy:
-
-        $ git diff
-
-should output no difference.
-
-Enjoy!
-
-** Updating
-
-The use of submodules make things somewhat different because git does
-not support recursive operations: submodules must be taken care of
-explicitly by the user.
-
-*** Updating Bison
-
-If you pull a newer version of a branch, say via `git pull', you might
-import requests for updated submodules.  A simple `git diff' will
-reveal if the current version of the submodule (i.e., the actual
-contents of the gnulib directory) and the current request from the
-subscriber (i.e., the reference of the version of gnulib that the
-Bison reporitory requests) differ.  To upgrade the submodules (i.e.,
-to check out the version that is actually requested by the subscriber,
-run `git submodule update'.
-
-        $ git pull
-        $ git submodule update
-
-*** Updating a submodule
-To update a submodule, say gnulib, do as follows:
-
-Get the most recent version of the master branch from git.
-
-        $ cd gnulib
-        $ git fetch
-        $ git checkout -b master --track origin/master
-
-Make sure Bison can live with that version of gnulib.
-
-        $ cd ..
-        $ ./bootstrap
-        $ make distcheck
-
-Register your changes.
-
-        $ git checkin ...
-
-
-* Test suite
-
-** make check
-Use liberally.
-
-** Release checks
-Try to run the test suite with more severe conditions before a
-release:
-
-- Configure the package with --enable-gcc-warnings, so that one checks
-  that 1. Bison compiles cleanly, 2. the parsers it produces compile
-  cleanly too.
-
-- Build with -DGNULIB_POSIXCHECK.  It suggests gnulib modules that can
-  fix portability issues.
-
-- run `make maintainer-check' which:
-  - runs `valgrind -q bison' to run Bison under Valgrind.
-  - runs the parsers under Valgrind.
-  - runs the test suite with G++ as C compiler...
-
-- run `make maintainer-push-check', which runs `make maintainer-check'
-  while activating the push implementation and its pull interface wrappers
-  in many test cases that were originally written to exercise only the
-  pull implementation.  This makes certain the push implementation can
-  perform every task the pull implementation can.
-
-- run `make maintainer-xml-check', which runs `make maintainer-check'
-  while checking Bison's XML automaton report for every working grammar
-  passed to Bison in the test suite.  The check just diffs the output of
-  Bison's included XSLT style sheets with the output of --report=all and
-  --graph.
-
-- Change tests/atlocal/CFLAGS to add your preferred options.  For
-  instance, `-traditional' to check that the parsers are K&R.  Note
-  that it does not make sense for glr.c, which should be ANSI,
-  but currently is actually GNU C, nor for lalr1.cc.
-
-- Test with a very recent version of GCC for both C and C++.  Testing
-  with older versions that are still in use is nice too.
-
-
-* Release Procedure
-
-** Try to get the *.pot files to the Translation Project at least one
-week before a stable release, to give them time to translate them.
-Before generating the *.pot files, make sure that po/POTFILES.in and
-runtime-po/POTFILES.in list all files with translatable strings.
-This helps: grep -l '\<_(' *
-
-** Tests
-See above.
-
-** Update the foreign files
-Running `./bootstrap' in the top level should update them all for you.
-This covers PO files too.  Sometimes a PO file contains problems that
-causes it to be rejected by recent Gettext releases; please report
-these to the Translation Project.
-
-** Update README
-Make sure the information in README is current.  Most notably, make sure
-it recommends a version of GNU M4 that is compatible with the latest
-Bison sources.
-
-** Check copyright years.
-We update years in copyright statements throughout Bison once at the
-start of every year by running `make update-copyright'.  However, before
-a release, it's good to verify that it's actually been run.  Besides the
-copyright statement for each Bison file, check the copyright statements
-that the skeletons insert into generated parsers, and check all
-occurrences of PACKAGE_COPYRIGHT_YEAR in configure.ac.
-
-** Update NEWS
-The version number, *and* the date of the release (including for
-betas).
-
-** Update ChangeLog
-Should have an entry similar to `Version 1.49b.'.
-
-** Tag the release
-Before Bison will build with the right version number, you must tag the release
-in git.  Do this after all other changes.  The command is similar to:
-
-  git tag -a v2.3b
-
-The log message can be simply:
-
-  Bison 2.3b
-
-** Push
-Once `make distcheck' passes, push your changes and the tag.
-`git push' without arguments will not push the tag.
-
-** make alpha
-FIXME: `make alpha' is not maintained and is broken.  These
-instructions need to be replaced or removed.
-
-Running `make alpha' is absolutely perfect for beta releases: it makes
-the tarballs, the xdeltas, and prepares (in /tmp/) a proto
-announcement.  It is so neat, that that's what I use anyway for
-genuine releases, but adjusting things by hand (e.g., the urls in the
-announcement file, the ChangeLog which is not needed etc.).
-
-If it fails, you're on your own...
-
-It requires GNU Make.
-
-** Upload
-The generic GNU upload procedure is at:
-
-  http://www.gnu.org/prep/maintain/maintain.html#Automated-FTP-Uploads
-
-Follow the instructions there to register your information so you're permitted
-to upload.  Make sure your public key has been uploaded at least to
-keys.gnupg.net.  You can upload it with:
-
-  gpg --keyserver keys.gnupg.net --send-keys F125BDF3
-
-where F125BDF3 should be replaced with your key ID.
-
-Here's a brief reminder of how to roll the tarballs and upload them:
-
-*** make distcheck
-*** gpg -b bison-2.3b.tar.gz
-*** In a file named `bison-2.3b.tar.gz.directive', type:
-
-      version: 1.1
-      directory: bison
-      filename: bison-2.3b.tar.gz
-
-*** gpg --clearsign bison-2.3b.tar.gz.directive
-*** ftp ftp-upload.gnu.org # Log in as anonymous.
-*** cd /incoming/alpha # cd /incoming/ftp for full release.
-*** put bison-2.3b.tar.gz # This can take a while.
-*** put bison-2.3b.tar.gz.sig
-*** put bison-2.3b.tar.gz.directive.asc
-*** Repeat all these steps for bison-2.3b.tar.bz2.
-
-** Update Bison manual on www.gnu.org.
-
-*** You need a non-anonymous checkout of the web pages directory.
-
-  $ cvs -d address@hidden:/web/bison checkout bison
-
-*** Get familiar with the instructions for web page maintainers.
-http://www.gnu.org/server/standards/readme_index.html
-http://www.gnu.org/server/standards/README.software.html
-especially the note about symlinks.
-
-*** Build the web pages.
-Assuming BISON_CHECKOUT refers to a checkout of the Bison dir, and
-BISON_WWW_CHECKOUT refers to the web directory created above, do:
-
-  $ cd $BISON_CHECKOUT/doc
-  $ make stamp-vti
-  $ ../build-aux/gendocs.sh -o "$BISON_WWW_CHECKOUT/manual" \
-    bison "Bison - GNU parser generator"
-  $ cd $BISON_WWW_CHECKOUT
-
-Verify that the result looks sane.
-
-*** Commit the modified and the new files.
-
-*** Remove old files.
-Find the files which have not been overwritten (because they belonged to
-sections that have been removed or renamed):
-
-   $ cd manual/html_node
-   $ ls -lt
-
-Remove these files and commit their removal to CVS.  For each of these
-files, add a line to the file .symlinks.  This will ensure that
-hyperlinks to the removed files will redirect to the entire manual; this
-is better than a 404 error.
-
-There is a problem with 'index.html' being written twice (once for POSIX
-function 'index', once for the table of contents); you can ignore this
-issue.
-
-** Announce
-To generate a template announcement file:
-
-  make RELEASE_TYPE=alpha gpg_key_ID=F125BDF3 announcement
-
-where alpha can be replaced by beta or stable and F125BDF3 should be
-replaced with your key ID.
-
-Complete/fix the announcement file.  The generated list of recipients
-(address@hidden, address@hidden, address@hidden,
address@hidden, and address@hidden) is
-appropriate for a stable release or a ``serious beta''.  For any other
-release, drop at least address@hidden  For an example of how to fill
-out the rest of the template, search the mailing list archives for the
-most recent release announcement.
-
-For a stable release, send the same announcement on the comp.compilers
-newsgroup by sending email to address@hidden  Do not make any Cc as
-the moderator will throw away anything cross-posted or Cc'ed.  It really
-needs to be a separate message.
-
-** Bump the version number
-In configure.ac.  Run `make'.  So that developers don't accidentally add new
-items to the old NEWS entry, create a new empty NEWS entry something like:
-
-  Changes in version ?.? (????-??-??):
-
-Push these changes.
-
-
------
-
-Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010 Free
-Software Foundation, Inc.
-
-This file is part of GNU Bison.
-
-This program 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 3 of the License, or
-(at your option) any later version.
-
-This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.
diff --git a/README-hacking b/README-hacking
new file mode 100644
index 0000000..ec3d36d
--- /dev/null
+++ b/README-hacking
@@ -0,0 +1,389 @@
+-*- outline -*-
+
+This file attempts to describe the rules to use when hacking Bison.
+Don't put this file into the distribution.
+
+Everything related to the development of Bison is on Savannah:
+
+        http://savannah.gnu.org/projects/bison/
+
+
+* Administrivia
+
+** If you incorporate a change from somebody on the net:
+First, if it is a large change, you must make sure they have signed
+the appropriate paperwork.  Second, be sure to add their name and
+email address to THANKS.
+
+** If a change fixes a test, mention the test in the ChangeLog entry.
+
+** Bug reports
+If somebody reports a new bug, mention his name in the ChangeLog entry
+and in the test case you write.  Put him into THANKS.
+
+The correct response to most actual bugs is to write a new test case
+which demonstrates the bug.  Then fix the bug, re-run the test suite,
+and check everything in.
+
+** You may find it useful to install the git-merge-changelog merge driver:
+
+  http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=blob;f=lib/git-merge-changelog.c
+
+When following the generic installation instructions there, keep in mind that
+your clone of Bison's git repository already contains appropriate
+.gitattributes files, and running Bison's bootstrap script will make the
+necessary changes to .git/config.
+
+
+* Hacking
+
+** Visible changes
+Which include serious bug fixes, must be mentioned in NEWS.
+
+** Translations
+Only user visible strings are to be translated: error messages, bits
+of the .output file etc.  This excludes impossible error messages
+(comparable to assert/abort), and all the --trace output which is
+meant for the maintainers only.
+
+
+* Working from the repository
+
+These notes intend to help people working on the checked-out sources.
+These requirements do not apply when building from a distribution tarball.
+
+** Requirements
+
+We've opted to keep only the highest-level sources in the repository.
+This eases our maintenance burden, (fewer merges etc.), but imposes more
+requirements on anyone wishing to build from the just-checked-out sources.
+For example, you have to use the latest stable versions of the maintainer
+tools we depend upon, including:
+
+- Automake <http://www.gnu.org/software/automake/>
+- Autoconf <http://www.gnu.org/software/autoconf/>
+- Flex <http://www.gnu.org/software/flex/>
+- Gettext <http://www.gnu.org/software/gettext/>
+- Gzip <http://www.gnu.org/software/gzip/>
+- Perl <http://www.cpan.org/>
+- Rsync <http://samba.anu.edu.au/rsync/>
+- Tar <http://www.gnu.org/software/tar/>
+
+Valgrind <http://valgrind.org/> is also highly recommended, if
+Valgrind supports your architecture.
+
+Bison is written using Bison grammars, so there are bootstrapping
+issues.  The bootstrap script attempts to discover when the C code
+generated from the grammars is out of date, and to bootstrap with an
+out-of-date version of the C code, but the process is not foolproof.
+Also, you may run into similar problems yourself if you modify Bison.
+
+Only building the initial full source tree will be a bit painful.
+Later, after synchronizing from the repository a plain `make' should
+be sufficient.
+
+** First checkout
+
+Obviously, if you are reading these notes, you did manage to check out
+this package from the repository.  For the record, you will find all the
+relevant information on:
+
+        http://savannah.gnu.org/git/?group=bison
+
+Bison uses Git submodules: subscriptions to other Git repositories.
+In particular it uses gnulib, the GNU portability library.  To ask Git
+to perform the first checkout of the submodules, run
+
+       $ git submodule update --init
+
+Git submodule support is weak before versions 1.6 and later, you
+should probably upgrade Git if your version is older.
+
+The next step is to get other files needed to build, which are
+extracted from other source packages:
+
+        $ ./bootstrap
+
+And there you are!  Just
+
+        $ ./configure
+        $ make
+        $ make check
+
+At this point, there should be no difference between your local copy,
+and the master copy:
+
+        $ git diff
+
+should output no difference.
+
+Enjoy!
+
+** Updating
+
+The use of submodules make things somewhat different because git does
+not support recursive operations: submodules must be taken care of
+explicitly by the user.
+
+*** Updating Bison
+
+If you pull a newer version of a branch, say via `git pull', you might
+import requests for updated submodules.  A simple `git diff' will
+reveal if the current version of the submodule (i.e., the actual
+contents of the gnulib directory) and the current request from the
+subscriber (i.e., the reference of the version of gnulib that the
+Bison reporitory requests) differ.  To upgrade the submodules (i.e.,
+to check out the version that is actually requested by the subscriber,
+run `git submodule update'.
+
+        $ git pull
+        $ git submodule update
+
+*** Updating a submodule
+To update a submodule, say gnulib, do as follows:
+
+Get the most recent version of the master branch from git.
+
+        $ cd gnulib
+        $ git fetch
+        $ git checkout -b master --track origin/master
+
+Make sure Bison can live with that version of gnulib.
+
+        $ cd ..
+        $ ./bootstrap
+        $ make distcheck
+
+Register your changes.
+
+        $ git checkin ...
+
+
+* Test suite
+
+** make check
+Use liberally.
+
+** Release checks
+Try to run the test suite with more severe conditions before a
+release:
+
+- Configure the package with --enable-gcc-warnings, so that one checks
+  that 1. Bison compiles cleanly, 2. the parsers it produces compile
+  cleanly too.
+
+- Build with -DGNULIB_POSIXCHECK.  It suggests gnulib modules that can
+  fix portability issues.
+
+- run `make maintainer-check' which:
+  - runs `valgrind -q bison' to run Bison under Valgrind.
+  - runs the parsers under Valgrind.
+  - runs the test suite with G++ as C compiler...
+
+- run `make maintainer-push-check', which runs `make maintainer-check'
+  while activating the push implementation and its pull interface wrappers
+  in many test cases that were originally written to exercise only the
+  pull implementation.  This makes certain the push implementation can
+  perform every task the pull implementation can.
+
+- run `make maintainer-xml-check', which runs `make maintainer-check'
+  while checking Bison's XML automaton report for every working grammar
+  passed to Bison in the test suite.  The check just diffs the output of
+  Bison's included XSLT style sheets with the output of --report=all and
+  --graph.
+
+- Change tests/atlocal/CFLAGS to add your preferred options.  For
+  instance, `-traditional' to check that the parsers are K&R.  Note
+  that it does not make sense for glr.c, which should be ANSI,
+  but currently is actually GNU C, nor for lalr1.cc.
+
+- Test with a very recent version of GCC for both C and C++.  Testing
+  with older versions that are still in use is nice too.
+
+
+* Release Procedure
+
+** Try to get the *.pot files to the Translation Project at least one
+week before a stable release, to give them time to translate them.
+Before generating the *.pot files, make sure that po/POTFILES.in and
+runtime-po/POTFILES.in list all files with translatable strings.
+This helps: grep -l '\<_(' *
+
+** Tests
+See above.
+
+** Update the foreign files
+Running `./bootstrap' in the top level should update them all for you.
+This covers PO files too.  Sometimes a PO file contains problems that
+causes it to be rejected by recent Gettext releases; please report
+these to the Translation Project.
+
+** Update README
+Make sure the information in README is current.  Most notably, make sure
+it recommends a version of GNU M4 that is compatible with the latest
+Bison sources.
+
+** Check copyright years.
+We update years in copyright statements throughout Bison once at the
+start of every year by running `make update-copyright'.  However, before
+a release, it's good to verify that it's actually been run.  Besides the
+copyright statement for each Bison file, check the copyright statements
+that the skeletons insert into generated parsers, and check all
+occurrences of PACKAGE_COPYRIGHT_YEAR in configure.ac.
+
+** Update NEWS
+The version number, *and* the date of the release (including for
+betas).
+
+** Update ChangeLog
+Should have an entry similar to `Version 1.49b.'.
+
+** Tag the release
+Before Bison will build with the right version number, you must tag the release
+in git.  Do this after all other changes.  The command is similar to:
+
+  git tag -a v2.3b
+
+The log message can be simply:
+
+  Bison 2.3b
+
+** Push
+Once `make distcheck' passes, push your changes and the tag.
+`git push' without arguments will not push the tag.
+
+** make alpha
+FIXME: `make alpha' is not maintained and is broken.  These
+instructions need to be replaced or removed.
+
+Running `make alpha' is absolutely perfect for beta releases: it makes
+the tarballs, the xdeltas, and prepares (in /tmp/) a proto
+announcement.  It is so neat, that that's what I use anyway for
+genuine releases, but adjusting things by hand (e.g., the urls in the
+announcement file, the ChangeLog which is not needed etc.).
+
+If it fails, you're on your own...
+
+It requires GNU Make.
+
+** Upload
+The generic GNU upload procedure is at:
+
+  http://www.gnu.org/prep/maintain/maintain.html#Automated-FTP-Uploads
+
+Follow the instructions there to register your information so you're permitted
+to upload.  Make sure your public key has been uploaded at least to
+keys.gnupg.net.  You can upload it with:
+
+  gpg --keyserver keys.gnupg.net --send-keys F125BDF3
+
+where F125BDF3 should be replaced with your key ID.
+
+Here's a brief reminder of how to roll the tarballs and upload them:
+
+*** make distcheck
+*** gpg -b bison-2.3b.tar.gz
+*** In a file named `bison-2.3b.tar.gz.directive', type:
+
+      version: 1.1
+      directory: bison
+      filename: bison-2.3b.tar.gz
+
+*** gpg --clearsign bison-2.3b.tar.gz.directive
+*** ftp ftp-upload.gnu.org # Log in as anonymous.
+*** cd /incoming/alpha # cd /incoming/ftp for full release.
+*** put bison-2.3b.tar.gz # This can take a while.
+*** put bison-2.3b.tar.gz.sig
+*** put bison-2.3b.tar.gz.directive.asc
+*** Repeat all these steps for bison-2.3b.tar.bz2.
+
+** Update Bison manual on www.gnu.org.
+
+*** You need a non-anonymous checkout of the web pages directory.
+
+  $ cvs -d address@hidden:/web/bison checkout bison
+
+*** Get familiar with the instructions for web page maintainers.
+http://www.gnu.org/server/standards/readme_index.html
+http://www.gnu.org/server/standards/README.software.html
+especially the note about symlinks.
+
+*** Build the web pages.
+Assuming BISON_CHECKOUT refers to a checkout of the Bison dir, and
+BISON_WWW_CHECKOUT refers to the web directory created above, do:
+
+  $ cd $BISON_CHECKOUT/doc
+  $ make stamp-vti
+  $ ../build-aux/gendocs.sh -o "$BISON_WWW_CHECKOUT/manual" \
+    bison "Bison - GNU parser generator"
+  $ cd $BISON_WWW_CHECKOUT
+
+Verify that the result looks sane.
+
+*** Commit the modified and the new files.
+
+*** Remove old files.
+Find the files which have not been overwritten (because they belonged to
+sections that have been removed or renamed):
+
+   $ cd manual/html_node
+   $ ls -lt
+
+Remove these files and commit their removal to CVS.  For each of these
+files, add a line to the file .symlinks.  This will ensure that
+hyperlinks to the removed files will redirect to the entire manual; this
+is better than a 404 error.
+
+There is a problem with 'index.html' being written twice (once for POSIX
+function 'index', once for the table of contents); you can ignore this
+issue.
+
+** Announce
+To generate a template announcement file:
+
+  make RELEASE_TYPE=alpha gpg_key_ID=F125BDF3 announcement
+
+where alpha can be replaced by beta or stable and F125BDF3 should be
+replaced with your key ID.
+
+Complete/fix the announcement file.  The generated list of recipients
+(address@hidden, address@hidden, address@hidden,
address@hidden, and address@hidden) is
+appropriate for a stable release or a ``serious beta''.  For any other
+release, drop at least address@hidden  For an example of how to fill
+out the rest of the template, search the mailing list archives for the
+most recent release announcement.
+
+For a stable release, send the same announcement on the comp.compilers
+newsgroup by sending email to address@hidden  Do not make any Cc as
+the moderator will throw away anything cross-posted or Cc'ed.  It really
+needs to be a separate message.
+
+** Bump the version number
+In configure.ac.  Run `make'.  So that developers don't accidentally add new
+items to the old NEWS entry, create a new empty NEWS entry something like:
+
+  Changes in version ?.? (????-??-??):
+
+Push these changes.
+
+
+-----
+
+Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010 Free
+Software Foundation, Inc.
+
+This file is part of GNU Bison.
+
+This program 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 3 of the License, or
+(at your option) any later version.
+
+This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.
diff --git a/bootstrap b/bootstrap
index 04dbfba..2b3f24b 100755
--- a/bootstrap
+++ b/bootstrap
@@ -1,9 +1,10 @@
 #! /bin/sh
+# Print a version string.
+scriptversion=2010-10-08.16; # UTC
 
 # Bootstrap this package from checked-out sources.
 
-# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
-# Software Foundation, Inc.
+# Copyright (C) 2003-2010 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -18,13 +19,20 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Written by Paul Eggert.
+# Originally written by Paul Eggert.  The canonical version of this
+# script is maintained as build-aux/bootstrap in gnulib, however, to
+# be useful to your project, you should place a copy of it under
+# version control in the top-level directory of your project.  The
+# intent is that all customization can be done with a bootstrap.conf
+# file also maintained in your version control; gnulib comes with a
+# template build-aux/bootstrap.conf to get you started.
+
+# Please report bugs or propose patches to address@hidden
 
 nl='
 '
 
 # Ensure file names are sorted consistently across platforms.
-# Also, ensure diagnostics are in English, e.g., "wget --help" below.
 LC_ALL=C
 export LC_ALL
 
@@ -45,7 +53,7 @@ Options:
                           sources reside.  Use this if you already
                           have gnulib sources on your machine, and
                           do not want to waste your bandwidth downloading
-                          them again.
+                          them again.  Defaults to \$GNULIB_SRCDIR.
  --copy                   Copy files instead of creating symbolic links.
  --force                  Attempt to bootstrap even if the sources seem
                           not to have been checked out.
@@ -72,6 +80,10 @@ gnulib_modules=
 # Any gnulib files needed that are not in modules.
 gnulib_files=
 
+# A function to be called to edit gnulib.mk right after it's created.
+# Override it via your own definition in bootstrap.conf.
+gnulib_mk_hook() { :; }
+
 # A function to be called after everything else in this script.
 # Override it via your own definition in bootstrap.conf.
 bootstrap_epilogue() { :; }
@@ -82,7 +94,8 @@ bootstrap_epilogue() { :; }
 # options because the latest/%s directory and the .po files within are
 # all symlinks.
 po_download_command_format=\
-"rsync -Lrtvz 'translationproject.org::tp/latest/%s/' '%s'"
+"rsync --delete --exclude '*.s1' -Lrtvz \
+ 'translationproject.org::tp/latest/%s/' '%s'"
 
 extract_package_name='
   /^AC_INIT(/{
@@ -135,7 +148,8 @@ XGETTEXT_OPTIONS='\\\
  --flag=error:3:c-format --flag=error_at_line:5:c-format\\\
 '
 
-# Package bug report address for gettext files
+# Package bug report address and copyright holder for gettext files
+COPYRIGHT_HOLDER='Free Software Foundation, Inc.'
 address@hidden
 
 # Files we don't want to import.
@@ -143,7 +157,7 @@ excluded_files=
 
 # File that should exist in the top directory of a checked out hierarchy,
 # but not in a distribution tarball.
-checkout_only_file=HACKING
+checkout_only_file=README-hacking
 
 # Whether to use copies instead of symlinks.
 copy=false
@@ -162,7 +176,6 @@ vc_ignore=auto
 # die otherwise.
 find_tool ()
 {
-  # Find sha1sum, named gsha1sum on MacPorts.
   find_tool_envvar=$1
   shift
   find_tool_names=$@
@@ -190,8 +203,8 @@ find_tool ()
   eval "export $find_tool_envvar"
 }
 
-# Find sha1sum, named gsha1sum on MacPorts.
-find_tool SHA1SUM sha1sum gsha1sum
+# Find sha1sum, named gsha1sum on MacPorts, and shasum on MacOS 10.6.
+find_tool SHA1SUM sha1sum gsha1sum shasum
 
 # Override the default configuration, if necessary.
 # Make sure that bootstrap.conf is sourced from the current directory
@@ -248,21 +261,6 @@ insert_sorted_if_absent() {
     || exit 1
 }
 
-# Adjust $PATTERN for $VC_IGNORE_FILE and insert it with
-# insert_sorted_if_absent.
-insert_vc_ignore() {
-  vc_ignore_file="$1"
-  case $vc_ignore_file in
-  *.gitignore)
-    # A .gitignore entry that does not start with `/' applies recursively to
-    # subdirectories, so prepend `/' to every .gitignore entry.
-    pattern=`echo "$2" | sed s,^,/,`;;
-  *)
-    pattern="$2";;
-  esac
-  insert_sorted_if_absent "$vc_ignore_file" "$pattern"
-}
-
 # Die if there is no AC_CONFIG_AUX_DIR($build_aux) line in configure.ac.
 found_aux_dir=no
 grep '^[        ]*AC_CONFIG_AUX_DIR(\['"$build_aux"'\])' configure.ac \
@@ -281,7 +279,7 @@ if test ! -d $build_aux; then
   mkdir $build_aux
   for dot_ig in x $vc_ignore; do
     test $dot_ig = x && continue
-    insert_vc_ignore $dot_ig $build_aux
+    insert_sorted_if_absent $dot_ig $build_aux
   done
 fi
 
@@ -352,8 +350,12 @@ check_versions() {
   ret=0
 
   while read app req_ver; do
+    # We only need libtoolize from the libtool package.
+    if test "$app" = libtool; then
+      app=libtoolize
+    fi
     # Honor $APP variables ($TAR, $AUTOCONF, etc.)
-    appvar=`echo $app | tr '[a-z]' '[A-Z]'`
+    appvar=`echo $app | tr '[a-z]-' '[A-Z]_'`
     test "$appvar" = TAR && appvar=AMTAR
     eval "app=\${$appvar-$app}"
     inst_ver=$(get_version $app)
@@ -376,16 +378,30 @@ check_versions() {
 print_versions() {
   echo "Program    Min_version"
   echo "----------------------"
-  printf "$buildreq"
+  printf %s "$buildreq"
   echo "----------------------"
   # can't depend on column -t
 }
 
+use_libtool=0
+# We'd like to use grep -E, to see if any of LT_INIT,
+# AC_PROG_LIBTOOL, AM_PROG_LIBTOOL is used in configure.ac,
+# but that's not portable enough (e.g., for Solaris).
+grep '^[        ]*A[CM]_PROG_LIBTOOL' configure.ac >/dev/null \
+  && use_libtool=1
+grep '^[        ]*LT_INIT' configure.ac >/dev/null \
+  && use_libtool=1
+if test $use_libtool = 1; then
+  find_tool LIBTOOLIZE glibtoolize libtoolize
+fi
+
 if ! printf "$buildreq" | check_versions; then
-  test -f README-prereq &&
-  echo "See README-prereq for notes on obtaining these prerequisite programs:" 
>&2
-  echo
-  print_versions
+  echo >&2
+  if test -f README-prereq; then
+    echo "See README-prereq for how to get the prerequisite programs" >&2
+  else
+    echo "Please install the prerequisite programs" >&2
+  fi
   exit 1
 fi
 
@@ -407,7 +423,7 @@ fi
 
 cleanup_gnulib() {
   status=$?
-  rm -fr gnulib
+  rm -fr "$gnulib_path"
   exit $status
 }
 
@@ -415,6 +431,9 @@ git_modules_config () {
   test -f .gitmodules && git config --file .gitmodules "$@"
 }
 
+gnulib_path=`git_modules_config submodule.gnulib.path`
+: ${gnulib_path=gnulib}
+
 # Get gnulib files.
 
 case ${GNULIB_SRCDIR--} in
@@ -424,30 +443,44 @@ case ${GNULIB_SRCDIR--} in
     git submodule init || exit $?
     git submodule update || exit $?
 
-  elif [ ! -d gnulib ]; then
+  elif [ ! -d "$gnulib_path" ]; then
     echo "$0: getting gnulib files..."
 
     trap cleanup_gnulib 1 2 13 15
 
-    git clone --help|grep depth > /dev/null && shallow='--depth 2' || shallow=
-    git clone $shallow git://git.sv.gnu.org/gnulib ||
+    shallow=
+    git clone -h 2>&1 | grep -- --depth > /dev/null && shallow='--depth 2'
+    git clone $shallow git://git.sv.gnu.org/gnulib "$gnulib_path" ||
       cleanup_gnulib
 
     trap - 1 2 13 15
   fi
-  GNULIB_SRCDIR=gnulib
+  GNULIB_SRCDIR=$gnulib_path
   ;;
 *)
-  # Redirect the gnulib submodule to the directory on the command line
-  # if possible.
+  # Use GNULIB_SRCDIR as a reference.
   if test -d "$GNULIB_SRCDIR"/.git && \
         git_modules_config submodule.gnulib.url >/dev/null; then
-    git submodule init
-    GNULIB_SRCDIR=`cd $GNULIB_SRCDIR && pwd`
-    git_modules_config --replace-all submodule.gnulib.url $GNULIB_SRCDIR
     echo "$0: getting gnulib files..."
-    git submodule update || exit $?
-    GNULIB_SRCDIR=gnulib
+    if git submodule -h|grep -- --reference > /dev/null; then
+      # Prefer the one-liner available in git 1.6.4 or newer.
+      git submodule update --init --reference "$GNULIB_SRCDIR" \
+        "$gnulib_path" || exit $?
+    else
+      # This fallback allows at least git 1.5.5.
+      if test -f "$gnulib_path"/gnulib-tool; then
+        # Since file already exists, assume submodule init already complete.
+        git submodule update || exit $?
+      else
+        # Older git can't clone into an empty directory.
+        rmdir "$gnulib_path" 2>/dev/null
+        git clone --reference "$GNULIB_SRCDIR" \
+          "$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \
+          && git submodule init && git submodule update \
+          || exit $?
+      fi
+    fi
+    GNULIB_SRCDIR=$gnulib_path
   fi
   ;;
 esac
@@ -465,22 +498,24 @@ download_po_files() {
   eval "$cmd"
 }
 
-# Download .po files to $po_dir/.reference and copy only the new
+# Mirror .po files to $po_dir/.reference and copy only the new
 # or modified ones into $po_dir.  Also update $po_dir/LINGUAS.
+# Note po files that exist locally only are left in $po_dir but will
+# not be included in LINGUAS and hence will not be distributed.
 update_po_files() {
   # Directory containing primary .po files.
   # Overwrite them only when we're sure a .po file is new.
   po_dir=$1
   domain=$2
 
-  # Download *.po files into this dir.
+  # Mirror *.po files into this dir.
   # Usually contains *.s1 checksum files.
   ref_po_dir="$po_dir/.reference"
 
   test -d $ref_po_dir || mkdir $ref_po_dir || return
   download_po_files $ref_po_dir $domain \
     && ls "$ref_po_dir"/*.po 2>/dev/null |
-      sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS"
+      sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" || return
 
   langs=`cd $ref_po_dir && echo *.po|sed 's/\.po//g'`
   test "$langs" = '*' && langs=x
@@ -510,27 +545,6 @@ case $SKIP_PO in
   fi;;
 esac
 
-check_dst_dir()
-{
-  dst=$1
-  # If the destination directory doesn't exist, create it.
-  # This is required at least for "lib/uniwidth/cjk.h".
-  dst_dir=`dirname "$dst"`
-  if ! test -d "$dst_dir"; then
-    mkdir -p "$dst_dir"
-
-    # If we've just created a directory like lib/uniwidth,
-    # tell version control system(s) it's ignorable.
-    # FIXME: for now, this does only one level
-    parent=`dirname "$dst_dir"`
-    for dot_ig in x $vc_ignore; do
-      test $dot_ig = x && continue
-      ig=$parent/$dot_ig
-      insert_vc_ignore $ig `echo "$dst_dir"|sed 's,.*/,,'`
-    done
-  fi
-}
-
 symlink_to_dir()
 {
   src=$1/$2
@@ -538,7 +552,22 @@ symlink_to_dir()
 
   test -f "$src" && {
 
-    check_dst_dir "$dst"
+    # If the destination directory doesn't exist, create it.
+    # This is required at least for "lib/uniwidth/cjk.h".
+    dst_dir=`dirname "$dst"`
+    if ! test -d "$dst_dir"; then
+      mkdir -p "$dst_dir"
+
+      # If we've just created a directory like lib/uniwidth,
+      # tell version control system(s) it's ignorable.
+      # FIXME: for now, this does only one level
+      parent=`dirname "$dst_dir"`
+      for dot_ig in x $vc_ignore; do
+        test $dot_ig = x && continue
+        ig=$parent/$dot_ig
+        insert_sorted_if_absent $ig `echo "$dst_dir"|sed 's,.*/,,'`
+      done
+    fi
 
     if $copy; then
       {
@@ -595,6 +624,11 @@ cp_mark_as_generated()
       *)                  c1=     ; c2=     ;;
     esac
 
+    # If the destination directory doesn't exist, create it.
+    # This is required at least for "lib/uniwidth/cjk.h".
+    dst_dir=`dirname "$cp_dst"`
+    test -d "$dst_dir" || mkdir -p "$dst_dir"
+
     if test -z "$c1"; then
       cmp -s "$cp_src" "$cp_dst" || {
         # Copy the file first to get proper permissions if it
@@ -606,7 +640,6 @@ cp_mark_as_generated()
         mv -f "$cp_dst-t" "$cp_dst"
       }
     else
-      check_dst_dir "$cp_dst"
       # Copy the file first to get proper permissions if it
       # doesn't already exist.  Then overwrite the copy.
       cp "$cp_src" "$cp_dst-t" &&
@@ -649,19 +682,23 @@ slurp() {
     for file in `ls -a $1/$dir`; do
       case $file in
       .|..) continue;;
-      .*) continue;; # FIXME: should all file names starting with "." be 
ignored?
+      # FIXME: should all file names starting with "." be ignored?
+      .*) continue;;
       esac
       test -d $1/$dir/$file && continue
       for excluded_file in $excluded_files; do
         test "$dir/$file" = "$excluded_file" && continue 2
       done
-      if test $file = Makefile.am; then
+      if test $file = Makefile.am && test "X$gnulib_mk" != XMakefile.am; then
         copied=$copied${sep}$gnulib_mk; sep=$nl
         remove_intl='/^[^#].*\/intl/s/^/#/;'"s!$bt_regex/!!g"
-        echo "$0: Copying $1/$dir/$file to $dir/$gnulib_mk ..."
-        rm -f $dir/$gnulib_mk
-        sed "$remove_intl" $1/$dir/$file >$dir/$gnulib_mk
-        etc/prefix-gnulib-mk $dir/$gnulib_mk
+        sed "$remove_intl" $1/$dir/$file |
+        cmp - $dir/$gnulib_mk > /dev/null || {
+          echo "$0: Copying $1/$dir/$file to $dir/$gnulib_mk ..." &&
+          rm -f $dir/$gnulib_mk &&
+          sed "$remove_intl" $1/$dir/$file >$dir/$gnulib_mk &&
+          gnulib_mk_hook $dir/$gnulib_mk
+        }
       elif { test "${2+set}" = set && test -r $2/$dir/$file; } ||
            version_controlled_file $dir $file; then
         echo "$0: $dir/$file overrides $1/$dir/$file"
@@ -672,7 +709,7 @@ slurp() {
           rm -f $dir/$file
           sed '
             /^AC_DEFUN(\[AM_INTL_SUBDIR],/,/^]/c\
-              AC_DEFUN([AM_INTL_SUBDIR], [
+              AC_DEFUN([AM_INTL_SUBDIR], [])
             /^AC_DEFUN(\[gt_INTL_SUBDIR_CORE],/,/^]/c\
               AC_DEFUN([gt_INTL_SUBDIR_CORE], [])
             $a\
@@ -688,18 +725,25 @@ slurp() {
       test $dot_ig = x && continue
       ig=$dir/$dot_ig
       if test -n "$copied"; then
-        insert_vc_ignore $ig "$copied"
+        insert_sorted_if_absent $ig "$copied"
         # If an ignored file name ends with .in.h, then also add
         # the name with just ".h".  Many gnulib headers are generated,
         # e.g., stdint.in.h -> stdint.h, dirent.in.h ->..., etc.
         # Likewise for .gperf -> .h, .y -> .c, and .sin -> .sed
-        f=`echo "$copied"|sed 
's/\.in\.h$/.h/;s/\.sin$/.sed/;s/\.y$/.c/;s/\.gperf$/.h/'`
-        insert_vc_ignore $ig "$f"
+        f=`echo "$copied" |
+          sed '
+            s/\.in\.h$/.h/
+            s/\.sin$/.sed/
+            s/\.y$/.c/
+            s/\.gperf$/.h/
+          '
+        `
+        insert_sorted_if_absent $ig "$f"
 
         # For files like sys_stat.in.h and sys_time.in.h, record as
         # ignorable the directory we might eventually create: sys/.
         f=`echo "$copied"|sed 's/sys_.*\.in\.h$/sys/'`
-        insert_vc_ignore $ig "$f"
+        insert_sorted_if_absent $ig "$f"
       fi
     done
   done
@@ -724,6 +768,12 @@ gnulib_tool_options="\
  --local-dir $local_gl_dir\
  $gnulib_tool_option_extras\
 "
+if test $use_libtool = 1; then
+  case "$gnulib_tool_options " in
+    *' --libtool '*) ;;
+    *) gnulib_tool_options="$gnulib_tool_options --libtool" ;;
+  esac
+fi
 echo "$0: $gnulib_tool $gnulib_tool_options --import ..."
 $gnulib_tool $gnulib_tool_options --import $gnulib_modules &&
 slurp $bt || exit
@@ -766,20 +816,12 @@ grep -E '^[        ]*AC_CONFIG_HEADERS?\>' configure.ac 
>/dev/null ||
 
 for command in \
   libtool \
-  "${ACLOCAL-aclocal} --force -I m4" \
+  "${ACLOCAL-aclocal} --force -I m4 $ACLOCAL_FLAGS" \
   "${AUTOCONF-autoconf} --force" \
   "${AUTOHEADER-autoheader} --force" \
   "${AUTOMAKE-automake} --add-missing --copy --force-missing"
 do
   if test "$command" = libtool; then
-    use_libtool=0
-    # We'd like to use grep -E, to see if any of LT_INIT,
-    # AC_PROG_LIBTOOL, AM_PROG_LIBTOOL is used in configure.ac,
-    # but that's not portable enough (e.g., for Solaris).
-    grep '^[    ]*A[CM]_PROG_LIBTOOL' configure.ac >/dev/null \
-      && use_libtool=1
-    grep '^[    ]*LT_INIT' configure.ac >/dev/null \
-      && use_libtool=1
     test $use_libtool = 0 \
       && continue
     command="${LIBTOOLIZE-libtoolize} -c -f"
@@ -805,13 +847,14 @@ if test $with_gettext = yes; then
   rm -f po/Makevars
   sed '
     /^EXTRA_LOCALE_CATEGORIES *=/s/=.*/= '"$EXTRA_LOCALE_CATEGORIES"'/
-    /^MSGID_BUGS_ADDRESS *=/s/=.*/= '"$MSGID_BUGS_ADDRESS"'/
+    /^COPYRIGHT_HOLDER *=/s/=.*/= '"$COPYRIGHT_HOLDER"'/
+    /^MSGID_BUGS_ADDRESS *=/s|=.*|= '"$MSGID_BUGS_ADDRESS"'|
     /^XGETTEXT_OPTIONS *=/{
       s/$/ \\/
       a\
           '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+}
     }
-  ' po/Makevars.template >po/Makevars
+  ' po/Makevars.template >po/Makevars || exit 1
 
   if test -d runtime-po; then
     # Similarly for runtime-po/Makevars, but not quite the same.
@@ -825,7 +868,7 @@ if test $with_gettext = yes; then
         a\
             '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+}
       }
-    ' <po/Makevars.template >runtime-po/Makevars
+    ' po/Makevars.template >runtime-po/Makevars || exit 1
 
     # Copy identical files from po to runtime-po.
     (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
@@ -836,6 +879,10 @@ bootstrap_epilogue
 
 echo "$0: done.  Now you can run './configure'."
 
-# Local Variables:
-# indent-tabs-mode: nil
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
 # End:
diff --git a/bootstrap.conf b/bootstrap.conf
index 4d9aaf8..5d67087 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -20,7 +20,7 @@ gnulib_modules='
   announce-gen argmatch assert config-h c-strcase configmake dirname
   error extensions fopen-safer gendocs getopt-gnu gettext
   git-version-gen hash inttypes javacomp-script javaexec-script
-  maintainer-makefile malloc mbswidth obstack pipe quote quotearg
+  maintainer-makefile malloc-gnu mbswidth obstack pipe quote quotearg
   realloc-posix stdbool stpcpy strerror strtoul strverscmp unistd
   unistd-safer unlocked-io update-copyright unsetenv verify warnings
   xalloc xalloc-die xstrndup
@@ -45,28 +45,25 @@ XGETTEXT_OPTIONS_RUNTIME=$XGETTEXT_OPTIONS'\\\
 # Gettext supplies these files, but we don't need them since
 # we don't have an intl subdirectory.
 excluded_files='
-    m4/codeset.m4
     m4/glibc2.m4
-    m4/glibc21.m4
     m4/intdiv0.m4
     m4/intl.m4
     m4/intldir.m4
     m4/intmax.m4
-    m4/inttypes_h.m4
     m4/lcmessage.m4
     m4/lock.m4
     m4/longdouble.m4
     m4/signed.m4
-    m4/size_max.m4
     m4/uintmax_t.m4
     m4/ulonglong.m4
     m4/visibility.m4
-    m4/xsize.m4
 '
 
-# In directories like lib/, m4/, and po/, generate both these files because we
-# still try to support CVS emulation.
-vc_ignore='.cvsignore .gitignore'
+# Massage lib/gnulib.mk before using it later in the bootstrapping process.
+gnulib_mk_hook()
+{
+  etc/prefix-gnulib-mk $1
+}
 
 bootstrap_epilogue()
 {
diff --git a/build-aux/.cvsignore b/build-aux/.cvsignore
deleted file mode 100644
index c059417..0000000
--- a/build-aux/.cvsignore
+++ /dev/null
@@ -1,22 +0,0 @@
-announce-gen
-arg-nonnull.h
-c++defs.h
-compile
-config.guess
-config.rpath
-config.sub
-depcomp
-gendocs.sh
-git-version-gen
-install-sh
-javacomp.sh.in
-javaexec.sh.in
-link-warning.h
-mdate-sh
-missing
-texinfo.tex
-update-copyright
-useless-if-before-free
-vc-list-files
-warn-on-use.h
-ylwrap
diff --git a/build-aux/.gitignore b/build-aux/.gitignore
index af52890..c059417 100644
--- a/build-aux/.gitignore
+++ b/build-aux/.gitignore
@@ -1,22 +1,22 @@
-/announce-gen
-/arg-nonnull.h
-/c++defs.h
-/compile
-/config.guess
-/config.rpath
-/config.sub
-/depcomp
-/gendocs.sh
-/git-version-gen
-/install-sh
-/javacomp.sh.in
-/javaexec.sh.in
-/link-warning.h
-/mdate-sh
-/missing
-/texinfo.tex
-/update-copyright
-/useless-if-before-free
-/vc-list-files
-/warn-on-use.h
-/ylwrap
+announce-gen
+arg-nonnull.h
+c++defs.h
+compile
+config.guess
+config.rpath
+config.sub
+depcomp
+gendocs.sh
+git-version-gen
+install-sh
+javacomp.sh.in
+javaexec.sh.in
+link-warning.h
+mdate-sh
+missing
+texinfo.tex
+update-copyright
+useless-if-before-free
+vc-list-files
+warn-on-use.h
+ylwrap
diff --git a/doc/.cvsignore b/doc/.cvsignore
deleted file mode 100644
index d016651..0000000
--- a/doc/.cvsignore
+++ /dev/null
@@ -1,25 +0,0 @@
-*.info*
-bison.1
-bison.aux
-bison.cp
-bison.cps
-bison.dvi
-bison.fn
-bison.help
-bison.html
-bison.ky
-bison.log
-bison.pdf
-bison.pg
-bison.ps
-bison.toc
-bison.tp
-bison.vr
-cross-options.texi
-gendocs_template
-refcard.dvi
-refcard.log
-refcard.ps
-stamp-vti
-version.texi
-yacc.1
diff --git a/doc/.gitignore b/doc/.gitignore
index edd2e36..2ff74a6 100644
--- a/doc/.gitignore
+++ b/doc/.gitignore
@@ -1,25 +1,27 @@
-/*.info*
-/bison.1
-/bison.aux
-/bison.cp
-/bison.cps
-/bison.dvi
-/bison.fn
-/bison.help
-/bison.html
-/bison.ky
-/bison.log
-/bison.pdf
-/bison.pg
-/bison.ps
-/bison.toc
-/bison.tp
-/bison.vr
-/cross-options.texi
-/gendocs_template
-/refcard.dvi
-/refcard.log
-/refcard.ps
-/stamp-vti
-/version.texi
-/yacc.1
+*.info*
+*~
+.dirstamp
+bison.1
+bison.aux
+bison.cp
+bison.cps
+bison.dvi
+bison.fn
+bison.help
+bison.html
+bison.ky
+bison.log
+bison.pdf
+bison.pg
+bison.ps
+bison.toc
+bison.tp
+bison.vr
+cross-options.texi
+gendocs_template
+refcard.dvi
+refcard.log
+refcard.ps
+stamp-vti
+version.texi
+yacc.1
diff --git a/etc/.cvsignore b/etc/.cvsignore
deleted file mode 100644
index 48a05d9..0000000
--- a/etc/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bench.pl
diff --git a/examples/calc++/.cvsignore b/examples/calc++/.cvsignore
deleted file mode 100644
index cacb766..0000000
--- a/examples/calc++/.cvsignore
+++ /dev/null
@@ -1,11 +0,0 @@
-*.cc
-*.hh
-*.ll
-*.output
-*.stamp
-*.tmp
-*.yy
-.deps
-Makefile
-Makefile.in
-calc++
diff --git a/lib/.cvsignore b/lib/.cvsignore
deleted file mode 100644
index 9997462..0000000
--- a/lib/.cvsignore
+++ /dev/null
@@ -1,219 +0,0 @@
-.deps
-Makefile
-Makefile.in
-alloca.h
-alloca.in.h
-argmatch.c
-argmatch.h
-asnprintf.c
-basename-lgpl.c
-basename.c
-binary-io.h
-bitrotate.h
-c-ctype.c
-c-ctype.h
-c-strcase.h
-c-strcasecmp.c
-c-strncasecmp.c
-charset.alias
-cloexec.c
-cloexec.h
-config.charset
-config.h
-config.hin
-configmake.h
-dirname-lgpl.c
-dirname.c
-dirname.h
-dup-safer-flag.c
-dup-safer.c
-dup2.c
-errno.h
-errno.in.h
-error.c
-error.h
-exitfail.c
-exitfail.h
-fatal-signal.c
-fatal-signal.h
-fcntl.c
-fcntl.h
-fcntl.in.h
-fd-safer-flag.c
-fd-safer.c
-float+.h
-float.h
-float.in.h
-fopen-safer.c
-fopen.c
-fprintf.c
-fpucw.h
-frexp.c
-frexpl.c
-fseterr.c
-fseterr.h
-getdtablesize.c
-getopt.c
-getopt.h
-getopt.in.h
-getopt1.c
-getopt_.h
-getopt_int.h
-getpagesize.c
-gettext.h
-gnulib.mk
-hash.c
-hash.h
-intprops.h
-inttypes.h
-inttypes.in.h
-inttypes_.h
-isnan.c
-isnand-nolibm.h
-isnand.c
-isnanf-nolibm.h
-isnanf.c
-isnanl-nolibm.h
-isnanl.c
-localcharset.c
-localcharset.h
-malloc.c
-math.h
-math.in.h
-mbrtowc.c
-mbsinit.c
-mbswidth.c
-mbswidth.h
-memchr.c
-memchr.valgrind
-obstack.c
-obstack.h
-open.c
-pipe-safer.c
-pipe.c
-pipe.h
-pipe2-safer.c
-pipe2.c
-printf-args.c
-printf-args.h
-printf-frexp.c
-printf-frexp.h
-printf-frexpl.c
-printf-frexpl.h
-printf-parse.c
-printf-parse.h
-printf.c
-quote.c
-quote.h
-quotearg.c
-quotearg.h
-rawmemchr.c
-rawmemchr.valgrind
-realloc.c
-ref-add.sed
-ref-add.sin
-ref-del.sed
-ref-del.sin
-sched.h
-sched.in.h
-sig-handler.h
-sigaction.c
-signal.h
-signal.in.h
-signbitd.c
-signbitf.c
-signbitl.c
-sigprocmask.c
-size_max.h
-snprintf.c
-spawn.h
-spawn.in.h
-spawn_faction_addclose.c
-spawn_faction_adddup2.c
-spawn_faction_addopen.c
-spawn_faction_destroy.c
-spawn_faction_init.c
-spawn_int.h
-spawnattr_destroy.c
-spawnattr_init.c
-spawnattr_setflags.c
-spawnattr_setsigmask.c
-spawni.c
-spawnp.c
-sprintf.c
-stamp-h1
-stat.c
-stdbool.h
-stdbool.in.h
-stdbool_.h
-stddef.h
-stddef.in.h
-stdint.h
-stdint.in.h
-stdint_.h
-stdio--.h
-stdio-impl.h
-stdio-safer.h
-stdio-write.c
-stdio.h
-stdio.in.h
-stdlib.h
-stdlib.in.h
-stdlib_.h
-stpcpy.c
-strchrnul.c
-strchrnul.valgrind
-streq.h
-strerror.c
-string.h
-string.in.h
-string_.h
-stripslash.c
-strndup.c
-strnlen.c
-strtol.c
-strtoul.c
-strverscmp.c
-strverscmp.h
-sys
-sys_stat.h
-sys_stat.in.h
-sys_wait.h
-sys_wait.in.h
-time.h
-time.in.h
-unistd--.h
-unistd-safer.h
-unistd.h
-unistd.in.h
-unistd_.h
-unitypes.h
-unitypes.in.h
-uniwidth
-uniwidth.h
-uniwidth.in.h
-unlocked-io.h
-unsetenv.c
-vasnprintf.c
-vasnprintf.h
-verify.h
-vfprintf.c
-vsnprintf.c
-vsprintf.c
-w32spawn.h
-wait-process.c
-wait-process.h
-wchar.h
-wchar.in.h
-wchar_.h
-wctype.h
-wctype.in.h
-wctype_.h
-wcwidth.c
-wcwidth.h
-xalloc-die.c
-xalloc.h
-xmalloc.c
-xsize.h
-xstrndup.c
-xstrndup.h
diff --git a/lib/.gitignore b/lib/.gitignore
index e88601a..03887d9 100644
--- a/lib/.gitignore
+++ b/lib/.gitignore
@@ -1,222 +1,216 @@
-/*.a
-/*.o
-/*~
-/.deps
-/Makefile
-/Makefile.in
-/alloca.h
-/alloca.in.h
-/argmatch.c
-/argmatch.h
-/asnprintf.c
-/basename-lgpl.c
-/basename.c
-/binary-io.h
-/bitrotate.h
-/c-ctype.c
-/c-ctype.h
-/c-strcase.h
-/c-strcasecmp.c
-/c-strncasecmp.c
-/charset.alias
-/cloexec.c
-/cloexec.h
-/config.charset
-/config.h
-/config.hin
-/configmake.h
-/dirname-lgpl.c
-/dirname.c
-/dirname.h
-/dup-safer-flag.c
-/dup-safer.c
-/dup2.c
-/errno.h
-/errno.in.h
-/error.c
-/error.h
-/exitfail.c
-/exitfail.h
-/fatal-signal.c
-/fatal-signal.h
-/fcntl.c
-/fcntl.h
-/fcntl.in.h
-/fd-safer-flag.c
-/fd-safer.c
-/float+.h
-/float.h
-/float.in.h
-/fopen-safer.c
-/fopen.c
-/fprintf.c
-/fpucw.h
-/frexp.c
-/frexpl.c
-/fseterr.c
-/fseterr.h
-/getdtablesize.c
-/getopt.c
-/getopt.h
-/getopt.in.h
-/getopt1.c
-/getopt_.h
-/getopt_int.h
-/getpagesize.c
-/gettext.h
-/gnulib.mk
-/hash.c
-/hash.h
-/intprops.h
-/inttypes.h
-/inttypes.in.h
-/inttypes_.h
-/isnan.c
-/isnand-nolibm.h
-/isnand.c
-/isnanf-nolibm.h
-/isnanf.c
-/isnanl-nolibm.h
-/isnanl.c
-/localcharset.c
-/localcharset.h
-/malloc.c
-/math.h
-/math.in.h
-/mbrtowc.c
-/mbsinit.c
-/mbswidth.c
-/mbswidth.h
-/memchr.c
-/memchr.valgrind
-/obstack.c
-/obstack.h
-/open.c
-/pipe-safer.c
-/pipe.c
-/pipe.h
-/pipe2-safer.c
-/pipe2.c
-/printf-args.c
-/printf-args.h
-/printf-frexp.c
-/printf-frexp.h
-/printf-frexpl.c
-/printf-frexpl.h
-/printf-parse.c
-/printf-parse.h
-/printf.c
-/quote.c
-/quote.h
-/quotearg.c
-/quotearg.h
-/rawmemchr.c
-/rawmemchr.valgrind
-/realloc.c
-/ref-add.sed
-/ref-add.sin
-/ref-del.sed
-/ref-del.sin
-/sched.h
-/sched.in.h
-/sig-handler.h
-/sigaction.c
-/signal.h
-/signal.in.h
-/signbitd.c
-/signbitf.c
-/signbitl.c
-/sigprocmask.c
-/size_max.h
-/snprintf.c
-/spawn.h
-/spawn.in.h
-/spawn_faction_addclose.c
-/spawn_faction_adddup2.c
-/spawn_faction_addopen.c
-/spawn_faction_destroy.c
-/spawn_faction_init.c
-/spawn_int.h
-/spawnattr_destroy.c
-/spawnattr_init.c
-/spawnattr_setflags.c
-/spawnattr_setsigmask.c
-/spawni.c
-/spawnp.c
-/sprintf.c
-/stamp-h1
-/stat.c
-/stdbool.h
-/stdbool.in.h
-/stdbool_.h
-/stddef.h
-/stddef.in.h
-/stdint.h
-/stdint.in.h
-/stdint_.h
-/stdio--.h
-/stdio-impl.h
-/stdio-safer.h
-/stdio-write.c
-/stdio.h
-/stdio.in.h
-/stdlib.h
-/stdlib.in.h
-/stdlib_.h
-/stpcpy.c
-/strchrnul.c
-/strchrnul.valgrind
-/streq.h
-/strerror.c
-/string.h
-/string.in.h
-/string_.h
-/stripslash.c
-/strndup.c
-/strnlen.c
-/strtol.c
-/strtoul.c
-/strverscmp.c
-/strverscmp.h
-/sys
-/sys_stat.h
-/sys_stat.in.h
-/sys_wait.h
-/sys_wait.in.h
-/time.h
-/time.in.h
-/unistd--.h
-/unistd-safer.h
-/unistd.h
-/unistd.in.h
-/unistd_.h
-/unitypes.h
-/unitypes.in.h
-/uniwidth
-/uniwidth.h
-/uniwidth.in.h
-/unlocked-io.h
-/unsetenv.c
-/vasnprintf.c
-/vasnprintf.h
-/verify.h
-/vfprintf.c
-/vsnprintf.c
-/vsprintf.c
-/w32spawn.h
-/wait-process.c
-/wait-process.h
-/wchar.h
-/wchar.in.h
-/wchar_.h
-/wctype.h
-/wctype.in.h
-/wctype_.h
-/wcwidth.c
-/wcwidth.h
-/xalloc-die.c
-/xalloc.h
-/xmalloc.c
-/xsize.h
-/xstrndup.c
-/xstrndup.h
+*.a
+*.bak
+*.o
+*~
+.deps
+.dirstamp
+Makefile
+Makefile.in
+alloca.h
+alloca.in.h
+arg-nonnull.h
+argmatch.c
+argmatch.h
+asnprintf.c
+basename-lgpl.c
+basename.c
+binary-io.h
+bitrotate.h
+c++defs.h
+c-ctype.c
+c-ctype.h
+c-strcase.h
+c-strcasecmp.c
+c-strncasecmp.c
+charset.alias
+cloexec.c
+cloexec.h
+config.charset
+config.h
+config.hin
+configmake.h
+dirname-lgpl.c
+dirname.c
+dirname.h
+dup-safer-flag.c
+dup-safer.c
+dup2.c
+errno.h
+errno.in.h
+error.c
+error.h
+exitfail.c
+exitfail.h
+fatal-signal.c
+fatal-signal.h
+fcntl.c
+fcntl.h
+fcntl.in.h
+fd-safer-flag.c
+fd-safer.c
+float+.h
+float.h
+float.in.h
+fopen-safer.c
+fopen.c
+fprintf.c
+fpucw.h
+frexp.c
+frexpl.c
+fseterr.c
+fseterr.h
+getdtablesize.c
+getopt.c
+getopt.h
+getopt.in.h
+getopt1.c
+getopt_int.h
+gettext.h
+gnulib.mk
+hash.c
+hash.h
+intprops.h
+inttypes.h
+inttypes.in.h
+isnan.c
+isnand-nolibm.h
+isnand.c
+isnanf-nolibm.h
+isnanf.c
+isnanl-nolibm.h
+isnanl.c
+localcharset.c
+localcharset.h
+malloc.c
+math.h
+math.in.h
+mbrtowc.c
+mbsinit.c
+mbswidth.c
+mbswidth.h
+memchr.c
+memchr.valgrind
+obstack.c
+obstack.h
+open.c
+pipe-safer.c
+pipe.c
+pipe.h
+pipe2-safer.c
+pipe2.c
+printf-args.c
+printf-args.h
+printf-frexp.c
+printf-frexp.h
+printf-frexpl.c
+printf-frexpl.h
+printf-parse.c
+printf-parse.h
+printf.c
+quote.c
+quote.h
+quotearg.c
+quotearg.h
+rawmemchr.c
+rawmemchr.valgrind
+realloc.c
+ref-add.sed
+ref-add.sin
+ref-del.sed
+ref-del.sin
+sched.h
+sched.in.h
+sig-handler.h
+sigaction.c
+signal.h
+signal.in.h
+signbitd.c
+signbitf.c
+signbitl.c
+sigprocmask.c
+size_max.h
+snprintf.c
+spawn.h
+spawn.in.h
+spawn_faction_addclose.c
+spawn_faction_adddup2.c
+spawn_faction_addopen.c
+spawn_faction_destroy.c
+spawn_faction_init.c
+spawn_int.h
+spawnattr_destroy.c
+spawnattr_init.c
+spawnattr_setflags.c
+spawnattr_setsigmask.c
+spawni.c
+spawnp.c
+sprintf.c
+stamp-h1
+stat.c
+stdbool.h
+stdbool.in.h
+stddef.h
+stddef.in.h
+stdint.h
+stdint.in.h
+stdio--.h
+stdio-impl.h
+stdio-safer.h
+stdio-write.c
+stdio.h
+stdio.in.h
+stdlib.h
+stdlib.in.h
+stpcpy.c
+strchrnul.c
+strchrnul.valgrind
+streq.h
+strerror.c
+string.h
+string.in.h
+stripslash.c
+strndup.c
+strnlen.c
+strtol.c
+strtoul.c
+strverscmp.c
+sys
+sys_stat.h
+sys_stat.in.h
+sys_wait.h
+sys_wait.in.h
+time.h
+time.in.h
+unistd--.h
+unistd-safer.h
+unistd.h
+unistd.in.h
+unitypes.h
+unitypes.in.h
+uniwidth
+uniwidth.h
+uniwidth.in.h
+unlocked-io.h
+unsetenv.c
+vasnprintf.c
+vasnprintf.h
+verify.h
+vfprintf.c
+vsnprintf.c
+vsprintf.c
+w32spawn.h
+wait-process.c
+wait-process.h
+waitpid.c
+warn-on-use.h
+wchar.h
+wchar.in.h
+wctype.h
+wctype.in.h
+wcwidth.c
+xalloc-die.c
+xalloc.h
+xmalloc.c
+xsize.h
+xstrndup.c
+xstrndup.h
diff --git a/m4/.cvsignore b/m4/.cvsignore
deleted file mode 100644
index 7c7064f..0000000
--- a/m4/.cvsignore
+++ /dev/null
@@ -1,143 +0,0 @@
-00gnulib.m4
-absolute-header.m4
-alloca.m4
-argmatch.m4
-asm-underscore.m4
-assert.m4
-cloexec.m4
-config-h.m4
-dirname.m4
-dos.m4
-double-slash-root.m4
-dup2.m4
-environ.m4
-errno_h.m4
-error.m4
-exitfail.m4
-exponentd.m4
-exponentf.m4
-exponentl.m4
-extensions.m4
-fatal-signal.m4
-fcntl-o.m4
-fcntl.m4
-fcntl_h.m4
-float_h.m4
-fopen.m4
-fpieee.m4
-fprintf-posix.m4
-frexp.m4
-frexpl.m4
-getdtablesize.m4
-getopt.m4
-getpagesize.m4
-gettext.m4
-gnulib-cache.m4
-gnulib-common.m4
-gnulib-comp.m4
-gnulib-tool.m4
-hash.m4
-iconv.m4
-include_next.m4
-inline.m4
-intlmacosx.m4
-intmax_t.m4
-inttypes-h.m4
-inttypes-pri.m4
-inttypes.m4
-isnand.m4
-isnanf.m4
-isnanl.m4
-javacomp.m4
-javaexec.m4
-ldexpl.m4
-lib-ld.m4
-lib-link.m4
-lib-prefix.m4
-libunistring-base.m4
-localcharset.m4
-locale-fr.m4
-locale-ja.m4
-locale-zh.m4
-longlong.m4
-malloc.m4
-math_h.m4
-mbrtowc.m4
-mbsinit.m4
-mbstate_t.m4
-mbswidth.m4
-memchr.m4
-mmap-anon.m4
-mode_t.m4
-multiarch.m4
-nls.m4
-nocrash.m4
-open.m4
-pipe.m4
-pipe2.m4
-po.m4
-posix_spawn.m4
-printf-frexp.m4
-printf-frexpl.m4
-printf-posix-rpl.m4
-printf-posix.m4
-printf.m4
-progtest.m4
-quote.m4
-quotearg.m4
-rawmemchr.m4
-realloc.m4
-sched_h.m4
-setenv.m4
-sig_atomic_t.m4
-sigaction.m4
-signal_h.m4
-signalblocking.m4
-signbit.m4
-snprintf-posix.m4
-snprintf.m4
-spawn_h.m4
-sprintf-posix.m4
-stat.m4
-stdbool.m4
-stddef_h.m4
-stdint.m4
-stdint_h.m4
-stdio-safer.m4
-stdio_h.m4
-stdlib_h.m4
-stpcpy.m4
-strchrnul.m4
-strerror.m4
-string_h.m4
-strndup.m4
-strnlen.m4
-strtol.m4
-strtoul.m4
-strverscmp.m4
-sys_stat_h.m4
-sys_wait_h.m4
-threadlib.m4
-time_h.m4
-unistd-safer.m4
-unistd_h.m4
-unlocked-io.m4
-vasnprintf-posix.m4
-vasnprintf.m4
-vfprintf-posix.m4
-vsnprintf-posix.m4
-vsnprintf.m4
-vsprintf-posix.m4
-wait-process.m4
-warn-on-use.m4
-warning.m4
-warnings.m4
-wchar.m4
-wchar_h.m4
-wchar_t.m4
-wctype.m4
-wctype_h.m4
-wcwidth.m4
-wint_t.m4
-xalloc.m4
-xstrndup.m4
diff --git a/m4/.gitignore b/m4/.gitignore
index 80ea11e..dfbe31b 100644
--- a/m4/.gitignore
+++ b/m4/.gitignore
@@ -1,143 +1,141 @@
-/00gnulib.m4
-/absolute-header.m4
-/alloca.m4
-/argmatch.m4
-/asm-underscore.m4
-/assert.m4
-/cloexec.m4
-/config-h.m4
-/dirname.m4
-/dos.m4
-/double-slash-root.m4
-/dup2.m4
-/environ.m4
-/errno_h.m4
-/error.m4
-/exitfail.m4
-/exponentd.m4
-/exponentf.m4
-/exponentl.m4
-/extensions.m4
-/fatal-signal.m4
-/fcntl-o.m4
-/fcntl.m4
-/fcntl_h.m4
-/float_h.m4
-/fopen.m4
-/fpieee.m4
-/fprintf-posix.m4
-/frexp.m4
-/frexpl.m4
-/getdtablesize.m4
-/getopt.m4
-/getpagesize.m4
-/gettext.m4
-/gnulib-cache.m4
-/gnulib-common.m4
-/gnulib-comp.m4
-/gnulib-tool.m4
-/hash.m4
-/iconv.m4
-/include_next.m4
-/inline.m4
-/intlmacosx.m4
-/intmax_t.m4
-/inttypes-h.m4
-/inttypes-pri.m4
-/inttypes.m4
-/isnand.m4
-/isnanf.m4
-/isnanl.m4
-/javacomp.m4
-/javaexec.m4
-/ldexpl.m4
-/lib-ld.m4
-/lib-link.m4
-/lib-prefix.m4
-/libunistring-base.m4
-/localcharset.m4
-/locale-fr.m4
-/locale-ja.m4
-/locale-zh.m4
-/longlong.m4
-/malloc.m4
-/math_h.m4
-/mbrtowc.m4
-/mbsinit.m4
-/mbstate_t.m4
-/mbswidth.m4
-/memchr.m4
-/mmap-anon.m4
-/mode_t.m4
-/multiarch.m4
-/nls.m4
-/nocrash.m4
-/open.m4
-/pipe.m4
-/pipe2.m4
-/po.m4
-/posix_spawn.m4
-/printf-frexp.m4
-/printf-frexpl.m4
-/printf-posix-rpl.m4
-/printf-posix.m4
-/printf.m4
-/progtest.m4
-/quote.m4
-/quotearg.m4
-/rawmemchr.m4
-/realloc.m4
-/sched_h.m4
-/setenv.m4
-/sig_atomic_t.m4
-/sigaction.m4
-/signal_h.m4
-/signalblocking.m4
-/signbit.m4
-/snprintf-posix.m4
-/snprintf.m4
-/spawn_h.m4
-/sprintf-posix.m4
-/stat.m4
-/stdbool.m4
-/stddef_h.m4
-/stdint.m4
-/stdint_h.m4
-/stdio-safer.m4
-/stdio_h.m4
-/stdlib_h.m4
-/stpcpy.m4
-/strchrnul.m4
-/strerror.m4
-/string_h.m4
-/strndup.m4
-/strnlen.m4
-/strtol.m4
-/strtoul.m4
-/strverscmp.m4
-/sys_stat_h.m4
-/sys_wait_h.m4
-/threadlib.m4
-/time_h.m4
-/unistd-safer.m4
-/unistd_h.m4
-/unlocked-io.m4
-/vasnprintf-posix.m4
-/vasnprintf.m4
-/vfprintf-posix.m4
-/vsnprintf-posix.m4
-/vsnprintf.m4
-/vsprintf-posix.m4
-/wait-process.m4
-/warn-on-use.m4
-/warning.m4
-/warnings.m4
-/wchar.m4
-/wchar_h.m4
-/wchar_t.m4
-/wctype.m4
-/wctype_h.m4
-/wcwidth.m4
-/wint_t.m4
-/xalloc.m4
-/xstrndup.m4
+00gnulib.m4
+alloca.m4
+argmatch.m4
+asm-underscore.m4
+assert.m4
+cloexec.m4
+codeset.m4
+config-h.m4
+dirname.m4
+dos.m4
+double-slash-root.m4
+dup2.m4
+environ.m4
+errno_h.m4
+error.m4
+exponentd.m4
+exponentf.m4
+exponentl.m4
+extensions.m4
+fatal-signal.m4
+fcntl-o.m4
+fcntl.m4
+fcntl_h.m4
+float_h.m4
+fopen.m4
+fpieee.m4
+fprintf-posix.m4
+frexp.m4
+frexpl.m4
+getdtablesize.m4
+getopt.m4
+gettext.m4
+glibc21.m4
+gnulib-cache.m4
+gnulib-common.m4
+gnulib-comp.m4
+gnulib-tool.m4
+hash.m4
+iconv.m4
+include_next.m4
+inline.m4
+intlmacosx.m4
+intmax_t.m4
+inttypes-pri.m4
+inttypes.m4
+inttypes_h.m4
+isnand.m4
+isnanf.m4
+isnanl.m4
+javacomp.m4
+javaexec.m4
+ldexpl.m4
+lib-ld.m4
+lib-link.m4
+lib-prefix.m4
+libunistring-base.m4
+localcharset.m4
+locale-fr.m4
+locale-ja.m4
+locale-zh.m4
+longlong.m4
+malloc.m4
+math_h.m4
+mbrtowc.m4
+mbsinit.m4
+mbstate_t.m4
+mbswidth.m4
+memchr.m4
+mmap-anon.m4
+mode_t.m4
+multiarch.m4
+nls.m4
+nocrash.m4
+open.m4
+pipe.m4
+pipe2.m4
+po.m4
+posix_spawn.m4
+printf-frexp.m4
+printf-frexpl.m4
+printf-posix-rpl.m4
+printf-posix.m4
+printf.m4
+progtest.m4
+quote.m4
+quotearg.m4
+rawmemchr.m4
+realloc.m4
+sched_h.m4
+setenv.m4
+sig_atomic_t.m4
+sigaction.m4
+signal_h.m4
+signalblocking.m4
+signbit.m4
+size_max.m4
+snprintf-posix.m4
+snprintf.m4
+spawn_h.m4
+sprintf-posix.m4
+stat.m4
+stdbool.m4
+stddef_h.m4
+stdint.m4
+stdint_h.m4
+stdio-safer.m4
+stdio_h.m4
+stdlib_h.m4
+stpcpy.m4
+strchrnul.m4
+strerror.m4
+string_h.m4
+strndup.m4
+strnlen.m4
+strtol.m4
+strtoul.m4
+strverscmp.m4
+sys_stat_h.m4
+sys_wait_h.m4
+threadlib.m4
+time_h.m4
+unistd-safer.m4
+unistd_h.m4
+unlocked-io.m4
+vasnprintf.m4
+vfprintf-posix.m4
+vsnprintf-posix.m4
+vsnprintf.m4
+vsprintf-posix.m4
+wait-process.m4
+waitpid.m4
+warn-on-use.m4
+warnings.m4
+wchar_h.m4
+wchar_t.m4
+wctype_h.m4
+wcwidth.m4
+wint_t.m4
+xalloc.m4
+xsize.m4
+xstrndup.m4
diff --git a/po/.cvsignore b/po/.cvsignore
deleted file mode 100644
index db44d74..0000000
--- a/po/.cvsignore
+++ /dev/null
@@ -1,22 +0,0 @@
-*.gmo
-*.po
-*.po~
-.reference
-LINGUAS
-Makefile
-Makefile.in
-Makefile.in.in
-Makevars
-Makevars.template
-POTFILES
-Rules-quot
-bison.pot
-boldquot.sed
address@hidden
address@hidden
-insert-header.sed
-insert-header.sin
-quot.sed
-remove-potcdate.sed
-remove-potcdate.sin
-stamp-po
diff --git a/po/.gitignore b/po/.gitignore
index 79594c0..db44d74 100644
--- a/po/.gitignore
+++ b/po/.gitignore
@@ -1,22 +1,22 @@
-/*.gmo
-/*.po
-/*.po~
-/.reference
-/LINGUAS
-/Makefile
-/Makefile.in
-/Makefile.in.in
-/Makevars
-/Makevars.template
-/POTFILES
-/Rules-quot
-/bison.pot
-/boldquot.sed
-/address@hidden
-/address@hidden
-/insert-header.sed
-/insert-header.sin
-/quot.sed
-/remove-potcdate.sed
-/remove-potcdate.sin
-/stamp-po
+*.gmo
+*.po
+*.po~
+.reference
+LINGUAS
+Makefile
+Makefile.in
+Makefile.in.in
+Makevars
+Makevars.template
+POTFILES
+Rules-quot
+bison.pot
+boldquot.sed
address@hidden
address@hidden
+insert-header.sed
+insert-header.sin
+quot.sed
+remove-potcdate.sed
+remove-potcdate.sin
+stamp-po
diff --git a/runtime-po/.cvsignore b/runtime-po/.cvsignore
deleted file mode 100644
index db53cde..0000000
--- a/runtime-po/.cvsignore
+++ /dev/null
@@ -1,22 +0,0 @@
-*.gmo
-*.po
-*.po~
-.reference
-LINGUAS
-Makefile
-Makefile.in
-Makefile.in.in
-Makevars
-Makevars.template
-POTFILES
-Rules-quot
-bison-runtime.pot
-boldquot.sed
address@hidden
address@hidden
-insert-header.sed
-insert-header.sin
-quot.sed
-remove-potcdate.sed
-remove-potcdate.sin
-stamp-po
diff --git a/runtime-po/.gitignore b/runtime-po/.gitignore
index 44ff896..db53cde 100644
--- a/runtime-po/.gitignore
+++ b/runtime-po/.gitignore
@@ -1,22 +1,22 @@
-/*.gmo
-/*.po
-/*.po~
-/.reference
-/LINGUAS
-/Makefile
-/Makefile.in
-/Makefile.in.in
-/Makevars
-/Makevars.template
-/POTFILES
-/Rules-quot
-/bison-runtime.pot
-/boldquot.sed
-/address@hidden
-/address@hidden
-/insert-header.sed
-/insert-header.sin
-/quot.sed
-/remove-potcdate.sed
-/remove-potcdate.sin
-/stamp-po
+*.gmo
+*.po
+*.po~
+.reference
+LINGUAS
+Makefile
+Makefile.in
+Makefile.in.in
+Makevars
+Makevars.template
+POTFILES
+Rules-quot
+bison-runtime.pot
+boldquot.sed
address@hidden
address@hidden
+insert-header.sed
+insert-header.sin
+quot.sed
+remove-potcdate.sed
+remove-potcdate.sin
+stamp-po
diff --git a/src/.cvsignore b/src/.cvsignore
deleted file mode 100644
index 2b2fc1c..0000000
--- a/src/.cvsignore
+++ /dev/null
@@ -1,9 +0,0 @@
-*.flc
-*.log
-*.output
-.deps
-bison
-scan-code.c
-scan-gram.c
-scan-skel.c
-yacc
diff --git a/src/.gitignore b/src/.gitignore
index 8ebada1..3bd7cca 100644
--- a/src/.gitignore
+++ b/src/.gitignore
@@ -1,11 +1,12 @@
-/*.flc
-/*.log
-/*.o
-/*.output
-/.deps
-/bison
-/bison.exe
-/scan-code.c
-/scan-gram.c
-/scan-skel.c
-/yacc
+*.flc
+*.log
+*.o
+*.output
+.deps
+.dirstamp
+bison
+bison.exe
+scan-code.c
+scan-gram.c
+scan-skel.c
+yacc
diff --git a/tests/.cvsignore b/tests/.cvsignore
deleted file mode 100644
index 27f49b5..0000000
--- a/tests/.cvsignore
+++ /dev/null
@@ -1,13 +0,0 @@
-*.dot
-*.output
-atconfig
-atlocal
-autom4te.cache
-bison
-calc
-calc.[chy]
-calc.tab.*
-package.m4
-testsuite
-testsuite.dir
-testsuite.log
-- 
1.7.2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]