# dgit
# Integration between git and Debian-style archives
#
-# Copyright (C)2013-2015 Ian Jackson
+# Copyright (C)2013-2018 Ian Jackson
+# Copyright (C)2019 Sean Whitton
#
# 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
mandir=$(prefix)/share/man
perldir=$(prefix)/share/perl5
man1dir=$(mandir)/man1
+man5dir=$(mandir)/man5
+man7dir=$(mandir)/man7
infraexamplesdir=$(prefix)/share/doc/dgit-infrastructure/examples
+txtdocdir=$(prefix)/share/doc/dgit
+absurddir=$(prefix)/share/dgit/absurd
-PROGRAMS=dgit
+PROGRAMS=dgit dgit-badcommit-fixup git-playtree-setup
MAN1PAGES=dgit.1
-PERLMODULES=Debian/Dgit.pm
+
+MAN7PAGES=dgit.7 \
+ dgit-user.7 dgit-nmu-simple.7 \
+ dgit-maint-native.7 \
+ dgit-maint-merge.7 dgit-maint-gbp.7 \
+ dgit-maint-debrebase.7 \
+ dgit-downstream-dsc.7 \
+ dgit-sponsorship.7 \
+ dgit-maint-bpo.7
+
+TXTDOCS=README.dsc-import
+PERLMODULES= \
+ Debian/Dgit.pm \
+ Debian/Dgit/ExitStatus.pm \
+ Debian/Dgit/I18n.pm
+ABSURDITIES=git
+
+GDR_PROGRAMS=git-debrebase
+GDR_PERLMODULES= \
+ Debian/Dgit.pm \
+ Debian/Dgit/GDR.pm \
+ Debian/Dgit/ExitStatus.pm \
+ Debian/Dgit/I18n.pm
+GDR_MAN1PAGES=git-debrebase.1
+GDR_MAN5PAGES=git-debrebase.5
+
+GDP_PROGRAMS=git-debpush
+GDP_MAN1PAGES=git-debpush.1
INFRA_PROGRAMS=dgit-repos-server dgit-ssh-dispatch \
dgit-repos-policy-debian dgit-repos-admin-debian \
- dgit-repos-policy-trusting
-INFRA_EXAMPLES=get-dm-txt ssh-wrap drs-cron-wrap
-INFRA_PERLMODULES=Debian/Dgit/Policy/Debian.pm
+ 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
+
+MANPAGES=$(MAN1PAGES) $(MAN5PAGES) $(MAN7PAGES) \
+ $(GDR_MAN1PAGES) $(GDR_MAN5PAGES) \
+ $(GDP_MAN1PAGES)
+
+all: $(MANPAGES) $(addprefix substituted/,$(PROGRAMS))
-all:
+substituted/%: %
+ mkdir -p substituted
+ perl -pe 's{\bundef\b}{'\''$(absurddir)'\''} if m/###substituted###/' \
+ <$< >$@
-install: installdirs
- $(INSTALL_PROGRAM) $(PROGRAMS) $(DESTDIR)$(bindir)
+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)$(bindir) $(DESTDIR)$(man1dir) \
+ $(INSTALL_DIR) $(DESTDIR)$(bindir) \
+ $(DESTDIR)$(man1dir) $(DESTDIR)$(man5dir) \
+ $(DESTDIR)$(man7dir) \
+ $(DESTDIR)$(txtdocdir) $(DESTDIR)$(absurddir) \
$(addprefix $(DESTDIR)$(perldir)/, $(dir $(PERLMODULES)))
+install-gdp: installdirs-gdp
+ $(INSTALL_PROGRAM) $(GDP_PROGRAMS) $(DESTDIR)$(bindir)
+ $(INSTALL_DATA) $(GDP_MAN1PAGES) $(DESTDIR)$(man1dir)
+
+install-gdr: installdirs-gdr
+ $(INSTALL_PROGRAM) $(GDR_PROGRAMS) $(DESTDIR)$(bindir)
+ $(INSTALL_DATA) $(GDR_MAN1PAGES) $(DESTDIR)$(man1dir)
+ $(INSTALL_DATA) $(GDR_MAN5PAGES) $(DESTDIR)$(man5dir)
+ set -e; for m in $(GDR_PERLMODULES); do \
+ $(INSTALL_DATA) $$m $(DESTDIR)$(perldir)/$${m%/*}; \
+ done
+
install-infra: installdirs-infra
$(INSTALL_PROGRAM) $(addprefix infra/, $(INFRA_PROGRAMS)) \
$(DESTDIR)$(bindir)
$(INSTALL_DATA) $$m $(DESTDIR)$(perldir)/$${m%/*}; \
done
+installdirs-gdp:
+ $(INSTALL_DIR) $(DESTDIR)$(bindir) $(DESTDIR)$(man1dir)
+
+installdirs-gdr:
+ $(INSTALL_DIR) $(DESTDIR)$(bindir) \
+ $(DESTDIR)$(man1dir) $(DESTDIR)$(man5dir) \
+ $(addprefix $(DESTDIR)$(perldir)/, $(dir $(GDR_PERLMODULES)))
+
installdirs-infra:
$(INSTALL_DIR) $(DESTDIR)$(bindir) $(DESTDIR)$(infraexamplesdir) \
$(addprefix $(DESTDIR)$(perldir)/, $(dir $(INFRA_PERLMODULES)))
+list-manpages:
+ @echo $(MANPAGES)
+
+i18n i18n-update:
+ $(MAKE) -C po update
+ $(MAKE) -C po4a update
+
+i18n-commit:
+ set -e; x=$$(git status --porcelain); set -x; test "x$$x" = x
+ $(MAKE) i18n-update
+ git commit -a -m 'i18n-commit - autogenerated'
+
check installcheck:
clean distclean mostlyclean maintainer-clean:
+ rm -rf tests/tmp substituted
+ set -e; for m in $(MANPAGES); do \
+ test -e $$m.pod && rm -f $$m; \
+ done
+
+dgit%: dgit%.pod
+ m=$@; pod2man --section=$${m##*.} --date="Debian Project" \
+ --center="dgit" --name=$${m%.*} \
+ $^ $@
+
+git-debrebase.%: git-debrebase.%.pod
+ pod2man --section=$* --date="Debian Project" --center="git-debrebase" \
+ --name=$(subst .$*,,$@) \
+ $^ $@
+
+git-debpush.1: git-debpush.1.pod
+ pod2man --section=1 --date="Debian Project" --center="git-debpush" \
+ --name git-debpush \
+ $^ $@
+
+%.view: %
+ man -l $*