diff options
author | Jim Meyering <meyering@fb.com> | 2016-12-12 07:50:25 -0800 |
---|---|---|
committer | Jim Meyering <meyering@fb.com> | 2016-12-12 07:56:59 -0800 |
commit | e38c18a6769c69c14a610f75331408c1d79be6c3 (patch) | |
tree | a421d18c7ed36d79505ad759a776d2b98cf3d9fd /README-hacking | |
parent | 5a5617824490bc9ff501f13e2aadd643897423a1 (diff) | |
download | sed-e38c18a6769c69c14a610f75331408c1d79be6c3.tar.gz |
doc: add a README-hacking file
* README-hacking: New file: instructions for building from a git clone.
Copied from grep's repo, but with s/grep/sed/.
Diffstat (limited to 'README-hacking')
-rw-r--r-- | README-hacking | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/README-hacking b/README-hacking new file mode 100644 index 0000000..f642a1e --- /dev/null +++ b/README-hacking @@ -0,0 +1,83 @@ +-*- 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. +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/sed + $ cd sed + +As an optional step, if you already have a copy of the gnulib git +repository on your hard drive, 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. +----- + +Copyright (C) 2002-2016 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/>. |