improve Makefile

This commit is contained in:
itchyny 2023-04-09 12:27:02 +09:00
parent e81d936dd5
commit fec2c9b389

View file

@ -1,8 +1,8 @@
BIN := mmv
VERSION := $$(make -s show-version)
VERSION_PATH := cmd/$(BIN)
CURRENT_REVISION := $(shell git rev-parse --short HEAD)
BUILD_LDFLAGS := "-s -w -X main.revision=$(CURRENT_REVISION)"
CURRENT_REVISION = $(shell git rev-parse --short HEAD)
BUILD_LDFLAGS = "-s -w -X main.revision=$(CURRENT_REVISION)"
GOBIN ?= $(shell go env GOPATH)/bin
.PHONY: all
@ -14,19 +14,18 @@ build:
.PHONY: install
install:
go install -ldflags=$(BUILD_LDFLAGS) ./...
go install -ldflags=$(BUILD_LDFLAGS) ./cmd/$(BIN)
.PHONY: show-version
show-version: $(GOBIN)/gobump
@gobump show -r $(VERSION_PATH)
@gobump show -r "$(VERSION_PATH)"
$(GOBIN)/gobump:
@go install github.com/x-motemen/gobump/cmd/gobump@latest
.PHONY: cross
cross: $(GOBIN)/goxz CREDITS
goxz -n $(BIN) -pv=v$(VERSION) -arch=amd64,arm64 \
-build-ldflags=$(BUILD_LDFLAGS) ./cmd/$(BIN)
goxz -n $(BIN) -pv=v$(VERSION) -build-ldflags=$(BUILD_LDFLAGS) ./cmd/$(BIN)
$(GOBIN)/goxz:
go install github.com/Songmu/goxz/cmd/goxz@latest
@ -57,17 +56,12 @@ clean:
.PHONY: bump
bump: $(GOBIN)/gobump
ifneq ($(shell git status --porcelain),)
$(error git workspace is dirty)
endif
ifneq ($(shell git rev-parse --abbrev-ref HEAD),main)
$(error current branch is not main)
endif
test -z "$$(git status --porcelain || echo .)"
test "$$(git branch --show-current)" = "main"
@gobump up -w "$(VERSION_PATH)"
git commit -am "bump up version to $(VERSION)"
git tag "v$(VERSION)"
git push origin main
git push origin "refs/tags/v$(VERSION)"
git push --atomic origin main tag "v$(VERSION)"
.PHONY: upload
upload: $(GOBIN)/ghr