* README-hacking: Add Git to the list of required tools.
[platform/upstream/coreutils.git] / README-hacking
1 -*- outline -*-
2
3 These notes intend to help people working on the checked-out sources.
4 These requirements do not apply when building from a distribution tarball.
5
6 * Requirements
7
8 We've opted to keep only the highest-level sources in the GIT repository.
9 This eases our maintenance burden, (fewer merges etc.), but imposes more
10 requirements on anyone wishing to build from the just-checked-out sources.
11 For example, you have to use the latest stable versions of the maintainer
12 tools we depend upon, including:
13
14 - Automake <http://www.gnu.org/software/automake/>
15 - Autoconf <http://www.gnu.org/software/autoconf/>
16 - Bison <http://www.gnu.org/software/bison/>
17 - Gettext <http://www.gnu.org/software/gettext/>
18 - Git <http://git.or.cz/>
19 - Gperf <http://www.gnu.org/software/gperf/>
20 - Gzip <http://www.gnu.org/software/gzip/>
21 - Perl <http://www.cpan.org/>
22 - Rsync <http://samba.anu.edu.au/rsync/>
23 - Tar <http://www.gnu.org/software/tar/>
24
25 Valgrind <http://valgrind.org/> is also highly recommended, if
26 Valgrind supports your architecture.
27
28 Only building the initial full source tree will be a bit painful.
29 Later, a plain `git pull && make' should be sufficient.
30
31 * LZMA
32
33 The coreutils build procedure can build distribution tarballs with the
34 LZMA compression scheme.  This feature is so new that it is not
35 supported by the latest version of Automake.  If you don't care about
36 building LZMA tarballs, you can manually remove the string "dist-lzma"
37 from configure.ac before bootstrapping.
38
39 If you do want to build LZMA tarballs, you'll need to make sure you
40 have the latest stable version of the LZMA Utils
41 <http://tukaani.org/lzma/>.  Also, you'll need a version of
42 Automake that supports the dist-lzma feature, which was added to
43 Automake on 2007-10-09 but is not yet available in a stable Automake
44 version.  So until Automake 1.11 comes out, you'll need to get the
45 bleeding-edge Automake version with a command like this:
46
47         $ git clone git://git.sv.gnu.org/automake
48         $ cd automake
49         $ ./bootstrap
50         $ ./configure
51         $ make install
52
53 and build and install that version.
54
55 * First GIT checkout
56
57 You can get a copy of the source repository like this:
58
59         $ git clone git://git.sv.gnu.org/coreutils
60
61 The next step is to get other files needed to build, which are
62 extracted from other source packages:
63
64         $ ./bootstrap
65
66 And there you are!  Just
67
68         $ ./configure
69         $ make
70         $ make check
71
72 At this point, there should be no difference between your local copy,
73 and the GIT master copy:
74
75         $ git diff
76
77 should output no difference.
78
79 Enjoy!
80
81 -----
82
83 Copyright (C) 2002-2007 Free Software Foundation, Inc.
84
85 This program is free software: you can redistribute it and/or modify
86 it under the terms of the GNU General Public License as published by
87 the Free Software Foundation, either version 3 of the License, or
88 (at your option) any later version.
89
90 This program is distributed in the hope that it will be useful,
91 but WITHOUT ANY WARRANTY; without even the implied warranty of
92 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
93 GNU General Public License for more details.
94
95 You should have received a copy of the GNU General Public License
96 along with this program.  If not, see <http://www.gnu.org/licenses/>.