summaryrefslogtreecommitdiff
path: root/README-hacking
blob: f42d49b36735aee3878ab58ccd10d5f27d2ecd16 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
-*- outline -*-

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 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 the latest stable versions of the maintainer
tools we depend upon, including:

- Autoconf <http://www.gnu.org/software/autoconf/>
- Automake <http://www.gnu.org/software/automake/>
- Help2man <http://www.gnu.org/software/help2man/>
- M4 <http://www.gnu.org/software/m4/>
- Perl <http://www.cpan.org/>
- Texinfo <http://www.gnu.org/software/texinfo/>

The following are useful as well, if you want to be able to run commands
like "make dist" or "make distcheck":

- Gzip <http://www.gnu.org/software/gzip/>
- Tar <http://www.gnu.org/software/tar/>

Only building the initial full source tree will be a bit painful.
Later, a plain `git pull && make' should be sufficient.

* First GIT checkout

You can get a copy of the source repository like this:

	$ git clone git://git.sv.gnu.org/autoconf

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":

	$ ./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.

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

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/>.