1
0
mirror of https://github.com/spaam/svtplay-dl.git synced 2024-11-27 13:44:14 +01:00
svtplay-dl/Makefile
Olof Johansson 87304cbbc7 build: Create release target
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.
2015-03-22 18:41:18 +01:00

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)