.DEFAULT_GOAL := install

INSTALL ?= install
GZIP ?= gzip
TAR ?= tar
RM ?= rm

PREFIX ?= /usr/local
DESTDIR ?=
BINDIR ?= $(PREFIX)/bin
MANDIR ?= $(PREFIX)/share/man/man1

MKFHS1 = docs/mkfhs.1
MKFHS1_TARGET ?= docs/mkfhs.1.gz

EBS = src/ebs.sh
EBS_TARGET ?= $(DESTDIR)$(BINDIR)/ebs
MKFHS = src/mkfhs.sh
MKFHS_TARGET ?= $(DESTDIR)$(BINDIR)/mkfhs
ECW = src/ecw.sh
ECW_TARGET ?= $(DESTDIR)$(BINDIR)/ecw
BIN_TARGETS = $(ECW_TARGET) $(EBS_TARGET) $(MKFHS_TARGET)
MAN_TARGETS = $(MKFHS1_TARGET)

VERSION ?= 0.1.0
DISTFILE = ebt-$(VERSION).tar.xz
DISTDIR = ebt-$(VERSION)

$(EBS_TARGET): $(EBS)
	@echo " INSTALL $(EBS_TARGET)"
	@$(INSTALL) -dm755 $(DESTDIR)$(BINDIR)
	@$(INSTALL) -m755 $(EBS) $(EBS_TARGET)

$(MKFHS_TARGET): $(MKFHS)
	@echo " INSTALL $(MKFHS_TARGET)"
	@$(INSTALL) -dm755 $(DESTDIR)$(BINDIR)
	@$(INSTALL) -m755 $(MKFHS) $(MKFHS_TARGET)

$(ECW_TARGET): $(ECW)
	@echo " INSTALL $(ECW_TARGET)"
	@$(INSTALL) -dm755 $(DESTDIR)$(BINDIR)
	@$(INSTALL) -m755 $(ECW) $(ECW_TARGET)

$(MKFHS1_TARGET): $(MKFHS1)
	@echo " GZIP $(MKFHS1_TARGET)"
	@$(GZIP) -kc $(MKFHS1) > $(MKFHS1_TARGET)

install-exec: $(BIN_TARGETS)

install-doc: $(MKFHS1_TARGET)
	@echo " INSTALL $(DESTDIR)$(MANDIR)/mkfhs.1.gz"
	@$(INSTALL) -dm755 $(DESTDIR)$(MANDIR)
	@$(INSTALL) -m644 $(MKFHS1_TARGET) $(DESTDIR)$(MANDIR)/mkfhs.1.gz

clean:
	@echo " RM $(MKFHS1_TARGET)"
	@$(RM) -f $(MKFHS1_TARGET)

distclean: clean

install: install-exec install-doc

dist:
	@echo " MKDIR $(DISTDIR)"
	@mkdir -p $(DISTDIR)
	@echo " CP Makefile LICENSE src docs"
	@cp -r Makefile LICENSE src docs $(DISTDIR)/
	@echo " TAR $(DISTFILE)"
	@$(TAR) -cJf $(DISTFILE) $(DISTDIR)
	@echo " RM $(DISTDIR)"
	@$(RM) -rf $(DISTDIR)
	@echo " SHA256 $(DISTFILE).sha256"
	@sha256sum $(DISTFILE) > $(DISTFILE).sha256

.PHONY: install install-exec install-doc clean distclean dist
