chiark / gitweb /
TODO.BRANCH: Add a todo list item
[dgit.git] / Makefile
index ed5177404952e6c90be1d2eb6b6fa2838cc023ef..a450e46d5ea9b116dcf1d7ac1a04a38d5c2ec278 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 # dgit
 # Integration between git and Debian-style archives
 #
-# Copyright (C)2013 Ian Jackson
+# Copyright (C)2013-2015 Ian Jackson
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 INSTALL=install
 INSTALL_DIR=$(INSTALL) -d
 INSTALL_PROGRAM=$(INSTALL) -m 755
+INSTALL_DATA=$(INSTALL) -m 644
+
 prefix?=/usr/local
 
+bindir=$(prefix)/bin
+mandir=$(prefix)/share/man
+perldir=$(prefix)/share/perl5
+man1dir=$(mandir)/man1
+man7dir=$(mandir)/man7
+infraexamplesdir=$(prefix)/share/doc/dgit-infrastructure/examples
+
 PROGRAMS=dgit
+MAN1PAGES=dgit.1
+MAN7PAGES=dgit.7
+PERLMODULES=Debian/Dgit.pm
+
+INFRA_PROGRAMS=dgit-repos-server dgit-ssh-dispatch \
+       dgit-repos-policy-debian dgit-repos-admin-debian \
+       dgit-repos-policy-trusting dgit-mirror-rsync
+INFRA_EXAMPLES=get-dm-txt ssh-wrap drs-cron-wrap get-suites
+INFRA_PERLMODULES=Debian/Dgit/Policy/Debian.pm
 
 all:
 
 install:       installdirs
-       $(INSTALL_PROGRAM) $(PROGRAMS) $(DESTDIR)$(prefix)/bin
+       $(INSTALL_PROGRAM) $(PROGRAMS) $(DESTDIR)$(bindir)
+       $(INSTALL_DATA) $(MAN1PAGES) $(DESTDIR)$(man1dir)
+       $(INSTALL_DATA) $(MAN7PAGES) $(DESTDIR)$(man7dir)
+       set -e; for m in $(PERLMODULES); do \
+               $(INSTALL_DATA) $$m $(DESTDIR)$(perldir)/$${m%/*}; \
+       done
 
 installdirs:
-       $(INSTALL_DIR) $(DESTDIR)$(prefix)/bin
+       $(INSTALL_DIR) $(DESTDIR)$(bindir) \
+               $(DESTDIR)$(man1dir) $(DESTDIR)$(man7dir) \
+               $(addprefix $(DESTDIR)$(perldir)/, $(dir $(PERLMODULES)))
+
+install-infra: installdirs-infra
+       $(INSTALL_PROGRAM) $(addprefix infra/, $(INFRA_PROGRAMS)) \
+               $(DESTDIR)$(bindir)
+       $(INSTALL_PROGRAM) $(addprefix infra/, $(INFRA_EXAMPLES)) \
+               $(DESTDIR)$(infraexamplesdir)
+       set -e; for m in $(INFRA_PERLMODULES); do \
+               $(INSTALL_DATA) $$m $(DESTDIR)$(perldir)/$${m%/*}; \
+       done
+
+installdirs-infra:
+       $(INSTALL_DIR) $(DESTDIR)$(bindir) $(DESTDIR)$(infraexamplesdir) \
+               $(addprefix $(DESTDIR)$(perldir)/, $(dir $(INFRA_PERLMODULES)))
 
 check installcheck:
 
 clean distclean mostlyclean maintainer-clean:
+       rm -rf tests/tmp