aboutsummaryrefslogtreecommitdiffhomepage
path: root/man
diff options
context:
space:
mode:
authorGravatar David Bremner <bremner@debian.org>2011-12-20 16:35:13 -0400
committerGravatar David Bremner <bremner@debian.org>2011-12-31 15:16:32 -0400
commitaf12e5a3ac887cd7dde344f67d9d43688e78e295 (patch)
treec9eae15b94643cfaa801fbf12a7f5eebf9817c06 /man
parent7c5695b439d89d69d5f6d6a88cdcf964d7a98fbe (diff)
build-system: update for split man pages
- We have to remove the installation of notmuch.1.gz from the top level Makefile.local. - Man pages with multiple names are handled by making relative symlinks in the install-man target. - update version tests and convenience rules for split man pages The man page version test still only checks notmuch.1, but the location is updated. update-man-versions is longer than the one-line previously in update-versions mainly because I decided to take the high road and stick to POSIX sed (thus, no sed -i). The sed regex itself is more complicated to cope with variations in the headers.
Diffstat (limited to 'man')
-rw-r--r--man/Makefile5
-rw-r--r--man/Makefile.local61
2 files changed, 66 insertions, 0 deletions
diff --git a/man/Makefile b/man/Makefile
new file mode 100644
index 00000000..fa25832e
--- /dev/null
+++ b/man/Makefile
@@ -0,0 +1,5 @@
+all:
+ $(MAKE) -C .. all
+
+.DEFAULT:
+ $(MAKE) -C .. $@
diff --git a/man/Makefile.local b/man/Makefile.local
new file mode 100644
index 00000000..234ae89c
--- /dev/null
+++ b/man/Makefile.local
@@ -0,0 +1,61 @@
+# -*- Makefile -*-
+
+dir := man
+
+# this variable seems to be needed to prevent lazy evaluation causing
+# problems with $(dir) changing values.
+MAIN_PAGE := $(dir)/man1/notmuch.1
+
+MAN1 := \
+ $(MAIN_PAGE) \
+ $(dir)/man1/notmuch-config.1 \
+ $(dir)/man1/notmuch-count.1 \
+ $(dir)/man1/notmuch-dump.1 \
+ $(dir)/man1/notmuch-new.1 \
+ $(dir)/man1/notmuch-part.1 \
+ $(dir)/man1/notmuch-reply.1 \
+ $(dir)/man1/notmuch-search.1 \
+ $(dir)/man1/notmuch-show.1 \
+ $(dir)/man1/notmuch-tag.1
+
+MAN5 := $(dir)/man5/notmuch-hooks.5
+MAN7 := $(dir)/man7/notmuch-search-terms.7
+
+MAN1_GZ := $(addsuffix .gz,$(MAN1))
+MAN5_GZ := $(addsuffix .gz,$(MAN5))
+MAN7_GZ := $(addsuffix .gz,$(MAN7))
+
+MAN_SOURCE := $(MAN1) $(MAN5) $(MAN7)
+MAN_BACKUP := $(addsuffix .bak,$(MAN_SOURCE))
+COMPRESSED_MAN := $(MAN1_GZ) $(MAN5_GZ) $(MAN7_GZ)
+
+%.gz: %
+ gzip --stdout $^ > $@
+
+.PHONY: install-man update-man-versions verify-version-manpage
+
+install-man: $(COMPRESSED_MAN)
+ mkdir -p "$(DESTDIR)$(mandir)/man1"
+ mkdir -p "$(DESTDIR)$(mandir)/man5"
+ mkdir -p "$(DESTDIR)$(mandir)/man7"
+ install -m0644 $(MAN1_GZ) $(DESTDIR)/$(mandir)/man1
+ install -m0644 $(MAN5_GZ) $(DESTDIR)/$(mandir)/man5
+ install -m0644 $(MAN7_GZ) $(DESTDIR)/$(mandir)/man7
+ cd $(DESTDIR)/$(mandir)/man1 && ln -s notmuch.1.gz notmuch-setup.1.gz
+ cd $(DESTDIR)/$(mandir)/man1 && ln -s notmuch-dump.1.gz notmuch-restore.1.gz
+
+verify-version-manpage: verify-version-components
+ @echo -n "Checking that manual page version is $(VERSION)..."
+ @[ "$(VERSION)" = $$(sed -n '/^[.]TH NOTMUCH 1/{s/.*"Notmuch //;s/".*//p;}' $(MAIN_PAGE)) ] || \
+ (echo "No." && \
+ echo "Please edit version and notmuch.1 to have consistent versions." && false)
+ @echo "Good."
+
+update-man-versions: $(MAN_SOURCE)
+ for file in $(MAN_SOURCE); do \
+ cp $$file $$file.bak ; \
+ sed "s/^.TH NOTMUCH\([^[:blank:]]*\) \([1-9]\) .*$$/.TH NOTMUCH\1 \2 ${DATE} \"Notmuch ${VERSION}\"/" \
+ < $$file.bak > $$file; \
+ done
+
+CLEAN := $(CLEAN) $(COMPRESSED_MAN) $(MAN_BACKUP)