X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=Makefile;h=4e51b5b0eb9710aa39f0e68fa73191c5b6fa122b;hp=ed5177404952e6c90be1d2eb6b6fa2838cc023ef;hb=d2b944ee3787199f1e3c74794877cc92a2309475;hpb=e3160d4cf8bd0488b74f6eedb3b9ad2af6cfa3bd diff --git a/Makefile b/Makefile index ed517740..4e51b5b0 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ # dgit # Integration between git and Debian-style archives # -# Copyright (C)2013 Ian Jackson +# Copyright (C)2013-2016 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 @@ -19,18 +19,82 @@ 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 +txtdocdir=$(prefix)/share/doc/dgit +absurddir=$(prefix)/share/dgit/absurd + PROGRAMS=dgit +MAN1PAGES=dgit.1 +MAN7PAGES=dgit.7 dgit-maint-merge.7 dgit-maint-gbp.7 +TXTDOCS=README.dsc-import +PERLMODULES=Debian/Dgit.pm +ABSURDITIES=git + +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.pm \ + Debian/Dgit/Infra.pm \ + Debian/Dgit/Policy/Debian.pm + +all: $(MAN7PAGES) $(addprefix substituted/,$(PROGRAMS)) -all: +substituted/%: % + mkdir -p substituted + perl -pe 's{\bundef\b}{'\''$(absurddir)'\''} if m/###substituted###/' \ + <$< >$@ -install: installdirs - $(INSTALL_PROGRAM) $(PROGRAMS) $(DESTDIR)$(prefix)/bin +install: installdirs all + $(INSTALL_PROGRAM) $(addprefix substituted/,$(PROGRAMS)) \ + $(DESTDIR)$(bindir) + $(INSTALL_PROGRAM) $(addprefix absurd/,$(ABSURDITIES)) \ + $(DESTDIR)$(absurddir) + $(INSTALL_DATA) $(MAN1PAGES) $(DESTDIR)$(man1dir) + $(INSTALL_DATA) $(MAN7PAGES) $(DESTDIR)$(man7dir) + $(INSTALL_DATA) $(TXTDOCS) $(DESTDIR)$(txtdocdir) + 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) \ + $(DESTDIR)$(txtdocdir) $(DESTDIR)$(absurddir) \ + $(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 substituted + set -e; for m in $(MAN7PAGES); do \ + test -e $$m.pod && rm -f $$m; \ + done + +%.7: %.7.pod + pod2man --section=7 --date="Debian Project" --center="dgit" \ + --name=$(subst .7,,$@) \ + $^ $@