mirror of
https://github.com/spaam/svtplay-dl.git
synced 2024-11-23 19:55:38 +01:00
872cbf4140
pod2man will insert a date in the footer of the manpage. By default, it takes this value from the mtime of the input file. But this makes it non-deterministic in that another build may produce other results. By setting it to always be the date of the latest release we make it deterministic.
101 lines
2.5 KiB
Makefile
101 lines
2.5 KiB
Makefile
all: svtplay-dl
|
|
|
|
.PHONY: test cover doctest pylint svtplay-dl \
|
|
release clean_releasedir $(RELEASE_DIR)
|
|
|
|
# These variables describe the latest release:
|
|
VERSION = 0.10
|
|
LATEST_RELEASE_DATE = 2015.05.24
|
|
LATEST_RELEASE = $(VERSION).$(LATEST_RELEASE_DATE)
|
|
|
|
# If we build a new release, this is what it will be called:
|
|
NEW_RELEASE_DATE = $(shell date +%Y.%m.%d)
|
|
NEW_RELEASE = $(VERSION).$(NEW_RELEASE_DATE)
|
|
RELEASE_DIR = svtplay-dl-$(NEW_RELEASE)
|
|
|
|
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 \
|
|
--center "svtplay-dl manual" \
|
|
--release "svtplay-dl $(VERSION)" \
|
|
--date "$(LATEST_RELEASE_DATE)"
|
|
|
|
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 $(RELEASE_DIR)
|
|
cd $(RELEASE_DIR) && git clone -b master ../ . && \
|
|
make svtplay-dl $(MANFILE)
|
|
|
|
clean_releasedir:
|
|
rm -rf $(RELEASE_DIR)
|
|
|
|
release: $(RELEASE_DIR) release-test
|
|
set -e; cd $(RELEASE_DIR) && \
|
|
sed -i -re 's/^(LATEST_RELEASE_DATE = ).*/\1$(NEW_RELEASE_DATE)/' Makefile;\
|
|
sed -i -re 's/^(__version__ = ).*/\1"$(NEW_RELEASE)"/' lib/svtplay_dl/__init__.py;\
|
|
make svtplay-dl; \
|
|
git add svtplay-dl Makefile lib/svtplay_dl/__init__.py; \
|
|
git commit -m "Prepare for release $(NEW_RELEASE)";
|
|
(cd $(RELEASE_DIR) && git format-patch --stdout HEAD^) | git am
|
|
|
|
git tag -m "New version $(NEW_RELEASE)" \
|
|
-m "$$(git log --oneline $(LATEST_RELEASE)..HEAD^)" \
|
|
$(NEW_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)
|