du: don't miscount duplicate directories or link-count-1 files
[coreutils.git] / README-hacking
blobfecbf9eaebe5b55df1aee71c8d233b095d8763ed
1 -*- outline -*-
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 See also HACKING for more detailed coreutils contribution guidelines.
7 * Requirements
9 We've opted to keep only the highest-level sources in the GIT repository.
10 This eases our maintenance burden, (fewer merges etc.), but imposes more
11 requirements on anyone wishing to build from the just-checked-out sources.
12 Note the requirements to build the released archive are much less and
13 are just the requirements of the standard ./configure && make procedure.
14 Specific development tools and versions will be checked for and listed by
15 the bootstrap script.  See README-prereq for specific notes on obtaining
16 these prerequisite tools.
18 Valgrind <http://valgrind.org/> is also highly recommended, if
19 Valgrind supports your architecture. See also README-valgrind.
21 While building from a just-cloned source tree may require installing a
22 few prerequisites, later, a plain `git pull && make' should be sufficient.
24 * First GIT checkout
26 You can get a copy of the source repository like this:
28         $ git clone git://git.sv.gnu.org/coreutils
29         $ cd coreutils
31 As an optional step, if you already have a copy of the gnulib git
32 repository on your hard drive, then you can use it as a reference to
33 reduce download time and disk space requirements:
35         $ export GNULIB_SRCDIR=/path/to/gnulib
37 The next step is to get and check other files needed to build,
38 which are extracted from other source packages:
40         $ ./bootstrap
42 And there you are!  Just
44         $ ./configure --quiet #[--enable-gcc-warnings] [*]
45         $ make
46         $ make check
48 At this point, there should be no difference between your local copy,
49 and the GIT master copy:
51         $ git diff
53 should output no difference.
55 Enjoy!
57 [*] The --enable-gcc-warnings option is useful only with glibc
58 and with a very recent version of gcc.  You'll probably also have
59 to use recent system headers.  If you configure with this option,
60 and spot a problem, please be sure to send the report to the bug
61 reporting address of this package, and not to that of gnulib, even
62 if the problem seems to originate in a gnulib-provided file.
63 -----
65 Copyright (C) 2002-2010 Free Software Foundation, Inc.
67 This program is free software: you can redistribute it and/or modify
68 it under the terms of the GNU General Public License as published by
69 the Free Software Foundation, either version 3 of the License, or
70 (at your option) any later version.
72 This program is distributed in the hope that it will be useful,
73 but WITHOUT ANY WARRANTY; without even the implied warranty of
74 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
75 GNU General Public License for more details.
77 You should have received a copy of the GNU General Public License
78 along with this program.  If not, see <http://www.gnu.org/licenses/>.