summaryrefslogtreecommitdiffstats
path: root/INSTALL
diff options
context:
space:
mode:
Diffstat (limited to 'INSTALL')
-rw-r--r--INSTALL136
1 files changed, 71 insertions, 65 deletions
diff --git a/INSTALL b/INSTALL
index da1e53e6b..d12fd7ae5 100644
--- a/INSTALL
+++ b/INSTALL
@@ -6,29 +6,30 @@ Synopsis
Description
(a) Use a package manager
- If you want to install the manual pages into your system, consider
- installing them through your package manager from an official release,
- instead of installing them from this repository. This repository
- contains the newest manual pages, but using an official release and the
- system package manager offers important benefits. On a Debian system
- it would be:
+ If you want to install the manual pages into your system,
+ consider installing them through your package manager from an
+ official release, instead of installing them from this
+ repository. This repository contains the newest manual pages,
+ but using an official release and the system package manager
+ offers important benefits. On a Debian system it would be:
$ sudo apt-get install -V manpages-dev manpages
- If you prefer to install the manual pages from this repository, maybe
- because your system ships a too old version, consider updating the
- package offered by your system. See the <RELEASE> file, and also
- talk to the maintainer of the package in your distribution.
+ If you prefer to install the manual pages from this repository,
+ maybe because your system ships a too old version, consider
+ updating the package offered by your system. See the <RELEASE>
+ file, and also talk to the maintainer of the package in your
+ distribution.
(b) Install manually from source
- If you are contributing to the project, you may want to install the
- manual pages from this repository to test them, instead of using an
- official release. Or maybe your distribution installs packages from
- source code without any package manager.
+ If you are contributing to the project, you may want to install
+ the manual pages from this repository to test them, instead of
+ using an official release. Or maybe your distribution installs
+ packages from source code without any package manager.
- In most cases, you just want to install all of the manual pages, and
- nothing else. To install them in the default system directory (per GNU
- guidelines), use:
+ In most cases, you just want to install all of the manual pages,
+ and nothing else. To install them in the default system
+ directory (per GNU guidelines), use:
$ sudo make install
@@ -38,35 +39,33 @@ Description
A few features can be used to tweak the install:
- Directory Variables
- To check about all of the directory variables available, compare the
- GNU Coding Standards with the Makefile and the helper makefiles (see
- the sections "Standards" and "Files" below). The most common ones that
- you may use are:
+ Variables
+ There are many variables available with which you can tweak
+ the build system. Most of them are directory variables and
+ command variables, based on the GNU Coding Standards. Others
+ are specially designed for this project. To see all of the
+ available variables, use:
+
+ $ make help-variables
+
+ The most common ones that you may use are:
- DESTDIR
- prefix
- Command Variables
- Some commands use flags. A command named 'command' will have a
- variable COMMAND to specify an alternative command name. To append
- flags to the default ones, set the variable EXTRA_COMMANDFLAGS. To
- overwrite the flags, set the variable COMMANDFLAGS.
-
- Verbose
Use V=1 for a more verbose output from the makefiles:
$ sudo make install V=1
Uninstall
- You can uninstall the pages with the following command (but see the
- "Caveats" section below):
+ You can uninstall the pages with the following command (but
+ see the "Caveats" section below):
$ sudo make uninstall
Targets
- There are targets for more granular control, such as 'install-man3'.
- See the help to know all of them:
+ There are targets for more granular control, such as
+ 'install-man3'. See the help to know all of them:
$ make help
@@ -84,13 +83,17 @@ Description
- xargs(1)
- For installing:
+ - gzip(1)
- install(1)
+ - ln(1)
+ - sponge(1)
+ - test(1)
- For uninstalling / cleaning:
- rm(1)
- rmdir(1)
- - For linting man(7) source:
+ - For linting/building/checking man(7) source:
- eqn(1)
- grotty(1)
- head(1)
@@ -99,19 +102,19 @@ Description
- tbl(1)
- troff(1) >= 1.23.0 - GNU troff is required.
- - For linting C source:
+ - For linting/building C source:
- cc(1) - GCC or Clang
- clang-tidy(1)
- cpplint(1)
- iwyu(1)
- - man(1)
+ - mandoc(1)
- mkdir(1)
- pkg-config(1)
- tac(1)
- libbsd-dev
- And one that isn't packaged, but can be extracted from the Linux
- kernel source tree in <scripts/checkpatch.pl>:
+ And one that isn't packaged, but can be extracted from the
+ Linux kernel source tree in <scripts/checkpatch.pl>:
- checkpatch(1)
@@ -122,26 +125,26 @@ Description
- man(1)
- groff(1) | mandoc(1)
- Lint (experimental)
- You can lint both the manual pages, and the example C programs
- contained in them. See 'make help' for a list of targets that can be
- used.
+ Lint & check
+ You can lint and check both the manual pages, and the example C
+ programs contained in them. See 'make help' for a list of
+ targets that can be used.
Files
- Makefile, lib/install-man.mk, lib/install.mk
- Main makefiles for installing (however, others may also be used by
- inclusion).
+ Makefile, share/mk/install-man.mk, share/mk/install.mk
+ Main makefiles for installing (however, others may also be used
+ by inclusion).
- lib/cmd.mk
+ share/mk/cmd.mk
Command variables.
- lib/install-html.mk
+ share/mk/install-html.mk
Makefile to install HTML manual pages.
- lib/verbose.mk
+ share/mk/verbose.mk
Handle verbose settings.
- lib/*.mk
+ share/mk/*
Other makefiles.
man*/*
@@ -158,27 +161,30 @@ Standards
And the Filesystem Hierarchy Standard:
<https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html>
- But deviate from them in some cases, the most notable case being the
- use of directories for manual subsections, such as <man3type/>.
+ But deviate from them in some cases, the most notable case being
+ the use of directories for manual subsections, such as
+ <man3type/>.
Caveats
Uninstall
- You can uninstall the pages. However, take into account that it will
- only uninstall pages that exist in the repository. This means that if
- you installed the manual pages from source from an older version of the
- repository with 'make install', and some page was [re]moved later, it
- won't be uninstalled. You should probably install with a prefix of
- prefix=/opt/local/man-pages to be able to nuke the directory later with
- 'rm -r /opt/local/man-pages'. However, you'll need to modify your
- $MANPATH to be able to use those manual pages as if they were in a
- system path.
+ You can uninstall the pages. However, take into account that it
+ will only uninstall pages that exist in the repository. This
+ means that if you installed the manual pages from source from an
+ older version of the repository with 'make install', and some
+ page was [re]moved later, it won't be uninstalled. You should
+ probably install with a prefix of prefix=/opt/local/man-pages to
+ be able to nuke the directory later with
+ 'rm -r /opt/local/man-pages'. However, you'll need to modify
+ your $MANPATH to be able to use those manual pages as if they
+ were in a system path.
Version and last-modified date
- If you're an end user or a distributor, make sure you do this (install)
- from a tarball, and not from the git repository. The manual pages in
- the repository have placeholders for the version and last modified date,
- which are filled when creating the tarball. You can create your own
- tarball, for which you need to read the RELEASE file.
+ If you're an end user or a distributor, make sure you do this
+ (install) from a tarball, and not from the git repository. The
+ manual pages in the repository have placeholders for the version
+ and last modified date, which are filled when creating the
+ tarball. You can create your own tarball, for which you need to
+ read the RELEASE file.
See also
gmake(1)