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