Skip to content

Commit 9f95c7a

Browse files
madscientistgitster
authored andcommitted
Makefile: avoid multiple patterns when recipes generate one file
A GNU make pattern rule with multiple targets has always meant that a single invocation of the recipe will build all the targets. However in older versions of GNU make a recipe that did not really build all the targets would be tolerated. Starting with GNU make 4.4 this behavior is deprecated and pattern rules are expected to generate files to match all the patterns. If not all targets are created then GNU make will not consider any target up to date and will re-run the recipe when it is run again. Modify Documentation/Makefile to split the man page-creating pattern rule into a separate pattern rule for each pattern. Reported-by: Alexander Kanavin <[email protected]> Signed-off-by: Paul Smith <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent e7e5c6f commit 9f95c7a

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

Documentation/Makefile

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -351,8 +351,16 @@ $(OBSOLETE_HTML): %.html : %.txto $(ASCIIDOC_DEPS)
351351
manpage-base-url.xsl: manpage-base-url.xsl.in
352352
$(QUIET_GEN)sed "s|@@MAN_BASE_URL@@|$(MAN_BASE_URL)|" $< > $@
353353

354-
%.1 %.5 %.7 : %.xml manpage-base-url.xsl $(wildcard manpage*.xsl)
355-
$(QUIET_XMLTO)$(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
354+
355+
manpage-prereqs := manpage-base-url.xsl $(wildcard manpage*.xsl)
356+
manpage-cmd = $(QUIET_XMLTO)$(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
357+
358+
%.1 : %.xml $(manpage-prereqs)
359+
$(manpage-cmd)
360+
%.5 : %.xml $(manpage-prereqs)
361+
$(manpage-cmd)
362+
%.7 : %.xml $(manpage-prereqs)
363+
$(manpage-cmd)
356364

357365
%.xml : %.txt $(ASCIIDOC_DEPS)
358366
$(QUIET_ASCIIDOC)$(TXT_TO_XML) -d manpage -o $@ $<

0 commit comments

Comments
 (0)