xref: /openbmc/qemu/python/Makefile (revision 50d0fba8272a5ccc2821e8ca66a5932281b1ca2d)
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 ""
39*50d0fba8SJohn Snow	@echo "make clean:"
40*50d0fba8SJohn Snow	@echo "    Remove package build output."
416560379fSJohn Snow	@echo ""
42*50d0fba8SJohn Snow	@echo "make distclean:"
43*50d0fba8SJohn Snow	@echo "    remove pipenv/venv files, qemu package forwarder,"
44*50d0fba8SJohn Snow	@echo "    built distribution files, and everything from 'make clean'."
45*50d0fba8SJohn Snow	@echo ""
46*50d0fba8SJohn 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
526560379fSJohn Snow	@touch .venv
536560379fSJohn Snow
54205d7219SJohn Snow.PHONY: check-pipenv
556f84d726SJohn Snowcheck-pipenv: pipenv
566560379fSJohn Snow	@pipenv run make check
576560379fSJohn Snow
582c24d52dSJohn Snow.PHONY: dev-venv
592c24d52dSJohn Snowdev-venv: $(QEMU_VENV_DIR) $(QEMU_VENV_DIR)/bin/activate
602c24d52dSJohn Snow$(QEMU_VENV_DIR) $(QEMU_VENV_DIR)/bin/activate: setup.cfg
612c24d52dSJohn Snow	@echo "VENV $(QEMU_VENV_DIR)"
622c24d52dSJohn Snow	@python3 -m venv $(QEMU_VENV_DIR)
632c24d52dSJohn Snow	@(							\
642c24d52dSJohn Snow		echo "ACTIVATE $(QEMU_VENV_DIR)";		\
652c24d52dSJohn Snow		. $(QEMU_VENV_DIR)/bin/activate;		\
662c24d52dSJohn Snow		echo "INSTALL qemu[devel] $(QEMU_VENV_DIR)";	\
672c24d52dSJohn Snow		make develop 1>/dev/null;			\
682c24d52dSJohn Snow	)
692c24d52dSJohn Snow	@touch $(QEMU_VENV_DIR)
702c24d52dSJohn Snow
712c24d52dSJohn Snow.PHONY: check-dev
722c24d52dSJohn Snowcheck-dev: dev-venv
732c24d52dSJohn Snow	@(							\
742c24d52dSJohn Snow		echo "ACTIVATE $(QEMU_VENV_DIR)";		\
752c24d52dSJohn Snow		. $(QEMU_VENV_DIR)/bin/activate;		\
762c24d52dSJohn Snow		make check;					\
772c24d52dSJohn Snow	)
782c24d52dSJohn Snow
79205d7219SJohn Snow.PHONY: develop
806560379fSJohn Snowdevelop:
812c24d52dSJohn Snow	pip3 install --disable-pip-version-check -e .[devel]
826560379fSJohn Snow
83205d7219SJohn Snow.PHONY: check
846560379fSJohn Snowcheck:
856560379fSJohn Snow	@avocado --config avocado.cfg run tests/
866560379fSJohn Snow
87205d7219SJohn Snow.PHONY: check-tox
883c8de38cSJohn Snowcheck-tox:
893c8de38cSJohn Snow	@tox
903c8de38cSJohn Snow
91205d7219SJohn Snow.PHONY: clean
926560379fSJohn Snowclean:
936560379fSJohn Snow	python3 setup.py clean --all
946560379fSJohn Snow
95205d7219SJohn Snow.PHONY: distclean
966560379fSJohn Snowdistclean: clean
972c24d52dSJohn Snow	rm -rf qemu.egg-info/ .venv/ .tox/ $(QEMU_VENV_DIR) dist/
98