diff --git a/cli/Makefile b/cli/Makefile index 920b8c72e..9816ae371 100644 --- a/cli/Makefile +++ b/cli/Makefile @@ -1,3 +1,9 @@ +SHELL=/bin/bash + +.PHONY: help +.DEFAULT_GOAL := help +.ONESHELL: + SUFFIX=$(GOOS)_$(GOARCH) COMMIT_HASH=$(shell git rev-parse HEAD) GIT_BRANCH=$(shell git branch --show-current | tr '[:upper:]' '[:lower:]') @@ -5,9 +11,6 @@ GIT_VERSION=$(shell git branch --show-current | tr '[:upper:]' '[:lower:]') BUILD_TIMESTAMP=$(shell date +%s) export VER?=0.0 -.PHONY: help -.DEFAULT_GOAL := help - help: ## This help. @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) @@ -16,15 +19,20 @@ install: build-debug: ## Build mizu CLI for debug export GCLFAGS='-gcflags="all=-N -l"' - ${MAKE} build + ${MAKE} build-base -build: ## Build mizu CLI binary (select platform via GOOS / GOARCH env variables). - go build ${GCLFAGS} -ldflags="-X 'github.com/up9inc/mizu/cli/mizu.GitCommitHash=$(COMMIT_HASH)' \ - -X 'github.com/up9inc/mizu/cli/mizu.Branch=$(GIT_BRANCH)' \ - -X 'github.com/up9inc/mizu/cli/mizu.BuildTimestamp=$(BUILD_TIMESTAMP)' \ - -X 'github.com/up9inc/mizu/cli/mizu.Platform=$(SUFFIX)' \ - -X 'github.com/up9inc/mizu/cli/mizu.Ver=$(VER)'" \ - -o bin/mizu_$(SUFFIX) mizu.go +build: + export LDFLAGS_EXT='-extldflags=-static -s -w' + ${MAKE} build-base + +build-base: ## Build mizu CLI binary (select platform via GOOS / GOARCH env variables). + go build ${GCLFAGS} -ldflags="${LDFLAGS_EXT} \ + -X 'github.com/up9inc/mizu/cli/mizu.GitCommitHash=$(COMMIT_HASH)' \ + -X 'github.com/up9inc/mizu/cli/mizu.Branch=$(GIT_BRANCH)' \ + -X 'github.com/up9inc/mizu/cli/mizu.BuildTimestamp=$(BUILD_TIMESTAMP)' \ + -X 'github.com/up9inc/mizu/cli/mizu.Platform=$(SUFFIX)' \ + -X 'github.com/up9inc/mizu/cli/mizu.Ver=$(VER)'" \ + -o bin/mizu_$(SUFFIX) mizu.go (cd bin && shasum -a 256 mizu_${SUFFIX} > mizu_${SUFFIX}.sha256) build-all: ## Build for all supported platforms.