xref: /petsc/src/binding/petsc4py/demo/legacy/poisson3d/makefile (revision 5a48edb989d3ea10d6aff6c0e26d581c18691deb)
1*55a74a43SLisandro Dalcin# -*- makefile -*-
2*55a74a43SLisandro Dalcin
3*55a74a43SLisandro DalcinMPIEXEC=
4*55a74a43SLisandro DalcinPYTHON=python
5*55a74a43SLisandro Dalcin
6*55a74a43SLisandro DalcinF2PY = f2py
7*55a74a43SLisandro DalcinF2PY_FLAGS  = --quiet
8*55a74a43SLisandro DalcinF2PY_FLAGS += --noarch --f90flags=''
9*55a74a43SLisandro DalcinF2PY_FLAGS += -DF2PY_REPORT_ON_ARRAY_COPY=1
10*55a74a43SLisandro Dalcin
11*55a74a43SLisandro Dalcin-include ../../../../../petscdir.mk
12*55a74a43SLisandro Dalcin-include ${PETSC_DIR}/lib/petsc/conf/variables
13*55a74a43SLisandro Dalcin
14*55a74a43SLisandro Dalcin.PHONY:test
15*55a74a43SLisandro Dalcintest: run clean
16*55a74a43SLisandro Dalcin
17*55a74a43SLisandro Dalcin.PHONY:run
18*55a74a43SLisandro Dalcinrun: run_py run_cc
19*55a74a43SLisandro Dalcin
20*55a74a43SLisandro DalcinSCRIPT=poisson3d
21*55a74a43SLisandro DalcinMODULE=del2lib
22*55a74a43SLisandro Dalcin.PHONY:run_py
23*55a74a43SLisandro Dalcinrun_py: ${MODULE}.so
24*55a74a43SLisandro Dalcin	${MPIEXEC} ${PYTHON} ${SCRIPT}.py
25*55a74a43SLisandro Dalcin
26*55a74a43SLisandro Dalcin${MODULE}.so: ${MODULE}.f90
27*55a74a43SLisandro Dalcin	${F2PY} ${F2PY_FLAGS} -c $< -m ${MODULE}
28*55a74a43SLisandro Dalcin
29*55a74a43SLisandro DalcinEXECUTABLE=poisson3d
30*55a74a43SLisandro Dalcin.PHONY:run_cc
31*55a74a43SLisandro Dalcinrun_cc: ${EXECUTABLE}.exe
32*55a74a43SLisandro Dalcin	${MPIEXEC} ./${EXECUTABLE}.exe
33*55a74a43SLisandro Dalcin
34*55a74a43SLisandro Dalcin${EXECUTABLE}.exe:
35*55a74a43SLisandro Dalcin	${MAKE} -f makefile.petsc \
36*55a74a43SLisandro Dalcin        PETSC_DIR=${PETSC_DIR} PETSC_ARCH=${PETSC_ARCH}
37*55a74a43SLisandro Dalcin
38*55a74a43SLisandro Dalcin.PHONY:clean
39*55a74a43SLisandro Dalcinclean:
40*55a74a43SLisandro Dalcin	${RM} *.py[co] ${MODULE}*.so ${EXECUTABLE}.exe
41*55a74a43SLisandro Dalcin	${RM} -r __pycache__
42