]> git.proxmox.com Git - mirror_qemu.git/blobdiff - python/Makefile
Merge tag 'pull-request-2023-05-22' of https://gitlab.com/thuth/qemu into staging
[mirror_qemu.git] / python / Makefile
index 3334311362573a8b9f39efb12fed6acf65c96b8a..7c70dcc8d144f50c0ae7eeeff7108bedd7fcb6e7 100644 (file)
@@ -1,21 +1,22 @@
 QEMU_VENV_DIR=.dev-venv
+QEMU_MINVENV_DIR=.min-venv
 QEMU_TOX_EXTRA_ARGS ?=
 
 .PHONY: help
 help:
        @echo "python packaging help:"
        @echo ""
-       @echo "make check-pipenv:"
-       @echo "    Run tests in pipenv's virtual environment."
+       @echo "make check-minreqs:"
+       @echo "    Run tests in the minreqs virtual environment."
        @echo "    These tests use the oldest dependencies."
-       @echo "    Requires: Python 3.6 and pipenv."
-       @echo "    Hint (Fedora): 'sudo dnf install python3.6 pipenv'"
+       @echo "    Requires: Python 3.7"
+       @echo "    Hint (Fedora): 'sudo dnf install python3.7'"
        @echo ""
        @echo "make check-tox:"
        @echo "    Run tests against multiple python versions."
        @echo "    These tests use the newest dependencies."
-       @echo "    Requires: Python 3.6 - 3.10, and tox."
-       @echo "    Hint (Fedora): 'sudo dnf install python3-tox python3.10'"
+       @echo "    Requires: Python 3.7 - 3.11, and tox."
+       @echo "    Hint (Fedora): 'sudo dnf install python3-tox python3.11'"
        @echo "    The variable QEMU_TOX_EXTRA_ARGS can be use to pass extra"
        @echo "    arguments to tox".
        @echo ""
@@ -29,12 +30,12 @@ help:
        @echo "    Performs no environment setup of any kind."
        @echo ""
        @echo "make develop:"
-       @echo "    Install deps needed for for 'make check',"
+       @echo "    Install deps needed for 'make check',"
        @echo "    and install the qemu package in editable mode."
        @echo "    (Can be used in or outside of a venv.)"
        @echo ""
-       @echo "make pipenv"
-       @echo "    Creates pipenv's virtual environment (.venv)"
+       @echo "make min-venv"
+       @echo "    Creates the minreqs virtual environment ($(QEMU_MINVENV_DIR))"
        @echo ""
        @echo "make dev-venv"
        @echo "    Creates a simple venv for check-dev. ($(QEMU_VENV_DIR))"
@@ -43,21 +44,41 @@ help:
        @echo "    Remove package build output."
        @echo ""
        @echo "make distclean:"
-       @echo "    remove pipenv/venv files, qemu package forwarder,"
+       @echo "    remove venv files, qemu package forwarder,"
        @echo "    built distribution files, and everything from 'make clean'."
        @echo ""
        @echo -e "Have a nice day ^_^\n"
 
-.PHONY: pipenv
-pipenv: .venv
-.venv: Pipfile.lock
-       @PIPENV_VENV_IN_PROJECT=1 pipenv sync --dev --keep-outdated
-       rm -f pyproject.toml
-       @touch .venv
+.PHONY: pipenv check-pipenv
+pipenv check-pipenv:
+       @echo "pipenv was dropped; try 'make check-minreqs' or 'make min-venv'"
+       @exit 1
+
+PIP_INSTALL = pip install --disable-pip-version-check
+.PHONY: min-venv
+min-venv: $(QEMU_MINVENV_DIR) $(QEMU_MINVENV_DIR)/bin/activate
+$(QEMU_MINVENV_DIR) $(QEMU_MINVENV_DIR)/bin/activate: setup.cfg tests/minreqs.txt
+       @echo "VENV $(QEMU_MINVENV_DIR)"
+       @python3.7 -m venv $(QEMU_MINVENV_DIR)
+       @(                                                              \
+               echo "ACTIVATE $(QEMU_MINVENV_DIR)";                    \
+               . $(QEMU_MINVENV_DIR)/bin/activate;                     \
+               echo "INSTALL wheel $(QEMU_MINVENV_DIR)";               \
+               $(PIP_INSTALL) wheel 1>/dev/null;                              \
+               echo "INSTALL -r tests/minreqs.txt $(QEMU_MINVENV_DIR)";\
+               $(PIP_INSTALL) -r tests/minreqs.txt 1>/dev/null;        \
+               echo "INSTALL -e qemu $(QEMU_MINVENV_DIR)";             \
+               $(PIP_INSTALL) -e . 1>/dev/null;                        \
+       )
+       @touch $(QEMU_MINVENV_DIR)
 
-.PHONY: check-pipenv
-check-pipenv: pipenv
-       @pipenv run make check
+.PHONY: check-minreqs
+check-minreqs: min-venv
+       @(                                                      \
+               echo "ACTIVATE $(QEMU_MINVENV_DIR)";            \
+               . $(QEMU_MINVENV_DIR)/bin/activate;             \
+               make check;                                     \
+       )
 
 .PHONY: dev-venv
 dev-venv: $(QEMU_VENV_DIR) $(QEMU_VENV_DIR)/bin/activate
@@ -82,7 +103,7 @@ check-dev: dev-venv
 
 .PHONY: develop
 develop:
-       pip3 install --disable-pip-version-check -e .[devel]
+       $(PIP_INSTALL) -e .[devel]
 
 .PHONY: check
 check:
@@ -106,6 +127,7 @@ clean:
 
 .PHONY: distclean
 distclean: clean
-       rm -rf qemu.egg-info/ .venv/ .tox/ $(QEMU_VENV_DIR) dist/
+       rm -rf qemu.egg-info/ .eggs/ dist/
+       rm -rf $(QEMU_VENV_DIR) $(QEMU_MINVENV_DIR) .tox/
        rm -f .coverage .coverage.*
        rm -rf htmlcov/