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 = $(shell command -v rst2html || command -v rst2html.py || false) 63RST2HTMLOPTS = --input-encoding=utf-8 64RST2HTMLOPTS += --no-compact-lists 65RST2HTMLOPTS += --cloak-email-addresses 66rst2html: 67 ${RST2HTML} ${RST2HTMLOPTS} ./LICENSE.rst > docs/LICENSE.html 68 ${RST2HTML} ${RST2HTMLOPTS} ./CHANGES.rst > docs/CHANGES.html 69 ${RST2HTML} ${RST2HTMLOPTS} docs/index.rst > docs/index.html 70 71SPHINXBUILD = sphinx-build 72SPHINXOPTS = 73sphinx: sphinx-html sphinx-pdf 74sphinx-html: 75 ${PYTHON} -c 'import ${package}.${MODULE}' 76 mkdir -p build/doctrees docs/usrman 77 ${SPHINXBUILD} -b html -d build/doctrees ${SPHINXOPTS} \ 78 docs/source docs/usrman 79sphinx-pdf: 80 ${PYTHON} -c 'import ${package}.${MODULE}' 81 mkdir -p build/doctrees build/latex 82 ${SPHINXBUILD} -b latex -d build/doctrees ${SPHINXOPTS} \ 83 docs/source build/latex 84 ${MAKE} -C build/latex all-pdf > /dev/null 85 mv build/latex/*.pdf docs/ 86 87EPYDOCBUILD = ${PYTHON} ./conf/epydocify.py 88EPYDOCOPTS = 89epydoc: epydoc-html 90epydoc-html: 91 ${PYTHON} -c 'import ${package}.${MODULE}' 92 mkdir -p docs/apiref 93 ${EPYDOCBUILD} ${EPYDOCOPTS} -o docs/apiref 94 95# ---- 96