xref: /qemu/python/Makefile (revision 19cf0031e438374045aab8e5db0a03fb3b3070e4)
12c24d52dSJohn SnowQEMU_VENV_DIR=.dev-venv
22c24d52dSJohn Snow
3205d7219SJohn Snow.PHONY: help
46560379fSJohn Snowhelp:
56560379fSJohn Snow	@echo "python packaging help:"
66560379fSJohn Snow	@echo ""
76f84d726SJohn Snow	@echo "make check-pipenv:"
86f84d726SJohn Snow	@echo "    Run tests in pipenv's virtual environment."
96f84d726SJohn Snow	@echo "    These tests use the oldest dependencies."
106f84d726SJohn Snow	@echo "    Requires: Python 3.6 and pipenv."
116f84d726SJohn Snow	@echo "    Hint (Fedora): 'sudo dnf install python3.6 pipenv'"
126560379fSJohn Snow	@echo ""
138c95d0fcSJohn Snow	@echo "make check-tox:"
148c95d0fcSJohn Snow	@echo "    Run tests against multiple python versions."
158c95d0fcSJohn Snow	@echo "    These tests use the newest dependencies."
168c95d0fcSJohn Snow	@echo "    Requires: Python 3.6 - 3.10, and tox."
178c95d0fcSJohn Snow	@echo "    Hint (Fedora): 'sudo dnf install python3-tox python3.10'"
188c95d0fcSJohn Snow	@echo ""
192c24d52dSJohn Snow	@echo "make check-dev:"
202c24d52dSJohn Snow	@echo "    Run tests in a venv against your default python3 version."
212c24d52dSJohn Snow	@echo "    These tests use the newest dependencies."
222c24d52dSJohn Snow	@echo "    Requires: Python 3.x"
232c24d52dSJohn Snow	@echo ""
2428cd32fbSJohn Snow	@echo "make check:"
2528cd32fbSJohn Snow	@echo "    Run tests in your *current environment*."
2628cd32fbSJohn Snow	@echo "    Performs no environment setup of any kind."
276560379fSJohn Snow	@echo ""
2828cd32fbSJohn Snow	@echo "make develop:"
2928cd32fbSJohn Snow	@echo "    Install deps needed for for 'make check',"
3028cd32fbSJohn Snow	@echo "    and install the qemu package in editable mode."
3128cd32fbSJohn Snow	@echo "    (Can be used in or outside of a venv.)"
326560379fSJohn Snow	@echo ""
336f84d726SJohn Snow	@echo "make pipenv"
346f84d726SJohn Snow	@echo "    Creates pipenv's virtual environment (.venv)"
356f84d726SJohn Snow	@echo ""
362c24d52dSJohn Snow	@echo "make dev-venv"
372c24d52dSJohn Snow	@echo "    Creates a simple venv for check-dev. ($(QEMU_VENV_DIR))"
382c24d52dSJohn Snow	@echo ""
3950d0fba8SJohn Snow	@echo "make clean:"
4050d0fba8SJohn Snow	@echo "    Remove package build output."
416560379fSJohn Snow	@echo ""
4250d0fba8SJohn Snow	@echo "make distclean:"
4350d0fba8SJohn Snow	@echo "    remove pipenv/venv files, qemu package forwarder,"
4450d0fba8SJohn Snow	@echo "    built distribution files, and everything from 'make clean'."
4550d0fba8SJohn Snow	@echo ""
4650d0fba8SJohn Snow	@echo -e "Have a nice day ^_^\n"
476560379fSJohn Snow
48205d7219SJohn Snow.PHONY: pipenv
496f84d726SJohn Snowpipenv: .venv
506560379fSJohn Snow.venv: Pipfile.lock
516560379fSJohn Snow	@PIPENV_VENV_IN_PROJECT=1 pipenv sync --dev --keep-outdated
52*19cf0031SJohn Snow	rm -f pyproject.toml
536560379fSJohn Snow	@touch .venv
546560379fSJohn Snow
55205d7219SJohn Snow.PHONY: check-pipenv
566f84d726SJohn Snowcheck-pipenv: pipenv
576560379fSJohn Snow	@pipenv run make check
586560379fSJohn Snow
592c24d52dSJohn Snow.PHONY: dev-venv
602c24d52dSJohn Snowdev-venv: $(QEMU_VENV_DIR) $(QEMU_VENV_DIR)/bin/activate
612c24d52dSJohn Snow$(QEMU_VENV_DIR) $(QEMU_VENV_DIR)/bin/activate: setup.cfg
622c24d52dSJohn Snow	@echo "VENV $(QEMU_VENV_DIR)"
632c24d52dSJohn Snow	@python3 -m venv $(QEMU_VENV_DIR)
642c24d52dSJohn Snow	@(							\
652c24d52dSJohn Snow		echo "ACTIVATE $(QEMU_VENV_DIR)";		\
662c24d52dSJohn Snow		. $(QEMU_VENV_DIR)/bin/activate;		\
672c24d52dSJohn Snow		echo "INSTALL qemu[devel] $(QEMU_VENV_DIR)";	\
682c24d52dSJohn Snow		make develop 1>/dev/null;			\
692c24d52dSJohn Snow	)
702c24d52dSJohn Snow	@touch $(QEMU_VENV_DIR)
712c24d52dSJohn Snow
722c24d52dSJohn Snow.PHONY: check-dev
732c24d52dSJohn Snowcheck-dev: dev-venv
742c24d52dSJohn Snow	@(							\
752c24d52dSJohn Snow		echo "ACTIVATE $(QEMU_VENV_DIR)";		\
762c24d52dSJohn Snow		. $(QEMU_VENV_DIR)/bin/activate;		\
772c24d52dSJohn Snow		make check;					\
782c24d52dSJohn Snow	)
792c24d52dSJohn Snow
80205d7219SJohn Snow.PHONY: develop
816560379fSJohn Snowdevelop:
822c24d52dSJohn Snow	pip3 install --disable-pip-version-check -e .[devel]
836560379fSJohn Snow
84205d7219SJohn Snow.PHONY: check
856560379fSJohn Snowcheck:
866560379fSJohn Snow	@avocado --config avocado.cfg run tests/
876560379fSJohn Snow
88205d7219SJohn Snow.PHONY: check-tox
893c8de38cSJohn Snowcheck-tox:
903c8de38cSJohn Snow	@tox
913c8de38cSJohn Snow
92205d7219SJohn Snow.PHONY: clean
936560379fSJohn Snowclean:
946560379fSJohn Snow	python3 setup.py clean --all
95*19cf0031SJohn Snow	rm -f pyproject.toml
966560379fSJohn Snow
97205d7219SJohn Snow.PHONY: distclean
986560379fSJohn Snowdistclean: clean
992c24d52dSJohn Snow	rm -rf qemu.egg-info/ .venv/ .tox/ $(QEMU_VENV_DIR) dist/
100