APPVERSION := $(shell cat ./VERSION) GOVERSION := $(shell go version | awk '{print $$3}') GITCOMMIT := $(shell git log -1 --oneline | awk '{print $$1}') OS := $(shell uname -s | tr [A-Z] [a-z]) ARCH := $(shell uname -m | tr [A-Z] [a-z]) LDFLAGS = -X main.AppVersion=${APPVERSION} -X main.GoVersion=${GOVERSION} -X main.GitCommit=${GITCOMMIT} .PHONY: clean test build: (cd src \ && go build -ldflags "${LDFLAGS}" -o ../bin/collerd cmd/collerd/main.go \ && go build -ldflags "${LDFLAGS}" -o ../bin/copier cmd/copier/main.go \ && go build -ldflags "${LDFLAGS}" -o ../bin/coller cmd/coller/main.go \ ) archive: (mkdir -p releases && cd bin && tar cvzpf ../releases/coller-${APPVERSION}-${OS}-${ARCH}.tar.gz * && cd ../releases && sha256sum *.tar.gz) release: build archive test: (cd src \ && go test internal/*.go \ && go test server/*.go \ ) clean: rm -rf bin releases