mirror of
git://git.sv.gnu.org/autoconf
synced 2024-11-27 01:49:56 +08:00
9479d2c639
* .gitattributes (*.texi*): Add new entry. * README-hacking: Mention how to use it. Inspired by a coreutils patch by Jim Meyering. Signed-off-by: Eric Blake <ebb9@byu.net>
143 lines
5.4 KiB
Plaintext
143 lines
5.4 KiB
Plaintext
-*- outline -*-
|
|
|
|
These notes intend to help people working on the checked-out sources.
|
|
These requirements do not apply when building from a distribution
|
|
tarball. Don't put this file into the distribution. Don't mention it
|
|
in the ChangeLog. You may want to also see HACKING for
|
|
maintainer-specific rules.
|
|
|
|
* Requirements
|
|
|
|
We've opted to keep only the highest-level sources in the GIT 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 recent stable versions of the maintainer
|
|
tools we depend upon, including:
|
|
|
|
- Autoconf 2.60+ <http://www.gnu.org/software/autoconf/>
|
|
- Automake 1.10+ <http://www.gnu.org/software/automake/>
|
|
- Help2man 1.29+ <http://www.gnu.org/software/help2man/>
|
|
- M4 1.4.5+ <http://www.gnu.org/software/m4/>
|
|
- Perl 5.005_03+ <http://www.cpan.org/>
|
|
- Texinfo 4.8+ <http://www.gnu.org/software/texinfo/>
|
|
|
|
The following are useful as well, if you want to be able to run commands
|
|
like "make dist-lzma" or "make distcheck":
|
|
|
|
- Gzip <http://www.gnu.org/software/gzip/>
|
|
- Tar <http://www.gnu.org/software/tar/>
|
|
- LZMA Utils 4.32+ <http://tukaani.org/lzma/>
|
|
|
|
Although we try to keep the CVS mirror of the git repository usable,
|
|
some of the tests in the testsuite will fail if git was not used to
|
|
generate the version string. Therefore, we recommend:
|
|
|
|
- Git 1.4.4+ <http://git.or.cz/>
|
|
|
|
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
|
|
|
|
then add the following to .git/config or ~/.gitconfig:
|
|
[merge "merge-changelog"]
|
|
name = GNU ChangeLog merge driver
|
|
driver = git-merge-changelog %O %A %B
|
|
[diff "texinfo"]
|
|
funcname = ^@node[\t ][\t ]*\\([^,][^,]*\\)
|
|
|
|
Only building the initial full source tree will be a bit painful.
|
|
Later, a plain `git pull && make' should be sufficient.
|
|
|
|
If you want to test Autoconf on a machine without git, it may be
|
|
easier to first bootstrap Autoconf on a different machine with git,
|
|
run `make dist', and copy the tarball to the machine under test. It
|
|
should always be possible to create a self-contained tarball which
|
|
does not rely on the bootstrap-only tools.
|
|
|
|
* First GIT checkout
|
|
|
|
You can get an anonymous copy of the source repository using any one
|
|
of these three methods, although the CVS mirror is less tested:
|
|
|
|
$ git clone git://git.sv.gnu.org/autoconf
|
|
$ git clone http://git.sv.gnu.org/r/autoconf.git
|
|
$ cvs -d:pserver:anonymous@pserver.git.sv.gnu.org:/srv/git/autoconf.git \
|
|
co -d autoconf HEAD
|
|
|
|
If you have a Savannah user name and commit rights to the Autoconf
|
|
project, you should use this instead:
|
|
|
|
$ git clone <username>@git.sv.gnu.org:/srv/git/autoconf.git
|
|
|
|
The next step is to generate files like configure and Makefile.in:
|
|
|
|
$ cd autoconf
|
|
$ autoreconf -vi
|
|
|
|
Since we're building autoconf itself, and its tests are picky, the
|
|
following procedure includes an extra step to ensure that some
|
|
generated files are regenerated using the tools just build by "make"
|
|
(if you use GNU make, the file GNUmakefile sets PATH for you):
|
|
|
|
$ ./configure
|
|
$ make
|
|
$ ( PATH=`pwd`/tests:$PATH; autoreconf -vi )
|
|
$ make check
|
|
|
|
At this point, there should be no difference between your local copy,
|
|
and the GIT master copy:
|
|
|
|
$ git diff
|
|
|
|
should output no difference.
|
|
|
|
The testsuite is run by 'make check'. You may find it useful to run a
|
|
subset of the testsuite; for example, all tests with the 'm4sugar'
|
|
keyword as well as test 10:
|
|
|
|
$ make check TESTSUITEFLAGS='10 -k m4sugar'
|
|
|
|
* Submitting patches
|
|
|
|
All patches should be submitted to <autoconf-patches@gnu.org> for
|
|
review, in context or unified diff format against the latest sources.
|
|
In most cases, a patch should include a test case, to ensure that
|
|
regressions do not creep back in. Remember to add documentation and a
|
|
NEWS entry for anything that is visible to the user.
|
|
|
|
If your change is significant (i.e., if it adds more than ~10 lines),
|
|
then you'll have to have a copyright assignment on file with the FSF.
|
|
Since that involves first an email exchange between you and the FSF,
|
|
and then the exchange (FSF to you, then back) of an actual sheet of paper
|
|
with your signature on it, and finally, some administrative processing
|
|
in Boston, the process can take a few weeks.
|
|
|
|
The forms to choose from are in gnulib's doc/Copyright/ directory.
|
|
If you want to assign a single change, you should use the file,
|
|
doc/Copyright/request-assign.changes:
|
|
|
|
http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=blob;f=doc/Copyright/request-assign.changes;hb=HEAD
|
|
|
|
If you would like to assign past and future autoconf work,
|
|
you'd use doc/Copyright/request-assign.future:
|
|
|
|
http://git.sv.gnu.org/gitweb/?p=gnulib.git;a=blob;f=doc/Copyright/request-assign.future;hb=HEAD
|
|
|
|
Enjoy!
|
|
|
|
-----
|
|
|
|
Copyright (C) 2002-2008 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
|
|
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/>.
|