1.PHONY: env help clean html package doctest
2
3docs: html
4
5check: doctest
6
7# The environment is currently required to build the documentation.
8# It is not clean by 'make clean'
9
10PYTHON := python$(PYTHON_VERSION)
11PYTHON_VERSION ?= $(shell $(PYTHON) -c 'import sys; print ("%d.%d" % sys.version_info[:2])')
12BUILD_DIR = $(shell pwd)/../build/lib.$(PYTHON_VERSION)
13
14SPHINXBUILD ?= $$(pwd)/env/bin/sphinx-build
15SPHOPTS = SPHINXBUILD=$(SPHINXBUILD)
16
17html: package src/sqlstate_errors.rst
18	$(MAKE) $(SPHOPTS) -C src $@
19	cp -r src/_build/html .
20
21src/sqlstate_errors.rst: ../psycopg/sqlstate_errors.h $(BUILD_DIR)
22	./env/bin/python src/tools/make_sqlstate_docs.py $< > $@
23
24$(BUILD_DIR):
25	$(MAKE) PYTHON=$(PYTHON) -C .. package
26
27doctest:
28	$(MAKE) PYTHON=$(PYTHON) -C .. package
29	$(MAKE) $(SPHOPTS) -C src $@
30
31clean:
32	$(MAKE) $(SPHOPTS) -C src $@
33	rm -rf html src/sqlstate_errors.rst
34
35env: requirements.txt
36	$(PYTHON) -m venv env
37	./env/bin/pip install -r requirements.txt
38	echo "$$(pwd)/../build/lib.$(PYTHON_VERSION)" \
39		> env/lib/python$(PYTHON_VERSION)/site-packages/psycopg.pth
40