1QEMU_VENV_DIR=.dev-venv 2 3.PHONY: help 4help: 5 @echo "python packaging help:" 6 @echo "" 7 @echo "make check-pipenv:" 8 @echo " Run tests in pipenv's virtual environment." 9 @echo " These tests use the oldest dependencies." 10 @echo " Requires: Python 3.6 and pipenv." 11 @echo " Hint (Fedora): 'sudo dnf install python3.6 pipenv'" 12 @echo "" 13 @echo "make check-tox:" 14 @echo " Run tests against multiple python versions." 15 @echo " These tests use the newest dependencies." 16 @echo " Requires: Python 3.6 - 3.10, and tox." 17 @echo " Hint (Fedora): 'sudo dnf install python3-tox python3.10'" 18 @echo "" 19 @echo "make check-dev:" 20 @echo " Run tests in a venv against your default python3 version." 21 @echo " These tests use the newest dependencies." 22 @echo " Requires: Python 3.x" 23 @echo "" 24 @echo "make develop: Install deps for 'make check', and" 25 @echo " the qemu libs in editable/development mode." 26 @echo "" 27 @echo "make check: run linters using the current environment." 28 @echo "" 29 @echo "make pipenv" 30 @echo " Creates pipenv's virtual environment (.venv)" 31 @echo "" 32 @echo "make dev-venv" 33 @echo " Creates a simple venv for check-dev. ($(QEMU_VENV_DIR))" 34 @echo "" 35 @echo "make clean: remove package build output." 36 @echo "" 37 @echo "make distclean: remove venv files, qemu package forwarder," 38 @echo " built distribution files, and everything" 39 @echo " from 'make clean'." 40 41.PHONY: pipenv 42pipenv: .venv 43.venv: Pipfile.lock 44 @PIPENV_VENV_IN_PROJECT=1 pipenv sync --dev --keep-outdated 45 @touch .venv 46 47.PHONY: check-pipenv 48check-pipenv: pipenv 49 @pipenv run make check 50 51.PHONY: dev-venv 52dev-venv: $(QEMU_VENV_DIR) $(QEMU_VENV_DIR)/bin/activate 53$(QEMU_VENV_DIR) $(QEMU_VENV_DIR)/bin/activate: setup.cfg 54 @echo "VENV $(QEMU_VENV_DIR)" 55 @python3 -m venv $(QEMU_VENV_DIR) 56 @( \ 57 echo "ACTIVATE $(QEMU_VENV_DIR)"; \ 58 . $(QEMU_VENV_DIR)/bin/activate; \ 59 echo "INSTALL qemu[devel] $(QEMU_VENV_DIR)"; \ 60 make develop 1>/dev/null; \ 61 ) 62 @touch $(QEMU_VENV_DIR) 63 64.PHONY: check-dev 65check-dev: dev-venv 66 @( \ 67 echo "ACTIVATE $(QEMU_VENV_DIR)"; \ 68 . $(QEMU_VENV_DIR)/bin/activate; \ 69 make check; \ 70 ) 71 72.PHONY: develop 73develop: 74 pip3 install --disable-pip-version-check -e .[devel] 75 76.PHONY: check 77check: 78 @avocado --config avocado.cfg run tests/ 79 80.PHONY: check-tox 81check-tox: 82 @tox 83 84.PHONY: clean 85clean: 86 python3 setup.py clean --all 87 88.PHONY: distclean 89distclean: clean 90 rm -rf qemu.egg-info/ .venv/ .tox/ $(QEMU_VENV_DIR) dist/ 91