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