SHELL := /bin/bash
PACKAGE := qyanu-openvpn-utils
VERSION := $(shell cat $(CURDIR)/VERSION)
CURRENT_COMMIT_DATE = $(shell git show --format="%cI" --no-patch HEAD)

BUILD_RELDIR := build
BUILD_DIR := "$(CURDIR)/$(BUILD_RELDIR)"
DIST_RELDIR := dist
DIST_DIR := "$(CURDIR)/$(DIST_RELDIR)"

default:
	@echo "available normal targets:"
	@echo ""
	@echo "package"
	@echo "    make a tar.bz2 file for distribution in subdir dist/"
	@echo ""

clean:
	rm -rf $(BUILD_RELDIR)
	rm -rf $(DIST_RELDIR)

dist:
	mkdir -p $(DIST_RELDIR)

build:
	mkdir -p $(BUILD_RELDIR)

PACKAGEFILES += easy-openvpn/easy-openvpn
PACKAGEFILES += Makefile

.PHONY: package
package: $(PACKAGE)_$(VERSION).tar.bz2

$(PACKAGE)_$(VERSION).tar.bz2: clean dist
	rm -Rf $(BUILD_DIR)/$(PACKAGE)
	mkdir -p $(BUILD_DIR)/$(PACKAGE)
	cp -pr -t $(BUILD_DIR)/$(PACKAGE) \
		$(PACKAGEFILES)
	# make tar file reproducible with the following options:
	#   sort, owner, group, numeric-owner, mtime
	tar -C $(BUILD_DIR) --sort=name --owner=0 --group=0 --numeric-owner \
		--mtime "$(CURRENT_COMMIT_DATE)" \
		-cjvf $(DIST_DIR)/$(PACKAGE)_$(VERSION).tar.bz2 \
		$(PACKAGE)/

install:
	install \
		-o root -g root \
		-m 0755 -p \
		-d /opt/$(PACKAGE)
	install \
		-o root -g root \
		-m 0755 -p \
		-t /opt/$(PACKAGE) \
		easy-openvpn
	ln -snf /opt/$(PACKAGE)/easy-openvpn /usr/local/bin
