12c24d52dSJohn SnowQEMU_VENV_DIR=.dev-venv 26f651a6dSWainer dos Santos MoschettaQEMU_TOX_EXTRA_ARGS ?= 32c24d52dSJohn Snow 4205d7219SJohn Snow.PHONY: help 56560379fSJohn Snowhelp: 66560379fSJohn Snow @echo "python packaging help:" 76560379fSJohn Snow @echo "" 86f84d726SJohn Snow @echo "make check-pipenv:" 96f84d726SJohn Snow @echo " Run tests in pipenv's virtual environment." 106f84d726SJohn Snow @echo " These tests use the oldest dependencies." 116f84d726SJohn Snow @echo " Requires: Python 3.6 and pipenv." 126f84d726SJohn Snow @echo " Hint (Fedora): 'sudo dnf install python3.6 pipenv'" 136560379fSJohn Snow @echo "" 148c95d0fcSJohn Snow @echo "make check-tox:" 158c95d0fcSJohn Snow @echo " Run tests against multiple python versions." 168c95d0fcSJohn Snow @echo " These tests use the newest dependencies." 178c95d0fcSJohn Snow @echo " Requires: Python 3.6 - 3.10, and tox." 188c95d0fcSJohn Snow @echo " Hint (Fedora): 'sudo dnf install python3-tox python3.10'" 196f651a6dSWainer dos Santos Moschetta @echo " The variable QEMU_TOX_EXTRA_ARGS can be use to pass extra" 206f651a6dSWainer dos Santos Moschetta @echo " arguments to tox". 218c95d0fcSJohn Snow @echo "" 222c24d52dSJohn Snow @echo "make check-dev:" 232c24d52dSJohn Snow @echo " Run tests in a venv against your default python3 version." 242c24d52dSJohn Snow @echo " These tests use the newest dependencies." 252c24d52dSJohn Snow @echo " Requires: Python 3.x" 262c24d52dSJohn Snow @echo "" 2728cd32fbSJohn Snow @echo "make check:" 2828cd32fbSJohn Snow @echo " Run tests in your *current environment*." 2928cd32fbSJohn Snow @echo " Performs no environment setup of any kind." 306560379fSJohn Snow @echo "" 3128cd32fbSJohn Snow @echo "make develop:" 3228cd32fbSJohn Snow @echo " Install deps needed for for 'make check'," 3328cd32fbSJohn Snow @echo " and install the qemu package in editable mode." 3428cd32fbSJohn Snow @echo " (Can be used in or outside of a venv.)" 356560379fSJohn Snow @echo "" 366f84d726SJohn Snow @echo "make pipenv" 376f84d726SJohn Snow @echo " Creates pipenv's virtual environment (.venv)" 386f84d726SJohn Snow @echo "" 392c24d52dSJohn Snow @echo "make dev-venv" 402c24d52dSJohn Snow @echo " Creates a simple venv for check-dev. ($(QEMU_VENV_DIR))" 412c24d52dSJohn Snow @echo "" 4250d0fba8SJohn Snow @echo "make clean:" 4350d0fba8SJohn Snow @echo " Remove package build output." 446560379fSJohn Snow @echo "" 4550d0fba8SJohn Snow @echo "make distclean:" 4650d0fba8SJohn Snow @echo " remove pipenv/venv files, qemu package forwarder," 4750d0fba8SJohn Snow @echo " built distribution files, and everything from 'make clean'." 4850d0fba8SJohn Snow @echo "" 4950d0fba8SJohn Snow @echo -e "Have a nice day ^_^\n" 506560379fSJohn Snow 51205d7219SJohn Snow.PHONY: pipenv 526f84d726SJohn Snowpipenv: .venv 536560379fSJohn Snow.venv: Pipfile.lock 546560379fSJohn Snow @PIPENV_VENV_IN_PROJECT=1 pipenv sync --dev --keep-outdated 5519cf0031SJohn Snow rm -f pyproject.toml 566560379fSJohn Snow @touch .venv 576560379fSJohn Snow 58205d7219SJohn Snow.PHONY: check-pipenv 596f84d726SJohn Snowcheck-pipenv: pipenv 606560379fSJohn Snow @pipenv run make check 616560379fSJohn Snow 622c24d52dSJohn Snow.PHONY: dev-venv 632c24d52dSJohn Snowdev-venv: $(QEMU_VENV_DIR) $(QEMU_VENV_DIR)/bin/activate 642c24d52dSJohn Snow$(QEMU_VENV_DIR) $(QEMU_VENV_DIR)/bin/activate: setup.cfg 652c24d52dSJohn Snow @echo "VENV $(QEMU_VENV_DIR)" 662c24d52dSJohn Snow @python3 -m venv $(QEMU_VENV_DIR) 672c24d52dSJohn Snow @( \ 682c24d52dSJohn Snow echo "ACTIVATE $(QEMU_VENV_DIR)"; \ 692c24d52dSJohn Snow . $(QEMU_VENV_DIR)/bin/activate; \ 702c24d52dSJohn Snow echo "INSTALL qemu[devel] $(QEMU_VENV_DIR)"; \ 712c24d52dSJohn Snow make develop 1>/dev/null; \ 722c24d52dSJohn Snow ) 732c24d52dSJohn Snow @touch $(QEMU_VENV_DIR) 742c24d52dSJohn Snow 752c24d52dSJohn Snow.PHONY: check-dev 762c24d52dSJohn Snowcheck-dev: dev-venv 772c24d52dSJohn Snow @( \ 782c24d52dSJohn Snow echo "ACTIVATE $(QEMU_VENV_DIR)"; \ 792c24d52dSJohn Snow . $(QEMU_VENV_DIR)/bin/activate; \ 802c24d52dSJohn Snow make check; \ 812c24d52dSJohn Snow ) 822c24d52dSJohn Snow 83205d7219SJohn Snow.PHONY: develop 846560379fSJohn Snowdevelop: 852c24d52dSJohn Snow pip3 install --disable-pip-version-check -e .[devel] 866560379fSJohn Snow 87205d7219SJohn Snow.PHONY: check 886560379fSJohn Snowcheck: 896560379fSJohn Snow @avocado --config avocado.cfg run tests/ 906560379fSJohn Snow 91205d7219SJohn Snow.PHONY: check-tox 923c8de38cSJohn Snowcheck-tox: 936f651a6dSWainer dos Santos Moschetta @tox $(QEMU_TOX_EXTRA_ARGS) 943c8de38cSJohn Snow 95*a4ffaecdSJohn Snow.PHONY: check-coverage 96*a4ffaecdSJohn Snowcheck-coverage: 97*a4ffaecdSJohn Snow @coverage run -m avocado --config avocado.cfg run tests/*.py 98*a4ffaecdSJohn Snow @coverage combine 99*a4ffaecdSJohn Snow @coverage html 100*a4ffaecdSJohn Snow @coverage report 101*a4ffaecdSJohn Snow 102205d7219SJohn Snow.PHONY: clean 1036560379fSJohn Snowclean: 1046560379fSJohn Snow python3 setup.py clean --all 10519cf0031SJohn Snow rm -f pyproject.toml 1066560379fSJohn Snow 107205d7219SJohn Snow.PHONY: distclean 1086560379fSJohn Snowdistclean: clean 1092c24d52dSJohn Snow rm -rf qemu.egg-info/ .venv/ .tox/ $(QEMU_VENV_DIR) dist/ 110*a4ffaecdSJohn Snow rm -f .coverage .coverage.* 111*a4ffaecdSJohn Snow rm -rf htmlcov/ 112