.PHONY: all clean doc log test PKGNAME=pungi VERSION=$(shell rpm -q --qf "%{VERSION}\n" --specfile ${PKGNAME}.spec | head -n1) RELEASE=$(shell rpm -q --qf "%{RELEASE}\n" --specfile ${PKGNAME}.spec | head -n1) GITTAG=${PKGNAME}-$(VERSION) PKGRPMFLAGS=--define "_topdir ${PWD}" --define "_specdir ${PWD}" --define "_sourcedir ${PWD}/dist" --define "_srcrpmdir ${PWD}" --define "_rpmdir ${PWD}" --define "_builddir ${PWD}" RPM="noarch/${PKGNAME}-$(VERSION)-$(RELEASE).noarch.rpm" SRPM="${PKGNAME}-$(VERSION)-$(RELEASE).src.rpm" PYTEST=pytest all: help help: @echo "Usage: make " @echo @echo "Available targets are:" @echo " help show this text" @echo " clean remove python bytecode and temp files" @echo " doc build documentation" @echo " install install program on current system" @echo " test run tests" @echo " test-coverage run tests and generate a coverage report" @echo " test-compose run a small teest compose (requires test data)" @echo " test-data build test data (requirement for running tests)" @echo @echo "Available rel-eng targets are:" @echo " archive create source tarball" @echo " log display changelog for spec file" @echo " tag create a git tag according to version and release from spec file" @echo " rpm build rpm" @echo " srpm build srpm" @echo " rpminstall build rpm and install it" @echo " release build srpm and create git tag" tag: @git tag -a -m "Tag as $(GITTAG)" -f $(GITTAG) @echo "Tagged as $(GITTAG)" Changelog: (GIT_DIR=.git git log > .changelog.tmp && mv .changelog.tmp Changelog; rm -f .changelog.tmp) || (touch Changelog; echo 'git directory not found: installing possibly empty changelog.' >&2) log: @(LC_ALL=C date +"* %a %b %e %Y `git config --get user.name` <`git config --get user.email`> - VERSION"; git log --pretty="format:- %s (%ae)" | sed -r 's/ \(([^@]+)@[^)]+\)/ (\1)/g' | cat) | less archive: @rm -f Changelog @rm -f MANIFEST @make Changelog @rm -rf ${PKGNAME}-$(VERSION)/ @python setup.py sdist --formats=bztar > /dev/null @echo "The archive is in dist/${PKGNAME}-$(VERSION).tar.bz2" srpm: archive @rm -f $(SRPM) @rpmbuild -bs ${PKGRPMFLAGS} ${PKGNAME}.spec @echo "The srpm is in $(SRPM)" rpm: archive @rpmbuild --clean -bb ${PKGRPMFLAGS} ${PKGNAME}.spec @echo "The rpm is in $(RPM)" rpminstall: rpm @rpm -ivh --force $(RPM) release: tag srpm install: @python setup.py install clean: @python setup.py clean @rm -vf *.rpm @rm -vrf noarch @rm -vf *.tar.gz @rm -vrf dist @rm -vf MANIFEST @rm -vf Changelog @find . -\( -name "*.pyc" -o -name '*.pyo' -o -name "*~" -o -name "__pycache__" -\) -delete @find . -depth -type d -a -name '*.egg-info' -exec rm -rf {} \; test: $(PYTEST) $(PYTEST_OPTS) test-coverage: $(PYTEST) --cov=pungi --cov-report term --cov-report html --cov-config tox.ini $(PYTEST_OPTS) test-data: ./tests/data/specs/build.sh test-compose: cd tests && ./test_compose.sh test-multi-compose: PYTHONPATH=$$(pwd) PATH=$$(pwd)/bin:$$PATH pungi-orchestrate --debug start tests/data/multi-compose.conf doc: cd doc; make html