123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- -*- outline -*-
- These notes intend to help people working on the checked-out sources.
- These requirements do not apply when building from a distribution tarball.
- See also HACKING for more detailed contribution guidelines.
- * 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.
- Note the requirements to build the released archive are much less and
- are just the requirements of the standard ./configure && make procedure.
- Specific development tools and versions will be checked for and listed by
- the bootstrap script. See README-prereq for specific notes on obtaining
- these prerequisite tools.
- Valgrind <http://valgrind.org/> is also highly recommended, if
- Valgrind supports your architecture. See also README-valgrind.
- While building from a just-cloned source tree may require installing a
- few prerequisites, 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/coreutils
- $ cd coreutils
- As an optional step, if you already have a copy of the gnulib git
- repository, then you can use it as a reference to reduce download
- time and disk space requirements:
- $ export GNULIB_SRCDIR=/path/to/gnulib
- The next step is to get and check other files needed to build,
- which are extracted from other source packages:
- $ ./bootstrap
- To use the most-recent gnulib (as opposed to the gnulib version that
- the package last synchronized to), do this next:
- $ git submodule foreach git pull origin master
- $ git commit -m 'build: update gnulib submodule to latest' gnulib
- And there you are! Just
- $ ./configure --quiet #[--enable-gcc-warnings] [*]
- $ make
- $ 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.
- Enjoy!
- [*] The --enable-gcc-warnings option is useful only with glibc
- and with a very recent version of gcc. You'll probably also have
- to use recent system headers. If you configure with this option,
- and spot a problem, please be sure to send the report to the bug
- reporting address of this package, and not to that of gnulib, even
- if the problem seems to originate in a gnulib-provided file.
- * Submitting patches
- If you develop a fix or a new feature, please send it to the
- appropriate bug-reporting address as reported by the --help option of
- each program. One way to do this is to use vc-dwim
- <https://www.gnu.org/software/vc-dwim/>), as follows.
- Run the command "vc-dwim --initialize" from the top-level directory
- of this package's git-cloned hierarchy.
- Edit the (empty) ChangeLog file that this command creates, creating a
- properly-formatted entry according to the GNU coding standards
- <https://www.gnu.org/prep/standards/html_node/Change-Logs.html>.
- Make your changes.
- Run the command "vc-dwim" and make sure its output (the diff of all
- your changes) looks good.
- Run "vc-dwim --commit".
- Run the command "git format-patch --stdout -1", and email its output
- in, using the output's subject line.
- -----
- Copyright (C) 2002-2018 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 <https://www.gnu.org/licenses/>.
|