1*5808f684SSatish Balay.PHONY: default 2*5808f684SSatish Balaydefault: build 3*5808f684SSatish Balay 4*5808f684SSatish Balaypackage = petsc4py 5*5808f684SSatish BalayMODULE = PETSc 6*5808f684SSatish Balay 7*5808f684SSatish BalayPYTHON = python$(py) 8*5808f684SSatish BalayMPIEXEC = mpiexec 9*5808f684SSatish Balay 10*5808f684SSatish Balay# ---- 11*5808f684SSatish Balay 12*5808f684SSatish Balay.PHONY: config build test 13*5808f684SSatish Balayconfig: 14*5808f684SSatish Balay ${PYTHON} setup.py config ${CONFIGOPT} 15*5808f684SSatish Balaybuild: 16*5808f684SSatish Balay ${PYTHON} setup.py build ${BUILDOPT} 17*5808f684SSatish Balaytest: 18*5808f684SSatish Balay ${VALGRIND} ${PYTHON} ${PWD}/test/runtests.py 19*5808f684SSatish Balaytest-%: 20*5808f684SSatish Balay ${MPIEXEC} -n $* ${VALGRIND} ${PYTHON} ${PWD}/test/runtests.py 21*5808f684SSatish Balay 22*5808f684SSatish Balay.PHONY: srcbuild srcclean 23*5808f684SSatish Balaysrcbuild: 24*5808f684SSatish Balay ${PYTHON} setup.py build_src ${SRCOPT} 25*5808f684SSatish Balaysrcclean: 26*5808f684SSatish Balay -${RM} src/${package}.${MODULE}.c 27*5808f684SSatish Balay -${RM} src/include/${package}/${package}.${MODULE}.h 28*5808f684SSatish Balay -${RM} src/include/${package}/${package}.${MODULE}_api.h 29*5808f684SSatish Balay -${RM} src/lib${package}/lib${package}.[ch] 30*5808f684SSatish Balay 31*5808f684SSatish Balay.PHONY: clean distclean fullclean 32*5808f684SSatish Balayclean: 33*5808f684SSatish Balay ${PYTHON} setup.py clean --all 34*5808f684SSatish Balaydistclean: clean 35*5808f684SSatish Balay -${RM} -r build _configtest.* *.py[co] 36*5808f684SSatish Balay -${RM} -r MANIFEST dist ${package}.egg-info 37*5808f684SSatish Balay -${RM} -r `find . -name '__pycache__'` 38*5808f684SSatish Balay -${RM} `find . -name '*.py[co]'` 39*5808f684SSatish Balayfullclean: distclean srcclean docsclean 40*5808f684SSatish Balay -find . -name '*~' -exec rm -f {} ';' 41*5808f684SSatish Balay 42*5808f684SSatish Balay# ---- 43*5808f684SSatish Balay 44*5808f684SSatish Balay.PHONY: install uninstall 45*5808f684SSatish Balayinstall: build 46*5808f684SSatish Balay ${PYTHON} setup.py install --prefix='' --user ${INSTALLOPT} 47*5808f684SSatish Balayuninstall: 48*5808f684SSatish Balay -${RM} -r $(shell ${PYTHON} -m site --user-site)/${package} 49*5808f684SSatish Balay -${RM} -r $(shell ${PYTHON} -m site --user-site)/${package}-*-py*.egg-info 50*5808f684SSatish Balay 51*5808f684SSatish Balay# ---- 52*5808f684SSatish Balay 53*5808f684SSatish Balay.PHONY: docs docs-html docs-pdf docs-misc 54*5808f684SSatish Balaydocs: docs-html docs-pdf docs-misc 55*5808f684SSatish Balaydocs-html: rst2html sphinx-html epydoc-html 56*5808f684SSatish Balaydocs-pdf: sphinx-pdf epydoc-pdf 57*5808f684SSatish Balaydocs-misc: sphinx-man sphinx-info 58*5808f684SSatish Balay 59*5808f684SSatish BalayRST2HTML = $(shell command -v rst2html || command -v rst2html.py || false) 60*5808f684SSatish BalayRST2HTMLOPTS = --input-encoding=utf-8 61*5808f684SSatish BalayRST2HTMLOPTS += --no-compact-lists 62*5808f684SSatish BalayRST2HTMLOPTS += --cloak-email-addresses 63*5808f684SSatish Balay.PHONY: rst2html 64*5808f684SSatish Balayrst2html: 65*5808f684SSatish Balay ${RST2HTML} ${RST2HTMLOPTS} ./LICENSE.rst > docs/LICENSE.html 66*5808f684SSatish Balay ${RST2HTML} ${RST2HTMLOPTS} ./CHANGES.rst > docs/CHANGES.html 67*5808f684SSatish Balay ${RST2HTML} ${RST2HTMLOPTS} docs/index.rst > docs/index.html 68*5808f684SSatish Balay 69*5808f684SSatish BalaySPHINXBUILD = sphinx-build 70*5808f684SSatish BalaySPHINXOPTS = 71*5808f684SSatish Balay.PHONY: sphinx sphinx-html sphinx-pdf sphinx-man sphinx-info 72*5808f684SSatish Balaysphinx: sphinx-html sphinx-pdf sphinx-man sphinx-info 73*5808f684SSatish Balaysphinx-html: 74*5808f684SSatish Balay mkdir -p build/doctrees docs/usrman 75*5808f684SSatish Balay ${SPHINXBUILD} -b html -d build/doctrees ${SPHINXOPTS} \ 76*5808f684SSatish Balay docs/source docs/usrman 77*5808f684SSatish Balay ${RM} docs/usrman/.buildinfo 78*5808f684SSatish Balaysphinx-pdf: 79*5808f684SSatish Balay mkdir -p build/doctrees build/latex 80*5808f684SSatish Balay ${SPHINXBUILD} -b latex -d build/doctrees ${SPHINXOPTS} \ 81*5808f684SSatish Balay docs/source build/latex 82*5808f684SSatish Balay ${MAKE} -C build/latex all-pdf > /dev/null 83*5808f684SSatish Balay mv build/latex/*.pdf docs/ 84*5808f684SSatish Balaysphinx-man: 85*5808f684SSatish Balay mkdir -p build/doctrees build/man 86*5808f684SSatish Balay ${SPHINXBUILD} -b man -d build/doctrees ${SPHINXOPTS} \ 87*5808f684SSatish Balay docs/source build/man 88*5808f684SSatish Balay mv build/man/*.[137] docs/ 89*5808f684SSatish Balaysphinx-info: 90*5808f684SSatish Balay mkdir -p build/doctrees build/texinfo 91*5808f684SSatish Balay ${SPHINXBUILD} -b texinfo -d build/doctrees ${SPHINXOPTS} \ 92*5808f684SSatish Balay docs/source build/texinfo 93*5808f684SSatish Balay ${MAKE} -C build/texinfo info > /dev/null 94*5808f684SSatish Balay mv build/texinfo/*.info docs/ 95*5808f684SSatish Balay 96*5808f684SSatish BalayPYTHON2 = python2 97*5808f684SSatish BalayEPYDOCBUILD = ${PYTHON2} ./conf/epydocify.py 98*5808f684SSatish BalayEPYDOCOPTS = 99*5808f684SSatish Balay.PHONY: epydoc epydoc-html epydoc-pdf 100*5808f684SSatish Balayepydoc: epydoc-html epydoc-pdf 101*5808f684SSatish Balayepydoc-html: srcbuild 102*5808f684SSatish Balay mkdir -p docs/apiref 103*5808f684SSatish Balay env CFLAGS=-O0 ${PYTHON2} setup.py -q build --build-lib build/lib.py2 104*5808f684SSatish Balay env PYTHONPATH=$$PWD/build/lib.py2 ${PYTHON2} -c 'import ${package}.${MODULE}' 105*5808f684SSatish Balay env PYTHONPATH=$$PWD/build/lib.py2 ${EPYDOCBUILD} ${EPYDOCOPTS} --html -o docs/apiref 106*5808f684SSatish Balayepydoc-pdf: 107*5808f684SSatish Balay 108*5808f684SSatish Balay.PHONY: docsclean 109*5808f684SSatish Balaydocsclean: 110*5808f684SSatish Balay -${RM} docs/*.info docs/*.[137] 111*5808f684SSatish Balay -${RM} docs/*.html docs/*.pdf 112*5808f684SSatish Balay -${RM} -r docs/usrman docs/apiref 113*5808f684SSatish Balay 114*5808f684SSatish Balay# ---- 115*5808f684SSatish Balay 116*5808f684SSatish Balay.PHONY: sdist 117*5808f684SSatish Balaysdist: srcbuild docs 118*5808f684SSatish Balay ${PYTHON} setup.py sdist ${SDISTOPT} 119*5808f684SSatish Balay 120*5808f684SSatish Balay# ---- 121