# Makefile for p4changestats
BINARY=p4changestats
BIN_DIR=bin
VERSION?=v0.6
P4_CHANGE:=$(shell p4 changes -m1 ... 2>/dev/null | awk 'NR == 1 { print $$2 }')
ifneq (${P4_CHANGE},)
BUILD_VERSION=${VERSION}.${P4_CHANGE}
else
BUILD_VERSION=${VERSION}
endif
LDFLAGS=-ldflags "-w -s -X main.Version=${BUILD_VERSION}"
all: build
# Builds the project for the current platform.
build:
go build ${LDFLAGS} -o ${BINARY} .
# Builds compressed distribution binaries.
dist:
mkdir -p ${BIN_DIR}
GOOS=darwin GOARCH=arm64 go build ${LDFLAGS} -o ${BIN_DIR}/${BINARY}.darwin-arm64 .
GOOS=darwin GOARCH=amd64 go build ${LDFLAGS} -o ${BIN_DIR}/${BINARY}.darwin-amd64 .
GOOS=linux GOARCH=arm64 go build ${LDFLAGS} -o ${BIN_DIR}/${BINARY}.linux-arm64 .
GOOS=linux GOARCH=amd64 go build ${LDFLAGS} -o ${BIN_DIR}/${BINARY}.linux-amd64 .
GOOS=windows GOARCH=amd64 go build ${LDFLAGS} -o ${BIN_DIR}/${BINARY}.windows-amd64.exe .
rm -f ${BIN_DIR}/${BINARY}*arm64*.gz ${BIN_DIR}/${BINARY}*amd64*.gz
-chmod +x ${BIN_DIR}/${BINARY}*arm64* ${BIN_DIR}/${BINARY}*amd64*
gzip ${BIN_DIR}/${BINARY}*arm64* ${BIN_DIR}/${BINARY}.darwin-amd64* ${BIN_DIR}/${BINARY}.linux-amd64*
# Cleans locally built and distribution binaries.
clean:
rm -f ${BINARY}
rm -rf ${BIN_DIR}
.PHONY: all build clean dist