#!/usr/bin/make -f export DEB_BUILD_MAINT_OPTIONS = hardening=+all %: dh $@ --parallel --with autoreconf ## http://wiki.debian.org/onlyjob/get-orig-source PKD = $(word 1,$(abspath $(dir $(MAKEFILE_LIST)))) PKG = $(word 2,$(shell dpkg-parsechangelog -l$(PKD)/changelog | grep ^Source)) UVER = $(shell dpkg-parsechangelog -l$(PKD)/changelog | perl -ne 'print $$1 if m{^Version:\s+(?:\d+:)?(\d.*)(?:\-\d+.*)};') DTYPE = VER ?= $(subst $(DTYPE),,$(UVER)) UURL = http://git.drumgizmo.org/dgedit.git UDATE = $(shell date --rfc-3339=seconds --date='TZ="UTC" $(shell echo $(VER) | perl -ne 'print "$$1-$$2-$$3" if m/\+(?:git|svn|hg)(\d{4})(\d{2})(\d{2})/')') .PHONY: get-orig-source get-orig-source: $(PKG)_$(VER)$(DTYPE).orig.tar.xz $(info I: $(PKG)_$(VER)$(DTYPE)) @ $(PKG)_$(VER)$(DTYPE).orig.tar.xz: $(info I: UDATE=$(UDATE)) $(if $(wildcard $(PKG)-$(VER)),$(error $(PKG)-$(VER) exist, aborting..)) @echo "# Downloading..." git clone $(UURL) $(PKG)-$(VER) \ || $(RM) -r $(PKG)-$(VER) cd $(PKG)-$(VER) \ && git checkout v$(VER) || git checkout $$(git log -n1 --format=%h --before="$(UDATE)") \ && [ -s ChangeLog ] || ( echo "# Generating ChangeLog..." \ ; git log --pretty="format:%ad %aN <%aE>%n%n%x09* %s%n" --date=short > ChangeLog \ ; touch -d "$$(git log -1 --format='%ci')" ChangeLog) \ && echo "# Setting times..." \ && git ls-tree -r --name-only HEAD | while read F ; do touch --no-dereference -d "$$(git log -1 --format="%ai" -- "$$F")" "$$F"; done \ && echo "# Cleaning-up..." \ && $(RM) -r .git .git* @echo "# Packing..." find -L "$(PKG)-$(VER)" -xdev -type f -print | LC_ALL=C sort \ | XZ_OPT="-6v" tar -caf "$(PKG)_$(VER)$(DTYPE).orig.tar.xz" -T- --owner=root --group=root --mode=a+rX \ && $(RM) -r "$(PKG)-$(VER)"