build/docs: move docstring prereq to file targets

Under a sufficiently high level of parallelism [1] there seems to be a
a race condition that allows sphinx-build to start running before the
docstrings are extracted. This change moves the docstring stamp from
the phony targets sphinx-html and sphinx-info to the file targets that
they depend on. I'm not sure why this makes things better, but I am
fairly confident it does not make things worse, and experimentally it
seems to eliminate the race condition.

[1]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=976934
This commit is contained in:
David Bremner 2020-12-09 21:55:38 -04:00
parent 900ee94b0f
commit ed7ca948ae

View file

@ -43,7 +43,7 @@ INFO_INFO_FILES := $(INFO_TEXI_FILES:.texi=.info)
rm -f $@ && gzip --no-name --stdout $^ > $@ rm -f $@ && gzip --no-name --stdout $^ > $@
ifeq ($(WITH_EMACS),1) ifeq ($(WITH_EMACS),1)
$(DOCBUILDDIR)/.roff.stamp sphinx-html sphinx-texinfo: docstring.stamp $(DOCBUILDDIR)/.roff.stamp $(DOCBUILDDIR)/.html.stamp $(DOCBUILDDIR)/.texi.stamp : docstring.stamp
endif endif
sphinx-html: $(DOCBUILDDIR)/.html.stamp sphinx-html: $(DOCBUILDDIR)/.html.stamp