1.PHONY: default config src build test install uninstall sdist clean distclean srcclean fullclean cython epydoc 2 3PYTHON = python 4 5default: build 6 7config: 8 ${PYTHON} setup.py config ${CONFIGOPT} 9 10src: src/PETSc.c 11 12build: src 13 ${PYTHON} setup.py build ${BUILDOPT} 14 15test: 16 ${MPIEXEC} ${PYTHON} test/runtests.py < /dev/null 17 18install: build 19 ${PYTHON} setup.py install ${INSTALLOPT} --home=${HOME} 20 21uninstall: 22 -${RM} -r ${HOME}/lib/python/petsc4py 23 -${RM} -r ${HOME}/lib/python/petsc4py-*-py*.egg-info 24 25sdist: 26 ${PYTHON} setup.py sdist ${SDISTOPT} 27 28 29clean: 30 ${PYTHON} setup.py clean --all 31 -${RM} _configtest.* *.py[co] 32 33distclean: clean 34 -${RM} -r build *.py[co] 35 -${RM} -r MANIFEST dist petsc4py.egg-info 36 -${RM} `find . -name '*~'` 37 -${RM} `find . -name '*.py[co]'` 38 39srcclean: 40 -${RM} src/petsc4py_PETSc.c 41 -${RM} src/include/petsc4py/petsc4py_PETSc.h 42 -${RM} src/include/petsc4py/petsc4py_PETSc_api.h 43 44fullclean: distclean srcclean 45 46CYTHON = cython 47CYTHON_FLAGS = --cleanup 9 48CYTHON_INCLUDE = -I. -Iinclude 49CY_SRC_PXD = $(wildcard src/include/petsc4py/*.pxd) 50CY_SRC_PXI = $(wildcard src/PETSc/*.pxi) 51CY_SRC_PYX = $(wildcard src/PETSc/*.pyx) 52src/PETSc.c: src/petsc4py_PETSc.c 53src/petsc4py_PETSc.c: ${CY_SRC_PXD} ${CY_SRC_PXI} ${CY_SRC_PYX} 54 ${CYTHON} ${CYTHON_FLAGS} ${CYTHON_INCLUDE} -w src petsc4py.PETSc.pyx -o petsc4py_PETSc.c 55 mv src/petsc4py_PETSc_api.h src/petsc4py_PETSc.h src/include/petsc4py 56 57cython: 58 ${PYTHON} ./conf/cythonize.py 59epydoc: 60 ${PYTHON} ./conf/epydocify.py -o /tmp/petsc4py-api-doc 61