summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2013-02-02 22:47:47 -0500
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2013-02-06 23:16:16 -0500
commit56ba3c78ae35065064c4289a0c8e22a81256af20 (patch)
tree29587193349dce9f1b44a2b1787ec357179fb463
parent823eb4e64e88e1787a82f84539344ef530f381a8 (diff)
build-sys: create Makefile-man.am automatically
man rules were repeating the same information in too many places, which was error prone. Those rules can be easily generated from .xml files. For efficiency and because python is not a required dependency, Makefile-man.am is only regenerated when requested with make update-man-list If no metadata in man/*.xml changed, this file should not change. So only when a new man page or a new alias is added, this file should show up in 'git diff'. The change should then be committed. If the support for building from git without python was dropped, we could drop Makefile-man.am from version control. This would also increase the partial build time (since more stuff would be rebuild whenever sources in man/*.xml would be modified), so it would probably wouldn't be worth it.
-rw-r--r--Makefile-man.am12
-rw-r--r--Makefile.am7
-rwxr-xr-xmake-directive-index.py2
-rwxr-xr-xmake-man-index.py2
-rw-r--r--make-man-rules.py92
-rw-r--r--man/binfmt.d.xml2
-rw-r--r--man/bootchart.conf.xml2
-rw-r--r--man/crypttab.xml2
-rw-r--r--man/hostnamectl.xml2
-rw-r--r--man/localectl.xml2
-rw-r--r--man/loginctl.xml2
-rw-r--r--man/logind.conf.xml2
-rw-r--r--man/modules-load.d.xml2
-rw-r--r--man/nss-myhostname.xml2
-rw-r--r--man/sd-login.xml2
-rw-r--r--man/sd-readahead.xml2
-rw-r--r--man/sd_get_seats.xml2
-rw-r--r--man/sd_login_monitor_new.xml2
-rw-r--r--man/sd_pid_get_session.xml2
-rw-r--r--man/sd_readahead.xml2
-rw-r--r--man/sd_seat_get_active.xml2
-rw-r--r--man/sd_session_is_active.xml2
-rw-r--r--man/sd_uid_get_state.xml2
-rw-r--r--man/systemd-binfmt.service.xml2
-rw-r--r--man/systemd-bootchart.xml2
-rw-r--r--man/systemd-cryptsetup-generator.xml2
-rw-r--r--man/systemd-cryptsetup@.service.xml2
-rw-r--r--man/systemd-hostnamed.service.xml2
-rw-r--r--man/systemd-journal-gatewayd.service.xml2
-rw-r--r--man/systemd-localed.service.xml2
-rw-r--r--man/systemd-logind.service.xml2
-rw-r--r--man/systemd-modules-load.service.xml2
-rw-r--r--man/systemd-quotacheck.service.xml2
-rw-r--r--man/systemd-random-seed-load.service.xml2
-rw-r--r--man/systemd-readahead-replay.service.xml2
-rw-r--r--man/systemd-timedated.service.xml2
-rw-r--r--man/systemd-user-sessions.service.xml2
-rw-r--r--man/systemd-vconsole-setup.service.xml2
-rw-r--r--man/timedatectl.xml2
-rw-r--r--man/vconsole.conf.xml2
40 files changed, 148 insertions, 37 deletions
diff --git a/Makefile-man.am b/Makefile-man.am
index 76b794a27b..d54d67cf11 100644
--- a/Makefile-man.am
+++ b/Makefile-man.am
@@ -1,3 +1,6 @@
+# Do not edit. Generated by make-man-rules.py.
+# Regenerate with 'make man-list-update'.
+
MANPAGES += \
man/bootup.7 \
man/daemon.7 \
@@ -292,6 +295,9 @@ if ENABLE_BOOTCHART
MANPAGES += \
man/bootchart.conf.5 \
man/systemd-bootchart.1
+MANPAGES_ALIAS += \
+ #
+
endif
if ENABLE_HOSTNAMED
@@ -396,6 +402,9 @@ endif
if HAVE_MYHOSTNAME
MANPAGES += \
man/nss-myhostname.8
+MANPAGES_ALIAS += \
+ #
+
endif
if HAVE_PAM
@@ -464,4 +473,7 @@ if HAVE_PYTHON
MANPAGES += \
man/systemd.directives.7 \
man/systemd.index.7
+MANPAGES_ALIAS += \
+ #
+
endif
diff --git a/Makefile.am b/Makefile.am
index ba55a7e1b6..f73e8a6e74 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -502,6 +502,13 @@ CLEANFILES += \
if HAVE_PYTHON
NON_INDEX_XML_FILES = $(filter-out man/systemd.index.xml,$(XML_FILES))
+
+XML_GLOB = $(wildcard $(top_srcdir)/man/*.xml)
+update-man-list: make-man-rules.py $(XML_GLOB)
+ $(AM_V_GEN)$(PYTHON) $^ > $(top_srcdir)/Makefile-man.tmp
+ $(AM_V_at)mv $(top_srcdir)/Makefile-man.tmp $(top_srcdir)/Makefile-man.am
+ @echo "Makefile-man.am has been regenerated"
+
man/systemd.index.xml: make-man-index.py $(NON_INDEX_XML_FILES)
$(AM_V_at)$(MKDIR_P) $(dir $@)
$(AM_V_GEN)$(PYTHON) $^ > $@
diff --git a/make-directive-index.py b/make-directive-index.py
index ab40997a98..b06a54c1d5 100755
--- a/make-directive-index.py
+++ b/make-directive-index.py
@@ -23,7 +23,7 @@ import xml.etree.ElementTree as tree
import re
TEMPLATE = '''\
-<refentry id="systemd.directives">
+<refentry id="systemd.directives" conditional="HAVE_PYTHON">
<refentryinfo>
<title>systemd.directives</title>
diff --git a/make-man-index.py b/make-man-index.py
index 2dbc2da995..f829d98b6a 100755
--- a/make-man-index.py
+++ b/make-man-index.py
@@ -24,7 +24,7 @@ import sys
MDASH = ' — ' if sys.version_info.major >= 3 else ' -- '
TEMPLATE = '''\
-<refentry id="systemd.index">
+<refentry id="systemd.index" conditional="HAVE_PYTHON">
<refentryinfo>
<title>systemd.index</title>
diff --git a/make-man-rules.py b/make-man-rules.py
new file mode 100644
index 0000000000..b88b43ac3d
--- /dev/null
+++ b/make-man-rules.py
@@ -0,0 +1,92 @@
+# -*- Mode: python; coding: utf-8; indent-tabs-mode: nil -*- */
+#
+# This file is part of systemd.
+#
+# Copyright 2013 Zbigniew Jędrzejewski-Szmek
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+#
+# systemd 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
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with systemd; If not, see <http://www.gnu.org/licenses/>.
+
+from __future__ import print_function
+import xml.etree.ElementTree as tree
+import collections
+import sys
+
+SECTION = '''\
+MANPAGES += \\
+ {manpages}
+MANPAGES_ALIAS += \\
+ {aliases}
+{rules}
+'''
+
+CONDITIONAL = '''\
+if {conditional}
+''' \
++ SECTION + \
+'''\
+endif
+'''
+
+HEADER = '''\
+# Do not edit. Generated by make-man-rules.py.
+# Regenerate with 'make update-man-list'.
+
+'''
+
+def man(page, number):
+ return 'man/{}.{}'.format(page, number)
+
+def add_rules(rules, name):
+ xml = tree.parse(name)
+ # print('parsing {}'.format(name), file=sys.stderr)
+ conditional = xml.getroot().get('conditional') or ''
+ rulegroup = rules[conditional]
+ refmeta = xml.find('./refmeta')
+ title = refmeta.find('./refentrytitle').text
+ number = refmeta.find('./manvolnum').text
+ refnames = xml.findall('./refnamediv/refname')
+ target = man(refnames[0].text, number)
+ if title != refnames[0].text:
+ raise ValueError('refmeta and refnamediv disagree: ' + name)
+ for refname in refnames:
+ assert all(refname not in group
+ for group in rules.values()), "duplicate page name"
+ alias = man(refname.text, number)
+ rulegroup[alias] = target
+ # print('{} => {} [{}]'.format(alias, target, conditional), file=sys.stderr)
+
+def create_rules(*xml_files):
+ " {conditional => {alias-name => source-name}} "
+ rules = collections.defaultdict(dict)
+ for name in xml_files:
+ add_rules(rules, name)
+ return rules
+
+def mjoin(files):
+ return ' \\\n\t'.join(sorted(files) or '#')
+
+def make_makefile(rules):
+ return HEADER + '\n'.join(
+ (CONDITIONAL if conditional else SECTION).format(
+ manpages=mjoin(set(rulegroup.values())),
+ aliases=mjoin(k for k,v in rulegroup.items() if k != v),
+ rules='\n'.join('{}: {}'.format(k,v)
+ for k,v in sorted(rulegroup.items())
+ if k != v),
+ conditional=conditional)
+ for conditional,rulegroup in sorted(rules.items()))
+
+if __name__ == '__main__':
+ rules = create_rules(*sys.argv[1:])
+ print(make_makefile(rules), end='')
diff --git a/man/binfmt.d.xml b/man/binfmt.d.xml
index 07ae0ac231..8c5083cafb 100644
--- a/man/binfmt.d.xml
+++ b/man/binfmt.d.xml
@@ -19,7 +19,7 @@
You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="binfmt.d">
+<refentry id="binfmt.d" conditional='ENABLE_BINFMT'>
<refentryinfo>
<title>binfmt.d</title>
diff --git a/man/bootchart.conf.xml b/man/bootchart.conf.xml
index d2b09638c1..419554e2d1 100644
--- a/man/bootchart.conf.xml
+++ b/man/bootchart.conf.xml
@@ -25,7 +25,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="bootchart.conf">
+<refentry id="bootchart.conf" conditional='ENABLE_BOOTCHART'>
<refentryinfo>
<title>bootchart.conf</title>
<productname>systemd</productname>
diff --git a/man/crypttab.xml b/man/crypttab.xml
index f976bdaa25..a94163b4b2 100644
--- a/man/crypttab.xml
+++ b/man/crypttab.xml
@@ -25,7 +25,7 @@
The Red Hat version has been written by Miloslav Trmac <mitr@redhat.com>.
-->
-<refentry id="crypttab">
+<refentry id="crypttab" conditional='HAVE_LIBCRYPTSETUP'>
<refentryinfo>
<title>crypttab</title>
diff --git a/man/hostnamectl.xml b/man/hostnamectl.xml
index a29d2f5b75..07d363420c 100644
--- a/man/hostnamectl.xml
+++ b/man/hostnamectl.xml
@@ -21,7 +21,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="hostnamectl">
+<refentry id="hostnamectl" conditional='ENABLE_HOSTNAMED'>
<refentryinfo>
<title>hostnamectl</title>
diff --git a/man/localectl.xml b/man/localectl.xml
index 7563eb513c..3e5b812dac 100644
--- a/man/localectl.xml
+++ b/man/localectl.xml
@@ -21,7 +21,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="localectl">
+<refentry id="localectl" conditional='ENABLE_LOCALED'>
<refentryinfo>
<title>localectl</title>
diff --git a/man/loginctl.xml b/man/loginctl.xml
index 90b6f1e110..ba0352cf61 100644
--- a/man/loginctl.xml
+++ b/man/loginctl.xml
@@ -21,7 +21,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="loginctl">
+<refentry id="loginctl" conditional='HAVE_PAM'>
<refentryinfo>
<title>loginctl</title>
diff --git a/man/logind.conf.xml b/man/logind.conf.xml
index b602e2a5f5..d223514e0e 100644
--- a/man/logind.conf.xml
+++ b/man/logind.conf.xml
@@ -22,7 +22,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="logind.conf">
+<refentry id="logind.conf" conditional='HAVE_PAM'>
<refentryinfo>
<title>logind.conf</title>
<productname>systemd</productname>
diff --git a/man/modules-load.d.xml b/man/modules-load.d.xml
index bcc4d12561..ea4f524048 100644
--- a/man/modules-load.d.xml
+++ b/man/modules-load.d.xml
@@ -19,7 +19,7 @@
You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="modules-load.d">
+<refentry id="modules-load.d" conditional='HAVE_KMOD'>
<refentryinfo>
<title>modules-load.d</title>
diff --git a/man/nss-myhostname.xml b/man/nss-myhostname.xml
index bd3f635692..46b7471b06 100644
--- a/man/nss-myhostname.xml
+++ b/man/nss-myhostname.xml
@@ -22,7 +22,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="nss-myhostname">
+<refentry id="nss-myhostname" conditional='HAVE_MYHOSTNAME'>
<refentryinfo>
<title>nss-myhostname</title>
diff --git a/man/sd-login.xml b/man/sd-login.xml
index c02ad0c146..697259564d 100644
--- a/man/sd-login.xml
+++ b/man/sd-login.xml
@@ -21,7 +21,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="sd-login">
+<refentry id="sd-login" conditional='HAVE_PAM'>
<refentryinfo>
<title>sd-login</title>
diff --git a/man/sd-readahead.xml b/man/sd-readahead.xml
index cebaa5da2b..ee7c936813 100644
--- a/man/sd-readahead.xml
+++ b/man/sd-readahead.xml
@@ -21,7 +21,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="sd-daemon">
+<refentry id="sd-daemon" conditional='ENABLE_READAHEAD'>
<refentryinfo>
<title>sd-readahead</title>
diff --git a/man/sd_get_seats.xml b/man/sd_get_seats.xml
index 17adcef745..a300a05751 100644
--- a/man/sd_get_seats.xml
+++ b/man/sd_get_seats.xml
@@ -21,7 +21,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="sd_get_seats">
+<refentry id="sd_get_seats" conditional='HAVE_PAM'>
<refentryinfo>
<title>sd_get_seats</title>
diff --git a/man/sd_login_monitor_new.xml b/man/sd_login_monitor_new.xml
index 35cb6b368b..2c4d05dcb9 100644
--- a/man/sd_login_monitor_new.xml
+++ b/man/sd_login_monitor_new.xml
@@ -21,7 +21,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="sd_login_monitor_new">
+<refentry id="sd_login_monitor_new" conditional='HAVE_PAM'>
<refentryinfo>
<title>sd_login_monitor_new</title>
diff --git a/man/sd_pid_get_session.xml b/man/sd_pid_get_session.xml
index 9517795f78..511fcf3ede 100644
--- a/man/sd_pid_get_session.xml
+++ b/man/sd_pid_get_session.xml
@@ -21,7 +21,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="sd_pid_get_session">
+<refentry id="sd_pid_get_session" conditional='HAVE_PAM'>
<refentryinfo>
<title>sd_pid_get_session</title>
diff --git a/man/sd_readahead.xml b/man/sd_readahead.xml
index a1fc6f178f..39e34698d4 100644
--- a/man/sd_readahead.xml
+++ b/man/sd_readahead.xml
@@ -21,7 +21,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="sd_notify">
+<refentry id="sd_notify" conditional='ENABLE_READAHEAD'>
<refentryinfo>
<title>sd_readahead</title>
diff --git a/man/sd_seat_get_active.xml b/man/sd_seat_get_active.xml
index b1d6d20edf..07e018de13 100644
--- a/man/sd_seat_get_active.xml
+++ b/man/sd_seat_get_active.xml
@@ -21,7 +21,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="sd_seat_get_active">
+<refentry id="sd_seat_get_active" conditional='HAVE_PAM'>
<refentryinfo>
<title>sd_seat_get_active</title>
diff --git a/man/sd_session_is_active.xml b/man/sd_session_is_active.xml
index 1fa7457f78..76f6f9544c 100644
--- a/man/sd_session_is_active.xml
+++ b/man/sd_session_is_active.xml
@@ -21,7 +21,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="sd_session_is_active">
+<refentry id="sd_session_is_active" conditional='HAVE_PAM'>
<refentryinfo>
<title>sd_session_is_active</title>
diff --git a/man/sd_uid_get_state.xml b/man/sd_uid_get_state.xml
index b7bc944b14..cc8fc0f5b6 100644
--- a/man/sd_uid_get_state.xml
+++ b/man/sd_uid_get_state.xml
@@ -21,7 +21,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="sd_uid_get_state">
+<refentry id="sd_uid_get_state" conditional='HAVE_PAM'>
<refentryinfo>
<title>sd_uid_get_state</title>
diff --git a/man/systemd-binfmt.service.xml b/man/systemd-binfmt.service.xml
index 1db735a826..748e41780a 100644
--- a/man/systemd-binfmt.service.xml
+++ b/man/systemd-binfmt.service.xml
@@ -19,7 +19,7 @@
You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="systemd-binfmt.service">
+<refentry id="systemd-binfmt.service" conditional='ENABLE_BINFMT'>
<refentryinfo>
<title>systemd-binfmt.service</title>
diff --git a/man/systemd-bootchart.xml b/man/systemd-bootchart.xml
index 0df7c4bcf4..f31d4a0a6c 100644
--- a/man/systemd-bootchart.xml
+++ b/man/systemd-bootchart.xml
@@ -25,7 +25,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="systemd-bootchart">
+<refentry id="systemd-bootchart" conditional='ENABLE_BOOTCHART'>
<refentryinfo>
<title>systemd-bootchart</title>
<productname>systemd</productname>
diff --git a/man/systemd-cryptsetup-generator.xml b/man/systemd-cryptsetup-generator.xml
index c5f8d2a9d8..292e967bea 100644
--- a/man/systemd-cryptsetup-generator.xml
+++ b/man/systemd-cryptsetup-generator.xml
@@ -19,7 +19,7 @@
You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="systemd-cryptsetup-generator">
+<refentry id="systemd-cryptsetup-generator" conditional='HAVE_LIBCRYPTSETUP'>
<refentryinfo>
<title>systemd-cryptsetup-generator</title>
diff --git a/man/systemd-cryptsetup@.service.xml b/man/systemd-cryptsetup@.service.xml
index abbb9d78f2..6fa2e0cdd0 100644
--- a/man/systemd-cryptsetup@.service.xml
+++ b/man/systemd-cryptsetup@.service.xml
@@ -19,7 +19,7 @@
You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="systemd-cryptsetup@.service">
+<refentry id="systemd-cryptsetup@.service" conditional='HAVE_LIBCRYPTSETUP'>
<refentryinfo>
<title>systemd-cryptsetup@.service</title>
diff --git a/man/systemd-hostnamed.service.xml b/man/systemd-hostnamed.service.xml
index d9c1911018..fe64a62fbe 100644
--- a/man/systemd-hostnamed.service.xml
+++ b/man/systemd-hostnamed.service.xml
@@ -21,7 +21,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="systemd-hostnamed.service">
+<refentry id="systemd-hostnamed.service" conditional='ENABLE_HOSTNAMED'>
<refentryinfo>
<title>systemd-hostnamed.service</title>
diff --git a/man/systemd-journal-gatewayd.service.xml b/man/systemd-journal-gatewayd.service.xml
index 44cd6167f5..0b6fd706a6 100644
--- a/man/systemd-journal-gatewayd.service.xml
+++ b/man/systemd-journal-gatewayd.service.xml
@@ -21,7 +21,7 @@ You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="systemd-journal-gatewayd.service">
+<refentry id="systemd-journal-gatewayd.service" conditional='HAVE_MICROHTTPD'>
<refentryinfo>
<title>systemd-journal-gatewayd.service</title>
diff --git a/man/systemd-localed.service.xml b/man/systemd-localed.service.xml
index 6cefc4265f..1551e6a2ba 100644
--- a/man/systemd-localed.service.xml
+++ b/man/systemd-localed.service.xml
@@ -21,7 +21,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="systemd-localed.service">
+<refentry id="systemd-localed.service" conditional='ENABLE_LOCALED'>
<refentryinfo>
<title>systemd-localed.service</title>
diff --git a/man/systemd-logind.service.xml b/man/systemd-logind.service.xml
index 00f34051a3..523a63b4f3 100644
--- a/man/systemd-logind.service.xml
+++ b/man/systemd-logind.service.xml
@@ -21,7 +21,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="systemd-logind.service">
+<refentry id="systemd-logind.service" conditional='HAVE_PAM'>
<refentryinfo>
<title>systemd-logind.service</title>
diff --git a/man/systemd-modules-load.service.xml b/man/systemd-modules-load.service.xml
index ea10be2234..1d33b8eec6 100644
--- a/man/systemd-modules-load.service.xml
+++ b/man/systemd-modules-load.service.xml
@@ -19,7 +19,7 @@
You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="systemd-modules-load.service">
+<refentry id="systemd-modules-load.service" conditional='HAVE_KMOD'>
<refentryinfo>
<title>systemd-modules-load.service</title>
diff --git a/man/systemd-quotacheck.service.xml b/man/systemd-quotacheck.service.xml
index 2ffee9158e..ff04e582de 100644
--- a/man/systemd-quotacheck.service.xml
+++ b/man/systemd-quotacheck.service.xml
@@ -19,7 +19,7 @@
You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="systemd-quotacheck.service">
+<refentry id="systemd-quotacheck.service" conditional='ENABLE_QUOTACHECK'>
<refentryinfo>
<title>systemd-quotacheck.service</title>
diff --git a/man/systemd-random-seed-load.service.xml b/man/systemd-random-seed-load.service.xml
index 87f563e293..693c008a2d 100644
--- a/man/systemd-random-seed-load.service.xml
+++ b/man/systemd-random-seed-load.service.xml
@@ -19,7 +19,7 @@
You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="systemd-random-seed-load.service">
+<refentry id="systemd-random-seed-load.service" conditional='ENABLE_RANDOMSEED'>
<refentryinfo>
<title>systemd-random-seed-load.service</title>
diff --git a/man/systemd-readahead-replay.service.xml b/man/systemd-readahead-replay.service.xml
index 66d253454b..3d7d9f5424 100644
--- a/man/systemd-readahead-replay.service.xml
+++ b/man/systemd-readahead-replay.service.xml
@@ -21,7 +21,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="systemd-readahead-replay.service">
+<refentry id="systemd-readahead-replay.service" conditional='ENABLE_READAHEAD'>
<refentryinfo>
<title>systemd-readahead-replay.service</title>
diff --git a/man/systemd-timedated.service.xml b/man/systemd-timedated.service.xml
index ea2abc5765..c82c0ff439 100644
--- a/man/systemd-timedated.service.xml
+++ b/man/systemd-timedated.service.xml
@@ -21,7 +21,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="systemd-timedated.service">
+<refentry id="systemd-timedated.service" conditional='ENABLE_TIMEDATED'>
<refentryinfo>
<title>systemd-timedated.service</title>
diff --git a/man/systemd-user-sessions.service.xml b/man/systemd-user-sessions.service.xml
index 9214ec9c35..fc93e2dc2f 100644
--- a/man/systemd-user-sessions.service.xml
+++ b/man/systemd-user-sessions.service.xml
@@ -19,7 +19,7 @@
You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="systemd-user-sessions.service">
+<refentry id="systemd-user-sessions.service" conditional='HAVE_PAM'>
<refentryinfo>
<title>systemd-user-sessions.service</title>
diff --git a/man/systemd-vconsole-setup.service.xml b/man/systemd-vconsole-setup.service.xml
index df1b1a16b6..3c50799cbd 100644
--- a/man/systemd-vconsole-setup.service.xml
+++ b/man/systemd-vconsole-setup.service.xml
@@ -19,7 +19,7 @@
You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="systemd-vconsole-setup.service">
+<refentry id="systemd-vconsole-setup.service" conditional='ENABLE_VCONSOLE'>
<refentryinfo>
<title>systemd-vconsole-setup.service</title>
diff --git a/man/timedatectl.xml b/man/timedatectl.xml
index 4f34bb7b73..a8e78ae8d3 100644
--- a/man/timedatectl.xml
+++ b/man/timedatectl.xml
@@ -21,7 +21,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="timedatectl">
+<refentry id="timedatectl" conditional='ENABLE_TIMEDATED'>
<refentryinfo>
<title>timedatectl</title>
diff --git a/man/vconsole.conf.xml b/man/vconsole.conf.xml
index 45156b7447..f60b571b72 100644
--- a/man/vconsole.conf.xml
+++ b/man/vconsole.conf.xml
@@ -22,7 +22,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
-<refentry id="vconsole.conf">
+<refentry id="vconsole.conf" conditional='ENABLE_VCONSOLE'>
<refentryinfo>
<title>vconsole.conf</title>
<productname>systemd</productname>