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