chiark / gitweb /
dgit.1: Discourage use of the --PROGRAM:OPTION escape hatch.
[dgit.git] / Makefile
1 # dgit
2 # Integration between git and Debian-style archives
3 #
4 # Copyright (C)2013-2015 Ian Jackson
5 #
6 # This program is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation, either version 3 of the License, or
9 # (at your option) any later version.
10 #
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15 #
16 # You should have received a copy of the GNU General Public License
17 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
18
19 INSTALL=install
20 INSTALL_DIR=$(INSTALL) -d
21 INSTALL_PROGRAM=$(INSTALL) -m 755
22 INSTALL_DATA=$(INSTALL) -m 644
23
24 prefix?=/usr/local
25
26 bindir=$(prefix)/bin
27 mandir=$(prefix)/share/man
28 perldir=$(prefix)/share/perl5
29 man1dir=$(mandir)/man1
30 man7dir=$(mandir)/man7
31 infraexamplesdir=$(prefix)/share/doc/dgit-infrastructure/examples
32 txtdocdir=$(prefix)/share/doc/dgit
33
34 PROGRAMS=dgit
35 MAN1PAGES=dgit.1
36 MAN7PAGES=dgit.7
37 TXTDOCS=README.dsc-import
38 PERLMODULES=Debian/Dgit.pm
39
40 INFRA_PROGRAMS=dgit-repos-server dgit-ssh-dispatch \
41         dgit-repos-policy-debian dgit-repos-admin-debian \
42         dgit-repos-policy-trusting dgit-mirror-rsync
43 INFRA_EXAMPLES=get-dm-txt ssh-wrap drs-cron-wrap get-suites
44 INFRA_PERLMODULES=Debian/Dgit/Policy/Debian.pm
45
46 all:
47
48 install:        installdirs
49         $(INSTALL_PROGRAM) $(PROGRAMS) $(DESTDIR)$(bindir)
50         $(INSTALL_DATA) $(MAN1PAGES) $(DESTDIR)$(man1dir)
51         $(INSTALL_DATA) $(MAN7PAGES) $(DESTDIR)$(man7dir)
52         $(INSTALL_DATA) $(TXTDOCS) $(DESTDIR)$(txtdocdir)
53         set -e; for m in $(PERLMODULES); do \
54                 $(INSTALL_DATA) $$m $(DESTDIR)$(perldir)/$${m%/*}; \
55         done
56
57 installdirs:
58         $(INSTALL_DIR) $(DESTDIR)$(bindir) \
59                 $(DESTDIR)$(man1dir) $(DESTDIR)$(man7dir) \
60                 $(DESTDIR)$(txtdocdir) \
61                 $(addprefix $(DESTDIR)$(perldir)/, $(dir $(PERLMODULES)))
62
63 install-infra:  installdirs-infra
64         $(INSTALL_PROGRAM) $(addprefix infra/, $(INFRA_PROGRAMS)) \
65                 $(DESTDIR)$(bindir)
66         $(INSTALL_PROGRAM) $(addprefix infra/, $(INFRA_EXAMPLES)) \
67                 $(DESTDIR)$(infraexamplesdir)
68         set -e; for m in $(INFRA_PERLMODULES); do \
69                 $(INSTALL_DATA) $$m $(DESTDIR)$(perldir)/$${m%/*}; \
70         done
71
72 installdirs-infra:
73         $(INSTALL_DIR) $(DESTDIR)$(bindir) $(DESTDIR)$(infraexamplesdir) \
74                 $(addprefix $(DESTDIR)$(perldir)/, $(dir $(INFRA_PERLMODULES)))
75
76 check installcheck:
77
78 clean distclean mostlyclean maintainer-clean:
79         rm -rf tests/tmp