File: patch.mk

package info (click to toggle)
libjpeg6b 6b-14
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 2,756 kB
  • ctags: 2,634
  • sloc: ansic: 21,031; sh: 6,867; asm: 284; makefile: 78
file content (63 lines) | stat: -rw-r--r-- 2,730 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# -*- Makefile -*-, you silly Emacs!
#From the dpatch debian package.
#Copyright (C) 2002, 2003  Gergely Nagy, Joerg Jaspert
#Released under the GPL

DPATCH_ARCH	 = $(shell dpkg-architecture -qDEB_BUILD_ARCH)
PATCHLIST_ALL	 = $(shell cat debian/patches/00list | grep -v ^\# )
PATCHLIST_ARCH	 = $(shell cat debian/patches/00list.${DPATCH_ARCH} | grep -v ^\# 2>/dev/null)
PATCHLIST	?= $(sort ${PATCHLIST_ALL} ${PATCHLIST_ARCH})

UNPATCHLIST	 = $(shell echo ${PATCHLIST} | tr ' ' '\n' | tac)

patch: patch-stamp
patch-stamp:
	test -d debian/patched || install -d debian/patched
	@echo "Patches applied in the Debian version of ${PACKAGE}:" > $@T
	@for patch in ${PATCHLIST}; do \
		patchdir=$${patch%/*}; \
		test "x$$patchdir" = "x$$patch" || \
			install -d debian/patched/$$patchdir; \
                stamp=debian/patched/$${patch%%.dpatch}.dpatch; \
		test -e debian/patches/$$patch || ext=.dpatch; \
                patch=debian/patches/$$patch$$ext; \
                author=`sed -n "s,^#* *.*dpatch by *,,p" $$patch`; \
                test -x $$patch || chmod +x $$patch; \
		if test -f $$stamp; then \
                        echo "$$patch already applied."; \
                        echo -e "\n$$patch ($$author):" >> $@T; \
                        sed -n 's/^#* *DP: */  /p' $$patch >> $@T; \
                else \
                        echo -n "applying patch $$patch..."; \
                        if $$patch -patch >$$stamp.new 2>&1; then \
                                mv $$stamp.new $$stamp; \
                                touch $$stamp; \
                                echo -e "\n$$patch ($$author):" >> $@T; \
                                sed -n 's/^#* *DP: */  /p' $$patch >> $@T; \
                                echo " ok."; \
                        else \
                                echo " failed."; \
                                exit 1; \
                        fi; \
                fi; \
	done
	mv -f $@T $@

unpatch:
	@for patch in ${UNPATCHLIST}; do \
                stamp=debian/patched/$${patch%%.dpatch}.dpatch; \
		test -e debian/patches/$$patch || ext=.dpatch; \
                patch=debian/patches/$$patch$$ext; \
                test -x $$patch || chmod +x $$patch; \
                if test -f $$stamp; then \
                        echo -n "reverting patch $$patch..."; \
                        if $$patch -unpatch 2>&1 >/dev/null; then \
                                rm -f $$stamp; \
                                echo " ok."; \
                        else \
                                echo " failed."; \
                                exit 1; \
                        fi; \
                fi; \
	done
	rm -rf patch-stamp patch-stampT debian/patched