build-sys: use wildcard glob in update-man-list again

The idea is that after adding a new man page, make update-man-list
will be used to regenerate part of the makefile. So the data already
present in the makefile cannot be used to do that.

Also, renames filter out generated xml files in make-man-rules.py
itself in order to make Makefile.am a bit simpler, and rename files
to dist_files to better reflect new meaning.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2015-06-30 09:56:44 -04:00
parent c9aca73438
commit e4f42f9d1e
2 changed files with 12 additions and 6 deletions

View File

@ -708,10 +708,14 @@ noinst_DATA += \
CLEANFILES += \
man/index.html
XML_GLOB = $(wildcard $(top_srcdir)/man/*.xml)
NON_INDEX_XML_FILES = $(filter-out man/systemd.index.xml,$(XML_FILES))
SOURCE_XML_FILES = ${patsubst %,$(top_srcdir)/%,$(filter-out man/systemd.directives.xml,$(NON_INDEX_XML_FILES))}
update-man-list: $(top_srcdir)/tools/make-man-rules.py $(SOURCE_XML_FILES)
# This target should only be run manually. It recreates Makefile-man.am
# file in the source directory based on all man/*.xml files. Run it after
# adding, removing, or changing the conditional in a man page.
update-man-list: $(top_srcdir)/tools/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"

View File

@ -62,7 +62,7 @@ FOOTER = '''\
# Really, do not edit this file.
EXTRA_DIST += \\
{files}
{dist_files}
'''
def man(page, number):
@ -106,7 +106,7 @@ def create_rules(xml_files):
def mjoin(files):
return ' \\\n\t'.join(sorted(files) or '#')
def make_makefile(rules, files):
def make_makefile(rules, dist_files):
return HEADER + '\n'.join(
(CONDITIONAL if conditional else SECTION).format(
manpages=mjoin(set(rulegroup.values())),
@ -119,9 +119,11 @@ def make_makefile(rules, files):
if k != v),
conditional=conditional)
for conditional,rulegroup in sorted(rules.items())
) + FOOTER.format(files=mjoin(sorted(files)))
) + FOOTER.format(dist_files=mjoin(sorted(dist_files)))
if __name__ == '__main__':
rules = create_rules(sys.argv[1:])
files = (xml(file) for file in sys.argv[1:])
print(make_makefile(rules, files), end='')
dist_files = (xml(file) for file in sys.argv[1:]
if not file.endswith(".directives.xml") and
not file.endswith(".index.xml"))
print(make_makefile(rules, dist_files), end='')