# 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