2022-03-10 03:27:31 -05:00
|
|
|
# Builds PEP files to HTML using sphinx
|
2009-01-27 15:05:05 -05:00
|
|
|
|
2023-07-12 11:28:43 -04:00
|
|
|
# You can set these variables from the command line.
|
|
|
|
PYTHON = python3
|
|
|
|
VENVDIR = .venv
|
|
|
|
SPHINXBUILD = PATH=$(VENVDIR)/bin:$$PATH sphinx-build
|
|
|
|
BUILDER = html
|
|
|
|
JOBS = 8
|
|
|
|
SOURCES =
|
|
|
|
OUTPUT_DIR = build
|
|
|
|
SPHINXERRORHANDLING =
|
|
|
|
|
|
|
|
ALLSPHINXOPTS = -b $(BUILDER) -j $(JOBS) \
|
|
|
|
$(SPHINXOPTS) $(SPHINXERRORHANDLING) . $(OUTPUT_DIR) $(SOURCES)
|
2021-01-13 20:40:00 -05:00
|
|
|
|
2023-01-19 09:39:28 -05:00
|
|
|
## html to render PEPs to "pep-NNNN.html" files
|
|
|
|
.PHONY: html
|
|
|
|
html: venv
|
2023-07-12 11:28:43 -04:00
|
|
|
$(SPHINXBUILD) $(ALLSPHINXOPTS)
|
2000-09-06 21:29:32 -04:00
|
|
|
|
2023-02-03 14:34:17 -05:00
|
|
|
## htmlview to open the index page built by the html target in your browser
|
|
|
|
.PHONY: htmlview
|
|
|
|
htmlview: html
|
|
|
|
$(PYTHON) -c "import os, webbrowser; webbrowser.open('file://' + os.path.realpath('build/index.html'))"
|
|
|
|
|
2023-01-19 09:39:28 -05:00
|
|
|
## dirhtml to render PEPs to "index.html" files within "pep-NNNN" directories
|
|
|
|
.PHONY: dirhtml
|
2023-07-12 11:28:43 -04:00
|
|
|
dirhtml: BUILDER = dirhtml
|
2023-01-19 09:39:28 -05:00
|
|
|
dirhtml: venv rss
|
2023-07-12 11:28:43 -04:00
|
|
|
$(SPHINXBUILD) $(ALLSPHINXOPTS)
|
2016-06-23 18:57:01 -04:00
|
|
|
|
2022-10-31 08:34:37 -04:00
|
|
|
## fail-warning to render PEPs to "pep-NNNN.html" files and fail the Sphinx build on any warning
|
2022-10-22 03:43:53 -04:00
|
|
|
.PHONY: fail-warning
|
2022-03-11 23:17:08 -05:00
|
|
|
fail-warning: venv
|
2023-07-12 11:28:43 -04:00
|
|
|
$(SPHINXBUILD) $(ALLSPHINXOPTS) -W
|
2002-05-28 11:30:29 -04:00
|
|
|
|
2022-10-31 08:34:37 -04:00
|
|
|
## check-links to check validity of links within PEP sources
|
2022-10-22 03:43:53 -04:00
|
|
|
.PHONY: check-links
|
2023-07-12 11:28:43 -04:00
|
|
|
check-links: BUILDER = linkcheck
|
2022-03-11 23:17:08 -05:00
|
|
|
check-links: venv
|
2023-07-12 11:28:43 -04:00
|
|
|
$(SPHINXBUILD) $(ALLSPHINXOPTS)
|
2009-01-07 22:53:19 -05:00
|
|
|
|
2022-10-31 08:34:37 -04:00
|
|
|
## rss to generate the peps.rss file
|
2022-10-22 03:43:53 -04:00
|
|
|
.PHONY: rss
|
2022-03-11 23:17:08 -05:00
|
|
|
rss: venv
|
2023-01-21 09:08:38 -05:00
|
|
|
$(VENVDIR)/bin/python3 generate_rss.py -o $(OUTPUT_DIR)
|
2000-11-03 10:42:20 -05:00
|
|
|
|
2022-10-31 08:34:37 -04:00
|
|
|
## clean to remove the venv and build files
|
2022-10-22 03:43:53 -04:00
|
|
|
.PHONY: clean
|
2022-03-11 23:17:08 -05:00
|
|
|
clean: clean-venv
|
2022-07-10 16:41:05 -04:00
|
|
|
-rm -rf build topic
|
2000-11-06 10:30:47 -05:00
|
|
|
|
2022-10-31 08:34:37 -04:00
|
|
|
## clean-venv to remove the venv
|
2022-10-22 03:43:53 -04:00
|
|
|
.PHONY: clean-venv
|
2022-03-11 23:17:08 -05:00
|
|
|
clean-venv:
|
|
|
|
rm -rf $(VENVDIR)
|
2021-06-08 19:11:26 -04:00
|
|
|
|
2022-10-31 08:34:37 -04:00
|
|
|
## venv to create a venv with necessary tools
|
2022-10-22 03:43:53 -04:00
|
|
|
.PHONY: venv
|
2022-03-11 23:17:08 -05:00
|
|
|
venv:
|
|
|
|
@if [ -d $(VENVDIR) ] ; then \
|
|
|
|
echo "venv already exists."; \
|
|
|
|
echo "To recreate it, remove it first with \`make clean-venv'."; \
|
|
|
|
else \
|
|
|
|
$(PYTHON) -m venv $(VENVDIR); \
|
2022-03-28 02:11:30 -04:00
|
|
|
$(VENVDIR)/bin/python3 -m pip install -U pip wheel; \
|
2022-03-11 23:17:08 -05:00
|
|
|
$(VENVDIR)/bin/python3 -m pip install -r requirements.txt; \
|
|
|
|
echo "The venv has been created in the $(VENVDIR) directory"; \
|
|
|
|
fi
|
|
|
|
|
2022-10-31 08:34:37 -04:00
|
|
|
## lint to lint all the files
|
2022-10-22 03:43:53 -04:00
|
|
|
.PHONY: lint
|
2022-03-11 23:17:08 -05:00
|
|
|
lint: venv
|
|
|
|
$(VENVDIR)/bin/python3 -m pre_commit --version > /dev/null || $(VENVDIR)/bin/python3 -m pip install pre-commit
|
|
|
|
$(VENVDIR)/bin/python3 -m pre_commit run --all-files
|
|
|
|
|
2022-10-31 08:34:37 -04:00
|
|
|
## test to test the Sphinx extensions for PEPs
|
2022-10-22 03:43:53 -04:00
|
|
|
.PHONY: test
|
2022-04-26 15:07:20 -04:00
|
|
|
test: venv
|
|
|
|
$(VENVDIR)/bin/python3 -bb -X dev -W error -m pytest
|
|
|
|
|
2022-10-31 08:34:37 -04:00
|
|
|
## spellcheck to check spelling
|
2022-10-22 03:43:53 -04:00
|
|
|
.PHONY: spellcheck
|
2022-03-11 23:17:08 -05:00
|
|
|
spellcheck: venv
|
|
|
|
$(VENVDIR)/bin/python3 -m pre_commit --version > /dev/null || $(VENVDIR)/bin/python3 -m pip install pre-commit
|
|
|
|
$(VENVDIR)/bin/python3 -m pre_commit run --all-files --hook-stage manual codespell
|
2022-10-31 08:34:37 -04:00
|
|
|
|
2023-01-19 09:39:28 -05:00
|
|
|
## render (deprecated: use 'make html' alias instead)
|
|
|
|
.PHONY: render
|
|
|
|
render: html
|
|
|
|
@echo "\033[0;33mWarning:\033[0;31m 'make render' \033[0;33mis deprecated, use\033[0;32m 'make html' \033[0;33malias instead\033[0m"
|
|
|
|
|
|
|
|
## pages (deprecated: use 'make dirhtml' alias instead)
|
|
|
|
.PHONY: pages
|
|
|
|
pages: dirhtml
|
|
|
|
@echo "\033[0;33mWarning:\033[0;31m 'make pages' \033[0;33mis deprecated, use\033[0;32m 'make dirhtml' \033[0;33malias instead\033[0m"
|
|
|
|
|
2022-10-31 08:34:37 -04:00
|
|
|
.PHONY: help
|
|
|
|
help : Makefile
|
|
|
|
@echo "Please use \`make <target>' where <target> is one of"
|
|
|
|
@sed -n 's/^##//p' $<
|