diff options
author | Ben Gamari <ben@smart-cactus.org> | 2015-10-10 15:12:59 +0200 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2015-10-10 15:41:05 +0200 |
commit | fa5eabec43a71546afba6dec7508ae5afb23b805 (patch) | |
tree | 8166b32bcb05923c75d9428dc5f45d07353b629c /rules/sphinx.mk | |
parent | 840df33685e8c746ade4b9d4d0eb7c764a773e48 (diff) | |
download | haskell-fa5eabec43a71546afba6dec7508ae5afb23b805.tar.gz |
sphinx: Don't share doctrees between targets
Sphinx may trip over itself when multiple instances are run in parallel.
Fixes #10950.
Diffstat (limited to 'rules/sphinx.mk')
-rw-r--r-- | rules/sphinx.mk | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/rules/sphinx.mk b/rules/sphinx.mk index 87b57d6e07..5a3c7ce747 100644 --- a/rules/sphinx.mk +++ b/rules/sphinx.mk @@ -13,13 +13,16 @@ # Build Sphinx documentation +# We are careful not to use the same directory the doctree files for the +# various Sphinx targets as make may run them in parallel (see #10950). + define sphinx $(call trace, sphinx($1,$2)) $(call profStart, sphinx($1,$2)) # $1 = dir # $2 = docname -$(call clean-target,$1,sphinx,$1/.doctrees $1/build-html/ $1/build-pdf $1/$2.pdf) +$(call clean-target,$1,sphinx,$1/.doctrees-html/ $1/.doctrees-pdf/ $1/build-html/ $1/build-pdf/ $1/$2.pdf) # empty "all_$1" target just in case we're not building docs at all $(call all-target,$1,) @@ -37,7 +40,7 @@ html : html_$1 ifneq "$$(BINDIST)" "YES" $1/build-html/$2/index.html: $1/conf.py $$($1_RST_SOURCES) - $(SPHINXBUILD) -b html -d $1/.doctrees $(SPHINXOPTS) $1 $1/build-html/$2 + $(SPHINXBUILD) -b html -d $1/.doctrees-html $(SPHINXOPTS) $1 $1/build-html/$2 endif @@ -54,7 +57,7 @@ pdf : pdf_$1 ifneq "$$(BINDIST)" "YES" $1/$2.pdf: $$($1_RST_SOURCES) - $(SPHINXBUILD) -b latex -d $1/.doctrees $(SPHINXOPTS) $1 $1/build-pdf/$2 + $(SPHINXBUILD) -b latex -d $1/.doctrees-pdf $(SPHINXOPTS) $1 $1/build-pdf/$2 cd $1/build-pdf/$2 ; xelatex $2.tex cd $1/build-pdf/$2 ; xelatex $2.tex cp $1/build-pdf/$2/$2.pdf $1/$2.pdf |