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