summaryrefslogtreecommitdiffstats
path: root/INSTALL.REPO
diff options
context:
space:
mode:
Diffstat (limited to 'INSTALL.REPO')
-rw-r--r--INSTALL.REPO136
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: