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: Ben Hutchings <ben@decadent.org.uk> [jc: fixed conflicts with the docs tree] Signed-off-by: Jonathan Corbet <corbet@lwn.net>
This commit is contained in:
Родитель
7bbac697e4
Коммит
9ed71e7ad9
|
@ -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 $@
|
||||||
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 $@
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче