1d1874862SSatish Balay-include ../../../petscdir.mk 25808f684SSatish Balay.PHONY: default 35808f684SSatish Balaydefault: build 45808f684SSatish Balay 55808f684SSatish Balaypackage = petsc4py 65808f684SSatish BalayMODULE = PETSc 75808f684SSatish Balay 85808f684SSatish BalayPYTHON = python$(py) 95808f684SSatish BalayMPIEXEC = mpiexec 105808f684SSatish Balay 115808f684SSatish Balay# ---- 125808f684SSatish Balay 135808f684SSatish Balay.PHONY: config build test 145808f684SSatish Balayconfig: 15f46a955bSLisandro Dalcin ${PYTHON} setup.py config ${CONFIGOPT} ${opt} 165808f684SSatish Balaybuild: 17f46a955bSLisandro Dalcin ${PYTHON} setup.py build ${BUILDOPT} ${opt} 185808f684SSatish Balaytest: 19f46a955bSLisandro Dalcin ${VALGRIND} ${PYTHON} ${PWD}/test/runtests.py ${TESTOPT} ${opt} 205808f684SSatish Balaytest-%: 21f46a955bSLisandro Dalcin ${MPIEXEC} -n $* ${VALGRIND} ${PYTHON} ${PWD}/test/runtests.py ${TESTOPT} ${opt} 225808f684SSatish Balay 235808f684SSatish Balay.PHONY: srcbuild srcclean 245808f684SSatish Balaysrcbuild: 25f46a955bSLisandro Dalcin ${PYTHON} setup.py build_src ${SRCOPT} ${opt} 265808f684SSatish Balaysrcclean: 27f46a955bSLisandro Dalcin -${RM} src/${package}/${MODULE}.c 28f46a955bSLisandro Dalcin -${RM} src/${package}/${MODULE}.h 29f46a955bSLisandro Dalcin -${RM} src/${package}/${MODULE}_api.h 305808f684SSatish Balay 315808f684SSatish Balay.PHONY: clean distclean fullclean 325808f684SSatish Balayclean: 335808f684SSatish Balay ${PYTHON} setup.py clean --all 345808f684SSatish Balaydistclean: clean 355808f684SSatish Balay -${RM} -r build _configtest.* *.py[co] 365808f684SSatish Balay -${RM} -r MANIFEST dist ${package}.egg-info 375808f684SSatish Balay -${RM} -r `find . -name '__pycache__'` 385808f684SSatish Balay -${RM} `find . -name '*.py[co]'` 395808f684SSatish Balayfullclean: distclean srcclean docsclean 405808f684SSatish Balay -find . -name '*~' -exec rm -f {} ';' 415808f684SSatish Balay 425808f684SSatish Balay# ---- 435808f684SSatish Balay 445808f684SSatish Balay.PHONY: install uninstall 455808f684SSatish Balayinstall: build 465808f684SSatish Balay ${PYTHON} setup.py install --prefix='' --user ${INSTALLOPT} 475808f684SSatish Balayuninstall: 485808f684SSatish Balay -${RM} -r $(shell ${PYTHON} -m site --user-site)/${package} 495808f684SSatish Balay -${RM} -r $(shell ${PYTHON} -m site --user-site)/${package}-*-py*.egg-info 505808f684SSatish Balay 515808f684SSatish Balay# ---- 525808f684SSatish Balay 53c5563ed3SBarry Smithwebsite: 54c5563ed3SBarry Smith virtualenv -p ${PYTHON2} petsc-doc-env && . petsc-doc-env/bin/activate && ${PYTHON2} -m pip install -r docs/source/requirements.txt && make epydoc-website && deactivate 55c5563ed3SBarry Smith 565808f684SSatish Balay.PHONY: docs docs-html docs-pdf docs-misc 575808f684SSatish Balaydocs: docs-html docs-pdf docs-misc 585808f684SSatish Balaydocs-html: rst2html sphinx-html epydoc-html 595808f684SSatish Balaydocs-pdf: sphinx-pdf epydoc-pdf 605808f684SSatish Balaydocs-misc: sphinx-man sphinx-info 615808f684SSatish Balay 6248c91c14SBarry Smith#it appears some of the documentation requires a python2 installation to build 6348c91c14SBarry SmithPYTHON2 = python2 6448c91c14SBarry Smith 6548c91c14SBarry Smithcheckdocutils: 66f46a955bSLisandro Dalcin @${PYTHON} -c $$'try:\n import docutils\nexcept:\n print("Run `python -m pip install docutils` and then try this command again");exit(1)' 67f46a955bSLisandro Dalcin @${PYTHON2} -c $$'try:\n import docutils\nexcept:\n print("Run `python2 -m pip install docutils` or `pip2 install docutils` or `[sudo] easy_install docutils` and then try the command again");exit(1)' 68f46a955bSLisandro Dalcin @${PYTHON2} -c $$'try:\n import epydoc\nexcept:\n print("Run `python2 -m pip install epydoc` or `pip2 install epydoc` or `[sudo] easy_install epydoc` and then try the command again");exit(1)' 6948c91c14SBarry Smith 705808f684SSatish BalayRST2HTML = $(shell command -v rst2html || command -v rst2html.py || false) 715808f684SSatish BalayRST2HTMLOPTS = --input-encoding=utf-8 725808f684SSatish BalayRST2HTMLOPTS += --no-compact-lists 735808f684SSatish BalayRST2HTMLOPTS += --cloak-email-addresses 745808f684SSatish Balay.PHONY: rst2html 7548c91c14SBarry Smithrst2html: checkdocutils 765808f684SSatish Balay ${RST2HTML} ${RST2HTMLOPTS} ./LICENSE.rst > docs/LICENSE.html 775808f684SSatish Balay ${RST2HTML} ${RST2HTMLOPTS} ./CHANGES.rst > docs/CHANGES.html 785808f684SSatish Balay ${RST2HTML} ${RST2HTMLOPTS} docs/index.rst > docs/index.html 795808f684SSatish Balay 805808f684SSatish BalaySPHINXBUILD = sphinx-build 815808f684SSatish BalaySPHINXOPTS = 825808f684SSatish Balay.PHONY: sphinx sphinx-html sphinx-pdf sphinx-man sphinx-info 835808f684SSatish Balaysphinx: sphinx-html sphinx-pdf sphinx-man sphinx-info 845808f684SSatish Balaysphinx-html: 855808f684SSatish Balay mkdir -p build/doctrees docs/usrman 865808f684SSatish Balay ${SPHINXBUILD} -b html -d build/doctrees ${SPHINXOPTS} \ 875808f684SSatish Balay docs/source docs/usrman 885808f684SSatish Balay ${RM} docs/usrman/.buildinfo 895808f684SSatish Balaysphinx-pdf: 905808f684SSatish Balay mkdir -p build/doctrees build/latex 915808f684SSatish Balay ${SPHINXBUILD} -b latex -d build/doctrees ${SPHINXOPTS} \ 925808f684SSatish Balay docs/source build/latex 935808f684SSatish Balay ${MAKE} -C build/latex all-pdf > /dev/null 945808f684SSatish Balay mv build/latex/*.pdf docs/ 955808f684SSatish Balaysphinx-man: 965808f684SSatish Balay mkdir -p build/doctrees build/man 975808f684SSatish Balay ${SPHINXBUILD} -b man -d build/doctrees ${SPHINXOPTS} \ 985808f684SSatish Balay docs/source build/man 995808f684SSatish Balay mv build/man/*.[137] docs/ 1005808f684SSatish Balaysphinx-info: 1015808f684SSatish Balay mkdir -p build/doctrees build/texinfo 1025808f684SSatish Balay ${SPHINXBUILD} -b texinfo -d build/doctrees ${SPHINXOPTS} \ 1035808f684SSatish Balay docs/source build/texinfo 1045808f684SSatish Balay ${MAKE} -C build/texinfo info > /dev/null 1055808f684SSatish Balay mv build/texinfo/*.info docs/ 1065808f684SSatish Balay 1075808f684SSatish BalayEPYDOCBUILD = ${PYTHON2} ./conf/epydocify.py 1085808f684SSatish BalayEPYDOCOPTS = 1095808f684SSatish Balay.PHONY: epydoc epydoc-html epydoc-pdf 1105808f684SSatish Balayepydoc: epydoc-html epydoc-pdf 1115808f684SSatish Balayepydoc-html: srcbuild 1125808f684SSatish Balay mkdir -p docs/apiref 1135808f684SSatish Balay env CFLAGS=-O0 ${PYTHON2} setup.py -q build --build-lib build/lib.py2 1145808f684SSatish Balay env PYTHONPATH=$$PWD/build/lib.py2 ${PYTHON2} -c 'import ${package}.${MODULE}' 1155808f684SSatish Balay env PYTHONPATH=$$PWD/build/lib.py2 ${EPYDOCBUILD} ${EPYDOCOPTS} --html -o docs/apiref 1165808f684SSatish Balayepydoc-pdf: 1175808f684SSatish Balay 118c5563ed3SBarry Smithepydoc-website: 119c5563ed3SBarry Smith env CFLAGS=-O0 ${PYTHON2} setup.py -q build --build-lib build/lib.py2 120c5563ed3SBarry Smith env PYTHONPATH=$$PWD/build/lib.py2 ${PYTHON2} -c 'import ${package}.${MODULE}' 121c5563ed3SBarry Smith env PYTHONPATH=$$PWD/build/lib.py2 ${EPYDOCBUILD} ${EPYDOCOPTS} -q -q -q --html -o ${LOC}/petsc4py 122c5563ed3SBarry Smith 1235808f684SSatish Balay.PHONY: docsclean 1245808f684SSatish Balaydocsclean: 1255808f684SSatish Balay -${RM} docs/*.info docs/*.[137] 1265808f684SSatish Balay -${RM} docs/*.html docs/*.pdf 1275808f684SSatish Balay -${RM} -r docs/usrman docs/apiref 1285808f684SSatish Balay 1295808f684SSatish Balay# ---- 1305808f684SSatish Balay 1315808f684SSatish Balay.PHONY: sdist 132*6f6f1c89SSatish Balaysdist: 1335808f684SSatish Balay ${PYTHON} setup.py sdist ${SDISTOPT} 1345808f684SSatish Balay 1355808f684SSatish Balay# ---- 136