xref: /petsc/makefile (revision a3f67d9df1d75f0dac74411ba4dcb82b0ba6787b)
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