mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-22 10:58:10 +01:00
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.
This commit is contained in:
parent
7c5695b439
commit
af12e5a3ac
4 changed files with 71 additions and 19 deletions
2
Makefile
2
Makefile
|
@ -3,7 +3,7 @@
|
||||||
all:
|
all:
|
||||||
|
|
||||||
# List all subdirectories here. Each contains its own Makefile.local
|
# List all subdirectories here. Each contains its own Makefile.local
|
||||||
subdirs = compat completion emacs lib util test
|
subdirs = compat completion emacs lib man util test
|
||||||
|
|
||||||
# We make all targets depend on the Makefiles themselves.
|
# We make all targets depend on the Makefiles themselves.
|
||||||
global_deps = Makefile Makefile.config Makefile.local \
|
global_deps = Makefile Makefile.config Makefile.local \
|
||||||
|
|
|
@ -53,7 +53,7 @@ endif
|
||||||
FINAL_LIBNOTMUCH_LDFLAGS = $(LDFLAGS) $(AS_NEEDED_LDFLAGS) $(CONFIGURE_LDFLAGS)
|
FINAL_LIBNOTMUCH_LDFLAGS = $(LDFLAGS) $(AS_NEEDED_LDFLAGS) $(CONFIGURE_LDFLAGS)
|
||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
all: notmuch notmuch-shared notmuch.1.gz
|
all: notmuch notmuch-shared
|
||||||
ifeq ($(MAKECMDGOALS),)
|
ifeq ($(MAKECMDGOALS),)
|
||||||
ifeq ($(shell cat .first-build-message 2>/dev/null),)
|
ifeq ($(shell cat .first-build-message 2>/dev/null),)
|
||||||
@NOTMUCH_FIRST_BUILD=1 $(MAKE) --no-print-directory all
|
@NOTMUCH_FIRST_BUILD=1 $(MAKE) --no-print-directory all
|
||||||
|
@ -95,8 +95,7 @@ dist: $(TAR_FILE)
|
||||||
|
|
||||||
.PHONY: update-versions
|
.PHONY: update-versions
|
||||||
|
|
||||||
update-versions:
|
update-versions: update-man-versions
|
||||||
sed -i "s/^.TH NOTMUCH 1.*$$/.TH NOTMUCH 1 ${DATE} \"Notmuch ${VERSION}\"/" notmuch.1
|
|
||||||
sed -i "s/^__VERSION__[[:blank:]]*=.*$$/__VERSION__ = \'${VERSION}\'/" $(PV_FILE)
|
sed -i "s/^__VERSION__[[:blank:]]*=.*$$/__VERSION__ = \'${VERSION}\'/" $(PV_FILE)
|
||||||
|
|
||||||
# We invoke make recursively only to force ordering of our phony
|
# We invoke make recursively only to force ordering of our phony
|
||||||
|
@ -221,14 +220,6 @@ verify-version-python: verify-version-components
|
||||||
echo "Please edit version and $(PV_FILE) to have consistent versions." && false)
|
echo "Please edit version and $(PV_FILE) to have consistent versions." && false)
|
||||||
@echo "Good."
|
@echo "Good."
|
||||||
|
|
||||||
.PHONY: verify-version-manpage
|
|
||||||
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;}' notmuch.1) ] || \
|
|
||||||
(echo "No." && \
|
|
||||||
echo "Please edit version and notmuch.1 to have consistent versions." && false)
|
|
||||||
@echo "Good."
|
|
||||||
|
|
||||||
.PHONY: verify-version-components
|
.PHONY: verify-version-components
|
||||||
verify-version-components:
|
verify-version-components:
|
||||||
@echo -n "Checking that $(VERSION) consists only of digits and periods..."
|
@echo -n "Checking that $(VERSION) consists only of digits and periods..."
|
||||||
|
@ -326,13 +317,8 @@ notmuch: $(notmuch_client_modules) lib/libnotmuch.a util/libutil.a
|
||||||
notmuch-shared: $(notmuch_client_modules) lib/$(LINKER_NAME)
|
notmuch-shared: $(notmuch_client_modules) lib/$(LINKER_NAME)
|
||||||
$(call quiet,$(FINAL_NOTMUCH_LINKER) $(CFLAGS)) $(notmuch_client_modules) $(FINAL_NOTMUCH_LDFLAGS) -o $@
|
$(call quiet,$(FINAL_NOTMUCH_LINKER) $(CFLAGS)) $(notmuch_client_modules) $(FINAL_NOTMUCH_LDFLAGS) -o $@
|
||||||
|
|
||||||
notmuch.1.gz: notmuch.1
|
|
||||||
gzip --stdout $^ > $@
|
|
||||||
|
|
||||||
.PHONY: install
|
.PHONY: install
|
||||||
install: all notmuch.1.gz
|
install: all install-man
|
||||||
mkdir -p "$(DESTDIR)$(mandir)/man1"
|
|
||||||
install -m0644 notmuch.1.gz "$(DESTDIR)$(mandir)/man1/"
|
|
||||||
mkdir -p "$(DESTDIR)$(prefix)/bin/"
|
mkdir -p "$(DESTDIR)$(prefix)/bin/"
|
||||||
install notmuch-shared "$(DESTDIR)$(prefix)/bin/notmuch"
|
install notmuch-shared "$(DESTDIR)$(prefix)/bin/notmuch"
|
||||||
ifeq ($(MAKECMDGOALS), install)
|
ifeq ($(MAKECMDGOALS), install)
|
||||||
|
@ -363,4 +349,4 @@ install-desktop:
|
||||||
desktop-file-install --mode 0644 --dir "$(DESTDIR)$(desktop_dir)" notmuch.desktop
|
desktop-file-install --mode 0644 --dir "$(DESTDIR)$(desktop_dir)" notmuch.desktop
|
||||||
|
|
||||||
SRCS := $(SRCS) $(notmuch_client_srcs)
|
SRCS := $(SRCS) $(notmuch_client_srcs)
|
||||||
CLEAN := $(CLEAN) notmuch notmuch-shared $(notmuch_client_modules) notmuch.elc notmuch.1.gz
|
CLEAN := $(CLEAN) notmuch notmuch-shared $(notmuch_client_modules) notmuch.elc
|
||||||
|
|
5
man/Makefile
Normal file
5
man/Makefile
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
all:
|
||||||
|
$(MAKE) -C .. all
|
||||||
|
|
||||||
|
.DEFAULT:
|
||||||
|
$(MAKE) -C .. $@
|
61
man/Makefile.local
Normal file
61
man/Makefile.local
Normal file
|
@ -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)
|
Loading…
Reference in a new issue