mirror of
https://github.com/spaam/svtplay-dl.git
synced 2024-11-27 13:44:14 +01:00
87304cbbc7
To build a new release, including tagging and commiting the release changes (regenerate svtplay-dl, and update Makefile with LATEST_RELEASE), just do make release. Obviously, the intended user of this target is the upstream author(s). As part of the make release target, svtplay-dl will be unit tested and the manpage will be checked to make sure all options are documented. All of this happens in a local clone of your local repo. This is to make sure that no files are left uncommited. Finally, the changes necessary will be applied to your repo and a tag will be set. All you have to do at this point is to verify that everything looks ok, and then push master and the new tag to github.
91 lines
2.1 KiB
Makefile
91 lines
2.1 KiB
Makefile
all: svtplay-dl
|
|
|
|
.PHONY: test cover doctest pylint svtplay-dl \
|
|
release clean_releasedir $(RELEASE_DIR)
|
|
|
|
VERSION = 0.10
|
|
RELEASE = $(VERSION).$(shell date +%Y.%m.%d)
|
|
RELEASE_DIR = svtplay-dl-$(RELEASE)
|
|
LATEST_RELEASE = 0.10.2015.01.28
|
|
|
|
PREFIX ?= /usr/local
|
|
BINDIR = $(PREFIX)/bin
|
|
MANDIR = $(PREFIX)/share/man/man1
|
|
|
|
# Compress the manual if MAN_GZIP is set to y,
|
|
ifeq ($(MAN_GZIP),y)
|
|
MANFILE_EXT = .gz
|
|
endif
|
|
MANFILE = svtplay-dl.1$(MANFILE_EXT)
|
|
|
|
# As pod2man is a perl tool, we have to jump through some hoops
|
|
# to remove references to perl.. :-)
|
|
POD2MAN ?= pod2man --section 1 --utf8 -c "svtplay-dl manual" \
|
|
-r "svtplay-dl $(VERSION)"
|
|
|
|
PYTHON ?= /usr/bin/env python
|
|
export PYTHONPATH=lib
|
|
|
|
# If you don't have a python3 environment (e.g. mock for py3 and
|
|
# nosetests3), you can remove the -3 flag.
|
|
TEST_OPTS ?= -2 -3
|
|
|
|
install: svtplay-dl $(MANFILE)
|
|
install -d $(DESTDIR)$(BINDIR)
|
|
install -d $(DESTDIR)$(MANDIR)
|
|
install -m 755 svtplay-dl $(DESTDIR)$(BINDIR)
|
|
install -m 644 $(MANFILE) $(DESTDIR)$(MANDIR)
|
|
|
|
svtplay-dl: $(PYFILES)
|
|
$(MAKE) -C lib
|
|
mv lib/svtplay-dl .
|
|
|
|
svtplay-dl.1: svtplay-dl.pod
|
|
rm -f $@
|
|
$(POD2MAN) $< $@
|
|
|
|
svtplay-dl.1.gz: svtplay-dl.1
|
|
rm -f $@
|
|
gzip -9 svtplay-dl.1
|
|
|
|
test:
|
|
sh run-tests.sh $(TEST_OPTS)
|
|
|
|
cover:
|
|
sh run-tests.sh -C
|
|
|
|
pylint:
|
|
$(MAKE) -C lib pylint
|
|
|
|
doctest: svtplay-dl
|
|
sh scripts/diff_man_help.sh
|
|
|
|
$(RELEASE_DIR): clean_releasedir
|
|
mkdir svtplay-dl-$(RELEASE)
|
|
cd svtplay-dl-$(RELEASE) && git clone -b master ../ . && make svtplay-dl
|
|
|
|
clean_releasedir:
|
|
rm -rf $(RELEASE_DIR)
|
|
|
|
release: $(RELEASE_DIR) release-test
|
|
cd $(RELEASE_DIR) && \
|
|
sed -i -r -e 's/^(LATEST_RELEASE = ).*/\1$(RELEASE)/' Makefile;\
|
|
git add svtplay-dl Makefile; \
|
|
git commit -m "Prepare for release $(RELEASE)";
|
|
(cd $(RELEASE_DIR) && git format-patch --stdout HEAD^) | git am
|
|
|
|
git tag -m "New version $(RELEASE)" \
|
|
-m "$$(git log --oneline $(LATEST_RELEASE)..HEAD^)" \
|
|
$(RELEASE)
|
|
|
|
make clean_releasedir
|
|
|
|
release-test: $(RELEASE_DIR)
|
|
make -C $(RELEASE_DIR) test
|
|
make -C $(RELEASE_DIR) doctest
|
|
|
|
clean:
|
|
$(MAKE) -C lib clean
|
|
rm -f svtplay-dl
|
|
rm -f $(MANFILE)
|