xref: /petsc/makefile (revision f25b7325a5be660a80f96dc202fe8a4d021abf65)
1# ---
2
3package = petsc4py
4MODULE  = PETSc
5
6# ---
7
8.PHONY: default \
9	config build test install sdist \
10	docs rst2html sphinx sphinx-html sphinx-pdf epydoc epydoc-html \
11	clean distclean srcclean docsclean fullclean uninstall
12
13PYTHON = python
14
15default: build
16
17config:
18	${PYTHON} setup.py config ${CONFIGOPT}
19
20build:
21	${PYTHON} setup.py build ${BUILDOPT}
22
23test:
24	${MPIEXEC} ${VALGRIND} ${PYTHON} test/runtests.py < /dev/null
25
26install: build
27	${PYTHON} setup.py install --user ${INSTALLOPT}
28
29sdist: docs
30	${PYTHON} setup.py sdist ${SDISTOPT}
31
32clean:
33	${PYTHON} setup.py clean --all
34
35distclean: clean
36	-${RM} -r build  _configtest.* *.py[co]
37	-${RM} -r MANIFEST dist ${package}.egg-info
38	-${RM} -r `find . -name '__pycache__'`
39	-${RM} `find . -name '*.py[co]'`
40	-${RM} `find . -name '*~'`
41
42srcclean:
43	-${RM} src/${package}.${MODULE}.c
44	-${RM} src/lib${package}/lib${package}.[ch]
45	-${RM} src/include/${package}/${package}.${MODULE}.h
46	-${RM} src/include/${package}/${package}.${MODULE}_api.h
47
48fullclean: distclean srcclean docsclean
49
50uninstall:
51	-${RM} -r $(shell ${PYTHON} -m site --user-site)/${package}
52	-${RM} -r $(shell ${PYTHON} -m site --user-site)/${package}-*-py*.egg-info
53
54# ----
55
56docs: rst2html sphinx epydoc
57
58docsclean:
59	-${RM} docs/*.html docs/*.pdf
60	-${RM} -r docs/usrman docs/apiref
61
62RST2HTML = rst2html
63RST2HTMLOPTS = --no-compact-lists --cloak-email-addresses
64rst2html:
65	${RST2HTML} ${RST2HTMLOPTS} docs/index.rst > docs/index.html
66	${RST2HTML} ${RST2HTMLOPTS} LICENSE.txt    > docs/LICENSE.html
67	${RST2HTML} ${RST2HTMLOPTS} HISTORY.txt    > docs/HISTORY.html
68
69SPHINXBUILD = sphinx-build
70SPHINXOPTS  =
71sphinx: sphinx-html sphinx-pdf
72sphinx-html:
73	${PYTHON} -c 'import ${package}.${MODULE}'
74	mkdir -p build/doctrees docs/usrman
75	${SPHINXBUILD} -b html -d build/doctrees ${SPHINXOPTS} \
76	docs/source docs/usrman
77sphinx-pdf:
78	${PYTHON} -c 'import ${package}.${MODULE}'
79	mkdir -p build/doctrees build/latex
80	${SPHINXBUILD} -b latex -d build/doctrees ${SPHINXOPTS} \
81	docs/source build/latex
82	${MAKE} -C build/latex all-pdf > /dev/null
83	mv build/latex/*.pdf docs/
84
85EPYDOCBUILD = ${PYTHON} ./conf/epydocify.py
86EPYDOCOPTS  =
87epydoc: epydoc-html
88epydoc-html:
89	${PYTHON} -c 'import ${package}.${MODULE}'
90	mkdir -p docs/apiref
91	${EPYDOCBUILD} ${EPYDOCOPTS} -o docs/apiref
92
93# ----
94