summaryrefslogtreecommitdiff
path: root/HACKING
diff options
context:
space:
mode:
Diffstat (limited to 'HACKING')
-rw-r--r--HACKING42
1 files changed, 37 insertions, 5 deletions
diff --git a/HACKING b/HACKING
index 17bbeafe..b4099006 100644
--- a/HACKING
+++ b/HACKING
@@ -73,19 +73,46 @@ and is not part of a release distribution.
- LZMA Utils 4.32 or later (from <http://tukaani.org/lzma/>)
- Texinfo 4.8 or later
- Any prerequisites of the above (such as perl, tex)
- - A git checkout of gnulib. A read-only copy of gnulib can be
- obtained by:
+
+ Note that none of these bootstrapping dependencies should be required
+ by a distributed release.
+
+* M4 includes gnulib as a git submodule. By default, the bootstrap
+ script will attempt to run
+ git submodule update --init
+ to grab a gnulib clone from the official read-only location of
+ git://git.sv.gnu.org/gnulib.git
+
+ However, this can be network and disk intensive. If you already have
+ another gnulib clone on your disk, you can use the environment
+ variable GNULIB_SRCDIR to point to the previous checkout to speed up
+ the process. Additionally, both the bootstrap script and gnulib-tool
+ require a shell that supports functions, so you can set the
+ environment variable CONFIG_SHELL to choose a better shell on systems
+ (like Solaris) where /bin/sh is lacking. Thus, you may find it
+ convenient to run:
+ GNULIB_SRCDIR=path/to/gnulib CONFIG_SHELL=path/to/sh \
+ path/to/sh ./bootstrap
+
+ A read-only copy of gnulib can be obtained by:
git clone git://git.sv.gnu.org/gnulib.git
or
cvs -d:pserver:anonymous@pserver.git.sv.gnu.org:/srv/git/gnulib.git \
co -d gnulib HEAD
+ Using a CVS checkout might work, but it is relatively untested,
+ particularly now that we use a git submodule for gnulib.
+
If you are a member of the savannah group for gnulib, a read-write
copy can be obtained by:
git clone <savannah-user>@git.sv.gnu.org:/srv/git/gnulib.git
- Note that none of these bootstrapping dependencies should be required
- by a distributed release.
+ If you are behind a firewall that blocks the git protocol, you may
+ find it useful to do:
+ git config --global url.http://git.sv.gnu.org/r/.insteadof \
+ git://git.sv.gnu.org/
+ to force git to transparently rewrite all savannah git references to
+ instead use http.
* Either add the gnulib directory to your PATH, or run
GNULIB_TOOL=path/to/gnulib/gnulib-tool ./bootstrap
@@ -214,13 +241,18 @@ yyyy-mm-dd Name of Author <email@address> (tiny change)
* Make sure your locale is sane, e.g. by exporting LC_ALL=C.
+* Make sure you are happy with the particular gnulib version recorded as
+ the gnulib submodule. If necessary to update to the latest, run:
+ git submodule foreach git pull
+ git commit -m 'Update gnulib submodule to latest.' gnulib
+
* Update the version number in configure.ac.
See http://www.gnu.org/software/libtool/contribute.html for details of
the numbering scheme (m4 uses the same scheme as libtool).
* Update NEWS, ChangeLog.
-* Run ./bootstrap.
+* Run ./bootstrap, perhaps with environment variables set.
* Run ./configure (or create a build directory first and run configure
from there, if you want to keep the build tree separate).