enit/Makefile

45 lines
1.3 KiB
Makefile

SHELL := /bin/bash
PREFIX ?= /usr/local
SBINDIR ?= $(PREFIX)/sbin
SYSCONFDIR ?= $(PREFIX)/etc
LOCALSTATEDIR ?= $(PREFIX)/var
RUNSTATEDIR ?= $(LOCALSTATEDIR)/run
GO ?= $(shell type -a -P go | head -n 1)
# Set version variable
ifeq ($(VERSION),)
COMMIT := $(shell git rev-parse --short HEAD)
TAG_COMMIT := $(shell git rev-list --abbrev-commit --tags --max-count=1)
TAG := $(shell git describe --abbrev=0 --tags ${TAG_COMMIT} 2>/dev/null || true)
VERSION := $(COMMIT)
ifeq ($(COMMIT), $(TAG_COMMIT))
VERSION := $(TAG)
endif
ifneq ($(shell git status --porcelain),)
VERSION := $(VERSION)-dirty
endif
endif
build:
mkdir -p build
cd cmd/enit; $(GO) build -ldflags "-w -X main.version=$(VERSION)" -o ../../build/enit enit
cd cmd/esvm; $(GO) build -ldflags "-w -X main.version=$(VERSION)" -o ../../build/esvm esvm
cd cmd/ectl; $(GO) build -ldflags "-w -X main.version=$(VERSION) -X main.sysconfdir=$(SYSCONFDIR) -X main.runstatedir=$(RUNSTATEDIR)" -o ../../build/ectl ectl
install: build/enit build/ectl
mkdir -p $(DESTDIR)$(SBINDIR)
mkdir -p $(DESTDIR)$(SYSCONFDIR)/esvm/services
cp build/enit $(DESTDIR)$(SBINDIR)/enit
cp build/esvm $(DESTDIR)$(SBINDIR)/esvm
cp build/ectl $(DESTDIR)$(SBINDIR)/ectl
install-services:
mkdir -p $(DESTDIR)$(SYSCONFDIR)/esvm/services
cp services/* -t $(DESTDIR)$(SYSCONFDIR)/esvm/services
clean:
rm -r build/
.PHONY: build