 6832189fd7
			
		
	
	
		6832189fd7
		
	
	
	
	
		
			
			The pipenv tool was nice in theory, but in practice it's just too hard to update selectively, and it makes using it a pain. The qemu.qmp repo dropped pipenv support a while back and it's been functioning just fine, so I'm backporting that change here to qemu.git. Signed-off-by: John Snow <jsnow@redhat.com> Message-id: 20230210003147.1309376-3-jsnow@redhat.com Signed-off-by: John Snow <jsnow@redhat.com>
		
			
				
	
	
		
			131 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			131 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| 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-minreqs:"
 | |
| 	@echo "    Run tests in the minreqs virtual environment."
 | |
| 	@echo "    These tests use the oldest dependencies."
 | |
| 	@echo "    Requires: Python 3.6"
 | |
| 	@echo "    Hint (Fedora): 'sudo dnf install python3.6'"
 | |
| 	@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 "    The variable QEMU_TOX_EXTRA_ARGS can be use to pass extra"
 | |
| 	@echo "    arguments to tox".
 | |
| 	@echo ""
 | |
| 	@echo "make check-dev:"
 | |
| 	@echo "    Run tests in a venv against your default python3 version."
 | |
| 	@echo "    These tests use the newest dependencies."
 | |
| 	@echo "    Requires: Python 3.x"
 | |
| 	@echo ""
 | |
| 	@echo "make check:"
 | |
| 	@echo "    Run tests in your *current environment*."
 | |
| 	@echo "    Performs no environment setup of any kind."
 | |
| 	@echo ""
 | |
| 	@echo "make develop:"
 | |
| 	@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 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))"
 | |
| 	@echo ""
 | |
| 	@echo "make clean:"
 | |
| 	@echo "    Remove package build output."
 | |
| 	@echo ""
 | |
| 	@echo "make distclean:"
 | |
| 	@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 check-pipenv
 | |
| pipenv check-pipenv:
 | |
| 	@echo "pipenv was dropped; try 'make check-minreqs' or 'make min-venv'"
 | |
| 	@exit 1
 | |
| 
 | |
| .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.6 -m venv $(QEMU_MINVENV_DIR)
 | |
| 	@(								\
 | |
| 		echo "ACTIVATE $(QEMU_MINVENV_DIR)";			\
 | |
| 		. $(QEMU_MINVENV_DIR)/bin/activate;			\
 | |
| 		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-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
 | |
| $(QEMU_VENV_DIR) $(QEMU_VENV_DIR)/bin/activate: setup.cfg
 | |
| 	@echo "VENV $(QEMU_VENV_DIR)"
 | |
| 	@python3 -m venv $(QEMU_VENV_DIR)
 | |
| 	@(							\
 | |
| 		echo "ACTIVATE $(QEMU_VENV_DIR)";		\
 | |
| 		. $(QEMU_VENV_DIR)/bin/activate;		\
 | |
| 		echo "INSTALL qemu[devel] $(QEMU_VENV_DIR)";	\
 | |
| 		make develop 1>/dev/null;			\
 | |
| 	)
 | |
| 	@touch $(QEMU_VENV_DIR)
 | |
| 
 | |
| .PHONY: check-dev
 | |
| check-dev: dev-venv
 | |
| 	@(							\
 | |
| 		echo "ACTIVATE $(QEMU_VENV_DIR)";		\
 | |
| 		. $(QEMU_VENV_DIR)/bin/activate;		\
 | |
| 		make check;					\
 | |
| 	)
 | |
| 
 | |
| .PHONY: develop
 | |
| develop:
 | |
| 	pip3 install --disable-pip-version-check -e .[devel]
 | |
| 
 | |
| .PHONY: check
 | |
| check:
 | |
| 	@avocado --config avocado.cfg run tests/
 | |
| 
 | |
| .PHONY: check-tox
 | |
| check-tox:
 | |
| 	@tox $(QEMU_TOX_EXTRA_ARGS)
 | |
| 
 | |
| .PHONY: check-coverage
 | |
| check-coverage:
 | |
| 	@coverage run -m avocado --config avocado.cfg run tests/*.py
 | |
| 	@coverage combine
 | |
| 	@coverage html
 | |
| 	@coverage report
 | |
| 
 | |
| .PHONY: clean
 | |
| clean:
 | |
| 	python3 setup.py clean --all
 | |
| 	rm -f pyproject.toml
 | |
| 
 | |
| .PHONY: distclean
 | |
| distclean: clean
 | |
| 	rm -rf qemu.egg-info/ .eggs/ dist/
 | |
| 	rm -rf $(QEMU_VENV_DIR) $(QEMU_MINVENV_DIR) .tox/
 | |
| 	rm -f .coverage .coverage.*
 | |
| 	rm -rf htmlcov/
 |