.PHONY: default scheduler producer all clean fmt docker

GOBIN = $(shell pwd)/build/bin
TAG ?= latest
GOFILES_NOVENDOR := $(shell go list -f "{{.Dir}}" ./...)

VERSION := $(shell git describe --tags)
COMMIT_SHA1 := $(shell git rev-parse HEAD)
AppName := scheduler

default: scheduler

all: scheduler producer

BUILD_FLAGS = -tags netgo -ldflags "\
	-X github.com/odysseus/scheduler/versions.AppName=${AppName} \
	-X github.com/odysseus/scheduler/versions.TagVersion=${VERSION} \
	-X 'github.com/odysseus/scheduler/versions.BuildTime=`date`' \
	-X github.com/odysseus/scheduler/versions.CommitSha1=${COMMIT_SHA1}  \
	-X 'github.com/odysseus/scheduler/versions.GoVersion=`go version`' \
	-X 'github.com/odysseus/scheduler/versions.GitBranch=`git symbolic-ref --short -q HEAD`' \
	"

scheduler:
	go build $(BUILD_FLAGS) -o=${GOBIN}/$@ -gcflags "all=-N -l" ./cmd/scheduler
	@echo "Done building."

producer:
	go build $(BUILD_FLAGS) -o=${GOBIN}/$@ -gcflags "all=-N -l" ./cmd/producer
	@echo "Done building."

clean:
	rm -fr build/*
docker:
	docker build -t scheduler:${TAG} .
