提交 9ed71e7a 编写于 作者: B Ben Hutchings 提交者: Jonathan Corbet

DocBook: Fix non-determinstic installation of duplicate man pages

Some kernel-doc sections are included in multiple DocBook files.  This
means the mandocs target will generate the same manual page multiple
times with different metadata (author name/address and manual title,
taken from the including DocBook file).  If it's invoked in a parallel
build, the output is non-determinstic.

Build the manual pages in a separate subdirectory per DocBook file,
then sort and de-duplicate when installing them (which is serialised).
Signed-off-by: NBen Hutchings <ben@decadent.org.uk>
[jc: fixed conflicts with the docs tree]
Signed-off-by: NJonathan Corbet <corbet@lwn.net>
上级 7bbac697
...@@ -60,7 +60,9 @@ mandocs: $(MAN) ...@@ -60,7 +60,9 @@ mandocs: $(MAN)
installmandocs: mandocs installmandocs: mandocs
mkdir -p /usr/local/man/man9/ mkdir -p /usr/local/man/man9/
install -m 644 $(obj)/man/*.9.gz /usr/local/man/man9/ find $(obj)/man -name '*.9.gz' -printf '%h %f\n' | \
sort -k 2 -k 1 | uniq -f 1 | sed -e 's: :/:' | \
xargs install -m 644 -t /usr/local/man/man9/
### ###
#External programs used #External programs used
...@@ -150,12 +152,12 @@ quiet_cmd_db2html = HTML $@ ...@@ -150,12 +152,12 @@ quiet_cmd_db2html = HTML $@
cp $(PNG-$(basename $(notdir $@))) $(patsubst %.html,%,$@); fi cp $(PNG-$(basename $(notdir $@))) $(patsubst %.html,%,$@); fi
quiet_cmd_db2man = MAN $@ quiet_cmd_db2man = MAN $@
cmd_db2man = if grep -q refentry $<; then xmlto man $(XMLTOFLAGS) -o $(obj)/man $< ; fi cmd_db2man = if grep -q refentry $<; then xmlto man $(XMLTOFLAGS) -o $(obj)/man/$(*F) $< ; fi
%.9 : %.xml %.9 : %.xml
@(which xmlto > /dev/null 2>&1) || \ @(which xmlto > /dev/null 2>&1) || \
(echo "*** You need to install xmlto ***"; \ (echo "*** You need to install xmlto ***"; \
exit 1) exit 1)
$(Q)mkdir -p $(obj)/man $(Q)mkdir -p $(obj)/man/$(*F)
$(call cmd,db2man) $(call cmd,db2man)
@touch $@ @touch $@
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册