xref: /petsc/makefile (revision db97433a4c98a49539edce2d8ab199f8bc331ae0)
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/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
57EPYDOC = ./misc/epydoc-cython.py
58EPYDOC_CONF = ./misc/epydoc.cfg
59EPYDOC_FLAGS =
60EPYDOC_CMD = ${EPYDOC} -v --config=${EPYDOC_CONF} ${EPYDOC_FLAGS}
61EPYDOC_OUT = /tmp/petsc4py-api-doc
62epydoc:
63	${EPYDOC_CMD} -o ${EPYDOC_OUT}
64