Makefile: call doc/Makefile for installing files from "doc/" folder; use more variables

pull/204/head
Axel Burri 2017-10-09 22:21:52 +02:00
parent c26b7d3748
commit c44c83bc33
2 changed files with 62 additions and 32 deletions

View File

@ -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

View File

@ -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)