PREFIX     ?= /usr
SYSCONFDIR ?= /etc
DESTDIR    ?=

SBINDIR    = $(DESTDIR)$(PREFIX)/sbin
SHAREDIR   = $(DESTDIR)$(PREFIX)/share/abyssinit
DOCDIR     = $(DESTDIR)$(PREFIX)/share/doc/abyssinit
EXAMPLEDIR = $(SHAREDIR)/examples

HOOK_SRC   = share/initramfs-tools/hooks/abyssinit
SCRIPT_SRC = share/initramfs-tools/scripts/local-top/abyssinit

all:
	@echo "abyssinit is a set of POSIX shell scripts; nothing to build."
	@echo "Run 'sudo make install' to install, then 'abyssinit install' to"
	@echo "wire up the initramfs hook."

install:
	install -d $(SBINDIR)
	install -m 0755 bin/abyssinit $(SBINDIR)/abyssinit
	install -d $(SHAREDIR)/initramfs-tools/hooks
	install -m 0755 $(HOOK_SRC) $(SHAREDIR)/initramfs-tools/hooks/abyssinit
	install -d $(SHAREDIR)/initramfs-tools/scripts/local-top
	install -m 0755 $(SCRIPT_SRC) $(SHAREDIR)/initramfs-tools/scripts/local-top/abyssinit
	install -d $(EXAMPLEDIR)
	install -m 0644 share/examples/abyssinit.conf $(EXAMPLEDIR)/abyssinit.conf
	install -d $(DOCDIR)
	install -m 0644 README.md $(DOCDIR)/README.md

uninstall:
	rm -f  $(SBINDIR)/abyssinit
	rm -rf $(SHAREDIR)
	rm -rf $(DOCDIR)

# Sanity checks - requires shellcheck if you want to run them.
check:
	@command -v shellcheck >/dev/null 2>&1 || { \
		echo "shellcheck not installed; skipping" >&2; exit 0; }
	shellcheck -s sh bin/abyssinit $(HOOK_SRC) $(SCRIPT_SRC)

.PHONY: all install uninstall check
