1.PHONY: default \ 2 src cython \ 3 config build test install \ 4 docs sphinx 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 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: 64 mkdir -p build/doctrees docs/html/man 65 ${SPHINXBUILD} -d build/doctrees ${SPHINXOPTS} \ 66 docs/source docs/html/man 67 68EPYDOCBUILD = ${PYTHON} ./conf/epydocify.py 69EPYDOCOPTS = 70epydoc: 71 mkdir -p docs/html/api 72 ${EPYDOCBUILD} ${EPYDOCOPTS} -o docs/html/api 73 74 75sdist: src docs 76 ${PYTHON} setup.py sdist ${SDISTOPT} 77