diff options
Diffstat (limited to 'INSTALL.REPO')
-rw-r--r-- | INSTALL.REPO | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/INSTALL.REPO b/INSTALL.REPO new file mode 100644 index 0000000..c078359 --- /dev/null +++ b/INSTALL.REPO @@ -0,0 +1,136 @@ + Copyright 2013-2022 Free Software Foundation, Inc. + + Copying and distribution of this file, with or without + modification, are permitted in any medium without royalty provided + the copyright notice and this notice are preserved. + +This information supplements the generic installation instructions in +the file 'INSTALL'. It is meant for people building from the +development repository, rather than a distribution archive. +Distribution archives include a 'configure' script, among other files; +the repository does not. If you want to start building the 'groff' +system using an existing 'configure' script, you don't need the +information in this file. + +Dependencies +------------ + +The dependencies documented in the 'INSTALL.extra' file are required, as +are several others. + +* You will need Autoconf version 2.68 or higher and Automake version + 1.12.2 or higher. These requirements are asserted in the + 'bootstrap.conf' file. + + On operating systems supporting concurrent installation of multiple + versions of the GNU Autotools, set environment variables as in the + following example, adjusting the version numbers as required. + + $ export AUTOMAKE_VERSION=1.14 + $ export AUTOCONF_VERSION=2.69 + +* You will need a 'yacc' program. We recommend Berkeley yacc ('byacc') + or GNU Bison ('bison'). + +* groff's Texinfo manual is generated in several formats: GNU Info, + HTML, plain text, TeX DVI, and PDF. The former three require + 'makeinfo' from GNU Texinfo 5.0 or later. The latter two additionally + require a TeX installation, such as TeX Live. If TeX is not + installed, the DVI and PDF formats of the manual cannot be generated. + This will cause a build failure only if the Texinfo source file + "groff.texi" is updated and the make(1) "dist" or relevant file + targets are manually specified. + +* You will need the 'xpmtoppm', 'pnmdepth', and 'pnmtops' programs from + the Netpbm distribution. + + +Bootstrapping from a Git checkout +--------------------------------- + +Invoke the bootstrap script. + + $ ./bootstrap + + +What bootstrapping does +----------------------- + +The foregoing procedure will do two things: + + - clone the gnulib repository as a Git submodule in 'gnulib', add the + needed gnulib source files in 'lib' as well as required gnulib m4 + macros in 'gnulib_m4'; and + + - invoke 'autoreconf', which will call the GNU Autotools ('aclocal', + 'autoconf', 'automake') in the right order to create the following + files. + + -- INSTALL (a symlink to gnulib's INSTALL file) + -- Makefile.in + -- aclocal.m4 + -- autom4te.cache/ + -- build-aux/ (which contains all the helper scripts) + -- configure + -- src/include/config.hin + +'aclocal.m4' is a generated file; groff's m4 macros are included via the +'acinclude.m4' file. + + +Building +-------- + +You can now invoke the 'configure' script. It produces the +'config.status' script, which generates the Makefile. Then call 'make' +to build the groff project. You can do these from the source tree. + + $ ./configure + $ make # run with -j option if desired + +You can alternatively build groff outside of its source tree, which is +cleaner, leaving fewer files to confuse 'git status' if you aim to +undertake development. + + $ mkdir build + $ cd build + $ ../configure + $ make # run with -j option if desired + +A separate build tree need not be a subdirectory of the source. + + +Evaluation +---------- + +Several dozen sanity checks can be performed within the build tree. + + $ make check # run with -j option if desired + + +Installation +------------ + +When the build is finished you can install the groff build artifacts. + + $ make install install-doc # run with 'sudo' if necessary + + +Uninstalling +------------ + +See "Uninstalling" in the 'INSTALL.extra' file. + + +Rebuilding +---------- + +Start over from "Building" above. + + +##### Editor settings +Local Variables: +fill-column: 72 +mode: text +End: +# vim: set autoindent textwidth=72: |