summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Turner <9087854+AA-Turner@users.noreply.github.com>2024-08-17 20:58:06 (GMT)
committerGitHub <noreply@github.com>2024-08-17 20:58:06 (GMT)
commit79c542b5cc774ba758acc2b2e3b6556934190e34 (patch)
treeebbc4e39fb0171f7a5eaffb784d3806d93ef3010
parentd061ffea7b408861d0a9d311e92c363da284971d (diff)
downloadcpython-79c542b5cc774ba758acc2b2e3b6556934190e34.zip
cpython-79c542b5cc774ba758acc2b2e3b6556934190e34.tar.gz
cpython-79c542b5cc774ba758acc2b2e3b6556934190e34.tar.bz2
Docs: Run ``latexmk`` in parallel when creating PDFs (#123113)
-rw-r--r--Doc/Makefile49
1 files changed, 32 insertions, 17 deletions
diff --git a/Doc/Makefile b/Doc/Makefile
index 9ddf97f..8020884 100644
--- a/Doc/Makefile
+++ b/Doc/Makefile
@@ -188,54 +188,69 @@ dist:
mkdir -p dist
# archive the HTML
- make html
+ @echo "Building HTML..."
+ $(MAKE) html
cp -pPR build/html dist/python-$(DISTVERSION)-docs-html
tar -C dist -cf dist/python-$(DISTVERSION)-docs-html.tar python-$(DISTVERSION)-docs-html
bzip2 -9 -k dist/python-$(DISTVERSION)-docs-html.tar
(cd dist; zip -q -r -9 python-$(DISTVERSION)-docs-html.zip python-$(DISTVERSION)-docs-html)
rm -r dist/python-$(DISTVERSION)-docs-html
rm dist/python-$(DISTVERSION)-docs-html.tar
+ @echo "Build finished and archived!"
# archive the text build
- make text
+ @echo "Building text..."
+ $(MAKE) text
cp -pPR build/text dist/python-$(DISTVERSION)-docs-text
tar -C dist -cf dist/python-$(DISTVERSION)-docs-text.tar python-$(DISTVERSION)-docs-text
bzip2 -9 -k dist/python-$(DISTVERSION)-docs-text.tar
(cd dist; zip -q -r -9 python-$(DISTVERSION)-docs-text.zip python-$(DISTVERSION)-docs-text)
rm -r dist/python-$(DISTVERSION)-docs-text
rm dist/python-$(DISTVERSION)-docs-text.tar
+ @echo "Build finished and archived!"
# archive the A4 latex
+ @echo "Building LaTeX (A4 paper)..."
rm -rf build/latex
- make latex PAPER=a4
- -sed -i 's/makeindex/makeindex -q/' build/latex/Makefile
- (cd build/latex; make clean && make all-pdf && make FMT=pdf zip bz2)
+ $(MAKE) latex PAPER=a4
+ # remove zip & bz2 dependency on all-pdf,
+ # as otherwise the full latexmk process is run twice.
+ # ($$ is needed to escape the $; https://www.gnu.org/software/make/manual/make.html#Basics-of-Variable-References)
+ -sed -i 's/: all-$$(FMT)/:/' build/latex/Makefile
+ (cd build/latex; $(MAKE) clean && $(MAKE) --jobs=$((`nproc`+1)) --output-sync LATEXMKOPTS='-quiet' all-pdf && $(MAKE) FMT=pdf zip bz2)
cp build/latex/docs-pdf.zip dist/python-$(DISTVERSION)-docs-pdf-a4.zip
cp build/latex/docs-pdf.tar.bz2 dist/python-$(DISTVERSION)-docs-pdf-a4.tar.bz2
+ @echo "Build finished and archived!"
# archive the letter latex
+ @echo "Building LaTeX (US paper)..."
rm -rf build/latex
- make latex PAPER=letter
- -sed -i 's/makeindex/makeindex -q/' build/latex/Makefile
- (cd build/latex; make clean && make all-pdf && make FMT=pdf zip bz2)
+ $(MAKE) latex PAPER=letter
+ -sed -i 's/: all-$$(FMT)/:/' build/latex/Makefile
+ (cd build/latex; $(MAKE) clean && $(MAKE) --jobs=$((`nproc`+1)) --output-sync LATEXMKOPTS='-quiet' all-pdf && $(MAKE) FMT=pdf zip bz2)
cp build/latex/docs-pdf.zip dist/python-$(DISTVERSION)-docs-pdf-letter.zip
cp build/latex/docs-pdf.tar.bz2 dist/python-$(DISTVERSION)-docs-pdf-letter.tar.bz2
+ @echo "Build finished and archived!"
# copy the epub build
+ @echo "Building EPUB..."
rm -rf build/epub
- make epub
+ $(MAKE) epub
cp -pPR build/epub/Python.epub dist/python-$(DISTVERSION)-docs.epub
+ @echo "Build finished and archived!"
# archive the texinfo build
+ @echo "Building Texinfo..."
rm -rf build/texinfo
- make texinfo
- make info --directory=build/texinfo
+ $(MAKE) texinfo
+ $(MAKE) info --directory=build/texinfo
cp -pPR build/texinfo dist/python-$(DISTVERSION)-docs-texinfo
tar -C dist -cf dist/python-$(DISTVERSION)-docs-texinfo.tar python-$(DISTVERSION)-docs-texinfo
bzip2 -9 -k dist/python-$(DISTVERSION)-docs-texinfo.tar
(cd dist; zip -q -r -9 python-$(DISTVERSION)-docs-texinfo.zip python-$(DISTVERSION)-docs-texinfo)
rm -r dist/python-$(DISTVERSION)-docs-texinfo
rm dist/python-$(DISTVERSION)-docs-texinfo.tar
+ @echo "Build finished and archived!"
.PHONY: _ensure-package
_ensure-package: venv
@@ -247,11 +262,11 @@ _ensure-package: venv
.PHONY: _ensure-pre-commit
_ensure-pre-commit:
- make _ensure-package PACKAGE=pre-commit
+ $(MAKE) _ensure-package PACKAGE=pre-commit
.PHONY: _ensure-sphinx-autobuild
_ensure-sphinx-autobuild:
- make _ensure-package PACKAGE=sphinx-autobuild
+ $(MAKE) _ensure-package PACKAGE=sphinx-autobuild
.PHONY: check
check: _ensure-pre-commit
@@ -271,12 +286,12 @@ serve:
# for development releases: always build
.PHONY: autobuild-dev
autobuild-dev:
- make dist SPHINXOPTS='$(SPHINXOPTS) -Ea -A daily=1'
+ $(MAKE) dist SPHINXOPTS='$(SPHINXOPTS) -Ea -A daily=1'
# for quick rebuilds (HTML only)
.PHONY: autobuild-dev-html
autobuild-dev-html:
- make html SPHINXOPTS='$(SPHINXOPTS) -Ea -A daily=1'
+ $(MAKE) html SPHINXOPTS='$(SPHINXOPTS) -Ea -A daily=1'
# for stable releases: only build if not in pre-release stage (alpha, beta)
# release candidate downloads are okay, since the stable tree can be in that stage
@@ -286,7 +301,7 @@ autobuild-stable:
echo "Not building; $(DISTVERSION) is not a release version."; \
exit 1;; \
esac
- @make autobuild-dev
+ @$(MAKE) autobuild-dev
.PHONY: autobuild-stable-html
autobuild-stable-html:
@@ -294,4 +309,4 @@ autobuild-stable-html:
echo "Not building; $(DISTVERSION) is not a release version."; \
exit 1;; \
esac
- @make autobuild-dev-html
+ @$(MAKE) autobuild-dev-html