Files
bind9/doc/man/Makefile.am
Michał Kępień 490e5cb1f1 Include all pre-generated man pages in "make dist"
Some man pages (e.g. dnstap-read.1, named-nzd2nzf.1) should only be
installed conditionally (when the relevant features are enabled in a
given BIND 9 build).  This is achieved using Automake conditionals.
However, while all source reStructuredText files are included in
tarballs produced by "make dist" (distribution tarballs) as they should
be, the list of pre-generated man pages included in distribution
tarballs incorrectly depends on the ./configure switches used for the
build for which "make dist" is run.  Meanwhile, distribution tarballs
should always contain all the files necessary to build any flavor of
BIND 9.

Here is an example scenario which fails to work as intended:

    autoreconf -i
    ./configure --disable-maintainer-mode
    make dist
    tar --extract --file bind-9.17.11.tar.xz
    cd bind-9.17.11
    ./configure --disable-maintainer-mode --enable-dnstap
    make

Fix by always including pre-generated versions of all conditionally
installed man pages in EXTRA_DIST.  While this may cause some of them to
appear in EXTRA_DIST more than once (depending on the ./configure
switches used for the build for which "make dist" is run), it seems to
not be a problem for Automake.
2021-03-29 13:06:39 +02:00

227 lines
5.0 KiB
Makefile

include $(top_srcdir)/Makefile.top
include $(top_srcdir)/Makefile.docs
MANPAGES_RST = \
arpaname.rst \
delv.rst \
dig.rst \
ddns-confgen.rst \
dnssec-cds.rst \
dnssec-dsfromkey.rst \
dnssec-importkey.rst \
dnssec-keyfromlabel.rst \
dnssec-keygen.rst \
dnssec-revoke.rst \
dnssec-settime.rst \
dnssec-signzone.rst \
dnssec-verify.rst \
dnstap-read.rst \
filter-aaaa.rst \
filter-a.rst \
host.rst \
index.rst \
mdig.rst \
named-checkconf.rst \
named-checkzone.rst \
named-compilezone.rst \
named-journalprint.rst \
named-nzd2nzf.rst \
named-rrchecker.rst \
named.conf.rst \
named.rst \
nsec3hash.rst \
nslookup.rst \
nsupdate.rst \
pkcs11-destroy.rst \
pkcs11-keygen.rst \
pkcs11-list.rst \
pkcs11-tokens.rst \
rndc-confgen.rst \
rndc.conf.rst \
rndc.rst \
tsig-keygen.rst \
../../bin/check/named-checkconf.rst \
../../bin/check/named-checkzone.rst \
../../bin/confgen/rndc-confgen.rst \
../../bin/confgen/tsig-keygen.rst \
../../bin/delv/delv.rst \
../../bin/dig/dig.rst \
../../bin/dig/host.rst \
../../bin/dig/nslookup.rst \
../../bin/dnssec/dnssec-cds.rst \
../../bin/dnssec/dnssec-dsfromkey.rst \
../../bin/dnssec/dnssec-importkey.rst \
../../bin/dnssec/dnssec-keyfromlabel.rst \
../../bin/dnssec/dnssec-keygen.rst \
../../bin/dnssec/dnssec-revoke.rst \
../../bin/dnssec/dnssec-settime.rst \
../../bin/dnssec/dnssec-signzone.rst \
../../bin/dnssec/dnssec-verify.rst \
../../bin/named/named.rst \
../../bin/nsupdate/nsupdate.rst \
../../bin/pkcs11/pkcs11-destroy.rst \
../../bin/pkcs11/pkcs11-keygen.rst \
../../bin/pkcs11/pkcs11-list.rst \
../../bin/pkcs11/pkcs11-tokens.rst \
../../bin/plugins/filter-aaaa.rst \
../../bin/plugins/filter-a.rst \
../../bin/rndc/rndc.conf.rst \
../../bin/rndc/rndc.rst \
../../bin/tools/arpaname.rst \
../../bin/tools/dnstap-read.rst \
../../bin/tools/mdig.rst \
../../bin/tools/named-journalprint.rst \
../../bin/tools/named-nzd2nzf.rst \
../../bin/tools/named-rrchecker.rst \
../../bin/tools/nsec3hash.rst
man_MANS = \
arpaname.1 \
ddns-confgen.8 \
delv.1 \
dig.1 \
host.1 \
mdig.1 \
named-rrchecker.1 \
nslookup.1 \
nsupdate.1 \
named.conf.5 \
rndc.conf.5 \
dnssec-cds.1 \
dnssec-dsfromkey.1 \
dnssec-importkey.1 \
dnssec-keyfromlabel.1 \
dnssec-keygen.1 \
dnssec-revoke.1 \
dnssec-settime.1 \
dnssec-signzone.1 \
dnssec-verify.1 \
filter-aaaa.8 \
filter-a.8 \
named-checkconf.1 \
named-checkzone.1 \
named-compilezone.1 \
named-journalprint.1 \
named.8 \
nsec3hash.1 \
rndc-confgen.8 \
rndc.8 \
tsig-keygen.8
if HAVE_DNSTAP
man_MANS += \
dnstap-read.1
endif HAVE_DNSTAP
if HAVE_LMDB
man_MANS += \
named-nzd2nzf.1
endif HAVE_LMDB
if HAVE_PKCS11
man_MANS += \
pkcs11-destroy.1 \
pkcs11-keygen.1 \
pkcs11-list.1 \
pkcs11-tokens.1
endif HAVE_PKCS11
MANPAGES_IN = \
$(man_MANS:=in) \
dnstap-read.1in \
named-nzd2nzf.1in \
pkcs11-destroy.1in \
pkcs11-keygen.1in \
pkcs11-list.1in \
pkcs11-tokens.1in
EXTRA_DIST = \
conf.py \
$(MANPAGES_RST) \
$(MANPAGES_IN)
CLEANFILES = \
$(man_MANS)
#
# Build rules for pre-generated manpages
#
man_SUBST = \
$(AM_V_SED)$(SED) \
-e 's,[@]PACKAGE_VERSION@,$(PACKAGE_VERSION),' \
-e 's,[@]RELEASE_DATE@,$(RELEASE_DATE),' \
$(srcdir)/$@in >$@
.1in.1:
$(man_SUBST)
.5in.5:
$(man_SUBST)
.8in.8:
$(man_SUBST)
.NOTPARALLEL: man
man: Makefile $(man_MANS)
doc-local: man
clean-local::
-rm -rf $(SPHINXBUILDDIR)
if MAINTAINER_MODE
CLEANFILES += \
manpages.stamp
MAINTAINERCLEANFILES = \
$(MANPAGES_IN)
#
# Build rules for generating pre-generated manpages
#
if HAVE_SPHINX_BUILD
#
# See https://www.gnu.org/software/automake/manual/html_node/Multiple-Outputs.html
#
manpages.stamp: $(MANPAGES_RST)
@rm -f manpages.tmp
@touch manpages.tmp
$(AM_V_SPHINX)$(SPHINX_BUILD) -b man -d $(SPHINXBUILDDIR)/.doctrees/man $(man_SPHINXOPTS) $(SPHINXBUILDDIR)/man
for f in $(SPHINXBUILDDIR)/man/*; do \
cp -a "$$f" "$(srcdir)/$$(basename $$f)in"; \
done
@mv -f manpages.tmp $@
$(MANPAGES_IN): manpages.stamp
## Recover from the removal of $@
@dry=; for f in x $$MAKEFLAGS; do \
case $$f in \
*=*|--*);; \
*n*) dry=:;; \
esac; \
done; \
if test -f $@; then :; else \
$$dry trap 'rm -rf manpages.lock manpages.stamp' 1 2 13 15; \
if $$dry mkdir manpages.lock 2>/dev/null; then \
## This code is being executed by the first process.
$$dry rm -f manpages.stamp; \
$(MAKE) $(AM_MAKEFLAGS) manpages.stamp; \
$$dry rmdir manpages.lock; \
else \
## This code is being executed by the follower processes.
## Wait until the first process is done.
while test -d manpages.lock && test -z "$$dry"; do \
sleep 1; \
done; \
## Succeed if and only if the first process succeeded.
$$dry test -f manpages.stamp; exit $$?; \
fi; \
fi
endif HAVE_SPHINX_BUILD
endif MAINTAINER_MODE