1.PHONY: default config src build test install uninstall sdist clean distclean srcclean fullclean 2 3PYTHON = python 4 5default: build 6 7config: 8 ${PYTHON} setup.py config ${CONFIGOPT} 9 10src: src/petsc4py_PETSc.c 11 12build: 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_DIR = src/PETSc 50CY_SRC_PXD = $(wildcard src/include/petsc4py/*.pxd) 51CY_SRC_PXI = $(wildcard src/PETSc/*.pxi) 52CY_SRC_PYX = $(wildcard src/PETSc/*.pyx) 53src/petsc4py_PETSc.c: ${CY_SRC_PXD} ${CY_SRC_PXI} ${CY_SRC_PYX} 54 cd src && ${CYTHON} ${CYTHON_FLAGS} ${CYTHON_INCLUDE} petsc4py.PETSc.pyx -o petsc4py_PETSc.c 55 cd src && mv petsc4py_PETSc_api.h petsc4py_PETSc.h include/petsc4py 56