chiark / gitweb /
git-playtree-setup: Rewrite in shell and call it from Perl
[dgit.git] / debian / rules
1 #!/usr/bin/make -f
2
3 # dgit
4 # Integration between git and Debian-style archives
5 #
6 # Copyright (C)2013-2019 Ian Jackson
7 # Copyright (C)2019      Sean Whitton
8 #
9 # This program is free software: you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License as published by
11 # the Free Software Foundation, either version 3 of the License, or
12 # (at your option) any later version.
13 #
14 # This program is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 # GNU General Public License for more details.
18 #
19 # You should have received a copy of the GNU General Public License
20 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
21
22 export prefix=/usr
23
24 %:
25         dh $@
26
27 override_dh_gencontrol:
28         dh_gencontrol
29         set -e; \
30          cd debian/dgit; \
31          v=$$(perl -ne 'print if s/^version:\s+//i' DEBIAN/control); \
32          perl -i -pe "s/UNRELEASED/$$v/g if m/###substituted###/" usr/bin/dgit
33
34 override_dh_auto_clean:
35         dh_auto_clean
36         make -C po clean
37
38 globalperl=/usr/share/perl5
39
40 override_dh_auto_install: specpkg_install_gdp \
41  specpkg_install_gdr \
42  specpkg_install_infra
43         make install prefix=/usr DESTDIR=debian/dgit
44         make -C po install prefix=/usr DESTDIR=../debian/tmp \
45                 SUPPRESS_PO_UPDATE=1 S=''
46         mv debian/dgit/usr/bin/git-playtree-create debian/dgit/usr/share/dgit
47         make -C po4a install DESTDIR=../debian/tmp S=''
48
49 override_dh_missing:
50         dh_missing --fail-missing
51
52 specpkg_install_gdp: p=git-debpush
53
54 specpkg_install_gdr: p=git-debrebase
55 specpkg_install_gdr: pm=GDR
56
57 specpkg_install_infra: p=dgit-infrastructure
58 specpkg_install_infra: pm=Infra
59
60 define specpkg_install_common
61         make install-$(tok) prefix=/usr DESTDIR=debian/$(p) perldir=$(specperl)
62 endef
63
64 specpkg_install_gdp: tok=gdp
65 specpkg_install_gdp: specperl=/usr/share/dgit/gdp/perl5
66 specpkg_install_gdp:
67         $(specpkg_install_common)
68
69 specpkg_install_%: tok=$*
70 specpkg_install_%: specperl=/usr/share/dgit/$(tok)/perl5
71 specpkg_install_%:
72         $(specpkg_install_common)
73 #       # Most of the Perl modules in this package live in
74 #       # $(specperl).  The exception is Debian::Dgit::Infra, which
75 #       # lives in $(globalperl) and adds $(specperl) to @INC.
76 #       # We also abuse this for git-playtree-create.  In .debs, this
77 #       # goes in the per-.deb @INC dir.  See Dgit.pm::playtree_setup.
78         set -ex; \
79          base=debian/$(p); \
80          mod=Debian/Dgit/$(pm).pm; \
81          src=$${base}$(specperl)/$${mod}; \
82          dst=$${base}$(globalperl)/$${mod}; \
83          mkdir -p $${dst%/*}; \
84          mv -f $$src $$dst; \
85          install -m 755 git-playtree-create $${base}$(specperl); \
86          perl -i -p -e 'next unless m/###substituted###/;' \
87                 -e 'next unless s/^# (?=unshift \@INC,)//;' \
88                 -e 'die unless s{q\{\S+\}}{q{$(specperl)}};' \
89                  $$dst
90
91 debian/tests/control: tests/enumerate-tests debian/tests/control.in
92         $< gencontrol >$@.new && mv -f $@.new $@
93
94 debian/tests/control: tests/lib-core tests/lib-restricts
95 debian/tests/control: tests/tests $(wildcard tests/tests/*[^~#])