penguin/flatgit

flatgit showcase

Makefile

raw ยท 816 bytes

include build.env
-include build.env.work
export

OUT_DIR := out
BIN_DIR := bin

VERSION ?= dev
GIT_REV := $(shell git rev-parse HEAD)

BUILDINFO_FILE := internal/buildinfo/buildinfo_gen.go

all: test build

.buildinfo:
	@mkdir -p $(dir $(BUILDINFO_FILE))
	@printf '%s\n' \
		'package buildinfo' \
		'' \
		'const (' \
		'    Version     = "$(VERSION)"' \
		'    GitRevision = "$(GIT_REV)"' \
		'    Timestamp   = "'$$(TZ=UTC date +%Y%m%d.%H%M%S)'"' \
		')' \
	> $(BUILDINFO_FILE)

build: .buildinfo
	mkdir -p "$(OUT_DIR)" "$(BIN_DIR)"
	go build -o "$(BIN_DIR)/flatgit" ./cmd/flatgit

test:
	go test ./...

fmt:
	gofmt -w ./cmd ./internal

run: build
	$(BIN_DIR)/flatgit daemon -c examples/tinyproxy.json

vet:
	go vet ./...

clean:
	rm -f "$(BIN_DIR)/flatgit"
	rm -rf dist

.PHONY: all build test fmt vet clean run