diff options
Diffstat (limited to 'HACKING')
-rw-r--r-- | HACKING | 42 |
1 files changed, 37 insertions, 5 deletions
@@ -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). |