From af12e5a3ac887cd7dde344f67d9d43688e78e295 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Tue, 20 Dec 2011 16:35:13 -0400 Subject: 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. --- man/Makefile | 5 +++++ man/Makefile.local | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 man/Makefile create mode 100644 man/Makefile.local (limited to 'man') 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) -- cgit v1.2.3