From c44c83bc33deb6f9c649fd417b53d053b147bef3 Mon Sep 17 00:00:00 2001 From: Axel Burri Date: Mon, 9 Oct 2017 22:21:52 +0200 Subject: [PATCH] Makefile: call doc/Makefile for installing files from "doc/" folder; use more variables --- Makefile | 75 ++++++++++++++++++++++++++++++---------------------- doc/Makefile | 19 +++++++++++++ 2 files changed, 62 insertions(+), 32 deletions(-) diff --git a/Makefile b/Makefile index 1ddd030..8beb598 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,15 @@ -PN = btrbk +# NOTE: systemd units are hardcoded in "install-systemd" for simplicity +# NOTE: documentation inside "doc/" folder is processed in "doc/Makefile" +BIN = btrbk +CONFIGS = btrbk.conf.example +DOCS = ChangeLog \ + README.md +SCRIPTS = ssh_filter_btrbk.sh \ + contrib/cron/btrbk-mail \ + contrib/migration/raw_suffix2sidecar \ + contrib/crypt/kdf_pbkdf2.py +PN = btrbk PREFIX ?= /usr CONFDIR = /etc CRONDIR = /etc/cron.daily @@ -10,7 +20,7 @@ SYSTEMDDIR = $(PREFIX)/lib/systemd/system MAN1DIR = $(PREFIX)/share/man/man1 MAN5DIR = $(PREFIX)/share/man/man5 -process = sed \ +replace_vars = sed \ -e "s|@PN@|$(PN)|g" \ -e "s|@CONFDIR@|$(CONFDIR)|g" \ -e "s|@CRONDIR@|$(CRONDIR)|g" \ @@ -21,48 +31,49 @@ process = sed \ -e "s|@MAN1DIR@|$(MAN1DIR)|g" \ -e "s|@MAN5DIR@|$(MAN5DIR)|g" -all: - @echo 'nothing to do for "all"' +all: man + +install: install-bin install-etc install-systemd install-share install-man install-doc install-bin: - @echo 'installing main script and config...' - install -pDm644 btrbk.conf.example "$(DESTDIR)$(CONFDIR)/btrbk/btrbk.conf.example" - install -pDm755 $(PN) "$(DESTDIR)$(BINDIR)/$(PN)" + @echo 'installing binary...' + install -d -m 755 "$(DESTDIR)$(BINDIR)" + install -p -m 755 $(BIN) "$(DESTDIR)$(BINDIR)" + +install-etc: + @echo 'installing example configs...' + install -d -m 755 "$(DESTDIR)$(CONFDIR)/btrbk" + install -p -m 644 $(CONFIGS) "$(DESTDIR)$(CONFDIR)/btrbk" install-systemd: @echo 'installing systemd service units...' - $(process) contrib/systemd/btrbk.service.in > contrib/systemd/btrbk.service.tmp - $(process) contrib/systemd/btrbk.timer.in > contrib/systemd/btrbk.timer.tmp - install -pDm644 contrib/systemd/btrbk.service.tmp "$(DESTDIR)$(SYSTEMDDIR)/btrbk.service" - install -pDm644 contrib/systemd/btrbk.timer.tmp "$(DESTDIR)$(SYSTEMDDIR)/btrbk.timer" + install -d -m 755 "$(DESTDIR)$(SYSTEMDDIR)" + $(replace_vars) contrib/systemd/btrbk.service.in > contrib/systemd/btrbk.service.tmp + $(replace_vars) contrib/systemd/btrbk.timer.in > contrib/systemd/btrbk.timer.tmp + install -p -m 644 contrib/systemd/btrbk.service.tmp "$(DESTDIR)$(SYSTEMDDIR)/btrbk.service" + install -p -m 644 contrib/systemd/btrbk.timer.tmp "$(DESTDIR)$(SYSTEMDDIR)/btrbk.timer" rm contrib/systemd/btrbk.service.tmp rm contrib/systemd/btrbk.timer.tmp install-share: @echo 'installing auxiliary scripts...' - install -pDm755 ssh_filter_btrbk.sh "$(DESTDIR)$(SCRIPTDIR)/ssh_filter_btrbk.sh" - install -pDm755 contrib/cron/btrbk-mail "$(DESTDIR)$(SCRIPTDIR)/btrbk-mail" - install -pDm755 contrib/migration/raw_suffix2sidecar "$(DESTDIR)$(SCRIPTDIR)/raw_suffix2sidecar" - install -pDm755 contrib/crypt/kdf_pbkdf2.py "$(DESTDIR)$(SCRIPTDIR)/kdf_pbkdf2.py" + install -d -m 755 "$(DESTDIR)$(SCRIPTDIR)" + install -p -m 755 $(SCRIPTS) "$(DESTDIR)$(SCRIPTDIR)" -install-man: - @echo 'installing manpages...' - install -pDm644 doc/btrbk.1 "$(DESTDIR)$(MAN1DIR)/btrbk.1" - install -pDm644 doc/ssh_filter_btrbk.1 "$(DESTDIR)$(MAN1DIR)/ssh_filter_btrbk.1" - install -pDm644 doc/btrbk.conf.5 "$(DESTDIR)$(MAN5DIR)/btrbk.conf.5" - gzip -9f "$(DESTDIR)$(MAN1DIR)/btrbk.1" - gzip -9f "$(DESTDIR)$(MAN1DIR)/ssh_filter_btrbk.1" - gzip -9f "$(DESTDIR)$(MAN5DIR)/btrbk.conf.5" +install-man: man + @echo 'installing man pages...' + @$(MAKE) -C doc install-man install-doc: @echo 'installing documentation...' - install -pDm644 ChangeLog "$(DESTDIR)$(DOCDIR)/ChangeLog" - install -pDm644 README.md "$(DESTDIR)$(DOCDIR)/README.md" - install -pDm644 doc/FAQ.md "$(DESTDIR)$(DOCDIR)/FAQ.md" - install -pDm644 doc/upgrade_to_v0.23.0.md "$(DESTDIR)$(DOCDIR)/upgrade_to_v0.23.0.md" - gzip -9f "$(DESTDIR)$(DOCDIR)/ChangeLog" - gzip -9f "$(DESTDIR)$(DOCDIR)/README.md" - gzip -9f "$(DESTDIR)$(DOCDIR)/FAQ.md" - gzip -9f "$(DESTDIR)$(DOCDIR)/upgrade_to_v0.23.0.md" + install -d -m 755 "$(DESTDIR)$(DOCDIR)" + install -p -m 644 $(DOCS) "$(DESTDIR)$(DOCDIR)" + gzip -9f $(addprefix "$(DESTDIR)$(DOCDIR)"/, $(DOCS)) + @$(MAKE) -C doc install-doc -install: install-bin install-systemd install-share install-man install-doc +man: + @echo 'generating manpages...' + @$(MAKE) -C doc man + +clean: + @$(MAKE) -C doc clean diff --git a/doc/Makefile b/doc/Makefile index 2b22660..5e5916e 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -4,6 +4,12 @@ MAN_MAN1 = btrbk.1 \ ssh_filter_btrbk.1 MAN_MAN5 = btrbk.conf.5 +PN = btrbk +PREFIX ?= /usr +DOCDIR = $(PREFIX)/share/doc/$(PN) +MAN1DIR = $(PREFIX)/share/man/man1 +MAN5DIR = $(PREFIX)/share/man/man5 + GZ_MAN1 = $(addsuffix .gz,$(MAN_MAN1)) GZ_MAN5 = $(addsuffix .gz,$(MAN_MAN5)) @@ -12,6 +18,19 @@ man: man1 man5 man1: $(GZ_MAN1) man5: $(GZ_MAN5) +install: install-man install-doc + +install-man: man + install -d -m 755 "$(DESTDIR)$(MAN1DIR)" + install -d -m 755 "$(DESTDIR)$(MAN5DIR)" + install -p -m 644 $(GZ_MAN1) "$(DESTDIR)$(MAN1DIR)" + install -p -m 644 $(GZ_MAN5) "$(DESTDIR)$(MAN5DIR)" + +install-doc: + install -d -m 755 "$(DESTDIR)$(DOCDIR)" + install -p -m 644 $(DOCS) "$(DESTDIR)$(DOCDIR)" + gzip -9f $(addprefix "$(DESTDIR)$(DOCDIR)"/, $(DOCS)) + clean: rm -f $(GZ_MAN1) $(GZ_MAN5)