summaryrefslogtreecommitdiff
path: root/Documentation/DocBook/Makefile
diff options
context:
space:
mode:
authorBen Hutchings <ben@decadent.org.uk>2015-08-07 01:36:52 +0300
committerJonathan Corbet <corbet@lwn.net>2015-08-14 20:07:34 +0300
commit9ed71e7ad95eb9885420e8d33f33bd4d49e1b775 (patch)
treebdadbf357b74f4ee4d89d859efe4050abe0bb600 /Documentation/DocBook/Makefile
parent7bbac697e4a6e64cc4bae26d57310c916aa0da7a (diff)
downloadlinux-9ed71e7ad95eb9885420e8d33f33bd4d49e1b775.tar.xz
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>
Diffstat (limited to 'Documentation/DocBook/Makefile')
-rw-r--r--Documentation/DocBook/Makefile8
1 files changed, 5 insertions, 3 deletions
diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile
index b7d2110298de..5e9702194dfe 100644
--- a/Documentation/DocBook/Makefile
+++ b/Documentation/DocBook/Makefile
@@ -60,7 +60,9 @@ mandocs: $(MAN)
installmandocs: mandocs
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
@@ -150,12 +152,12 @@ quiet_cmd_db2html = HTML $@
cp $(PNG-$(basename $(notdir $@))) $(patsubst %.html,%,$@); fi
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
@(which xmlto > /dev/null 2>&1) || \
(echo "*** You need to install xmlto ***"; \
exit 1)
- $(Q)mkdir -p $(obj)/man
+ $(Q)mkdir -p $(obj)/man/$(*F)
$(call cmd,db2man)
@touch $@