# These are for development
# distributions should use their own flags
CFLAGS = -ggdb2 -Wall -Wextra -Wshadow -Wformat=2 -Wpedantic
BIN = fifo-cronolog
HELPER = fifo-cronolog-setup
SRC = $(BIN).c
OBJ = $(patsubst %.c,%.o,$(SRC))

BINDIR = /usr/sbin/
SYSTEMD_TARGET = /usr/lib/systemd/system/
SYSTEMD_UNIT = systemd/fifo-cronolog@.service

VERSION = $(shell awk -F'"' '/#define VERSION/{print $$2}' $(SRC) )
DISTFILE_EXT = tar.gz
DISTFILE = $(BIN)-$(VERSION).$(DISTFILE_EXT)

all: $(BIN)

$(BIN): $(OBJ)
	$(CC) $(LDFLAGS) -o $@ $<

.c.o:
	$(CC) $(CFLAGS) -c -o $@ $<

.PHONY: clean
clean:
	$(RM) $(BIN) $(OBJ)

.PHONY: install
install:
	mkdir -p $(DESTDIR)$(BINDIR) $(DESTDIR)$(SYSTEMD_TARGET)
	install -m0755 -D $(BIN) $(HELPER) $(DESTDIR)$(BINDIR)
	install -m0644 -D $(SYSTEMD_UNIT) $(DESTDIR)$(SYSTEMD_TARGET)

TAG = v$(VERSION)

.PHONY: version
version:
	@echo $(BIN)-$(VERSION), $(TAG)

dist:
	@if test -e $(DISTFILE) ; then echo "$(DISTFILE) already exists" ; exit 1 ; fi
	@if ! git tag |grep -x -e "$(TAG)"; then echo "git tag $(TAG) not found" ; exit 1 ; fi
	$(MAKE) $(DISTFILE)

$(DISTFILE):
	git archive --format $(DISTFILE_EXT) --prefix $(BIN)-$(VERSION)/ $(TAG) >$(DISTFILE).tmp && mv $(DISTFILE).tmp $(DISTFILE)

#  vim: set ts=4 sw=4 tw=80:
