40 lines
949 B
Makefile
40 lines
949 B
Makefile
BIN := hotpcalc
|
|
PKG := ./cmd/hotpcalc
|
|
VERSION ?= 1.1.0
|
|
LDFLAGS := -s -w -X main.version=$(VERSION)
|
|
DIST := dist
|
|
|
|
PLATFORMS := linux/amd64 linux/arm64 darwin/amd64 darwin/arm64 windows/amd64 windows/arm64
|
|
|
|
.PHONY: all build test vet fmt dist clean
|
|
|
|
all: test build
|
|
|
|
build:
|
|
go build -trimpath -ldflags "$(LDFLAGS)" -o $(BIN) $(PKG)
|
|
|
|
test:
|
|
go test ./...
|
|
|
|
vet:
|
|
go vet ./...
|
|
|
|
fmt:
|
|
gofmt -l -w .
|
|
|
|
## dist — статические бинарники под Linux, macOS и Windows (amd64 + arm64)
|
|
dist: clean
|
|
@mkdir -p $(DIST)
|
|
@for p in $(PLATFORMS); do \
|
|
os=$${p%/*}; arch=$${p#*/}; ext=""; \
|
|
[ "$$os" = "windows" ] && ext=".exe"; \
|
|
echo " сборка $$os/$$arch"; \
|
|
CGO_ENABLED=0 GOOS=$$os GOARCH=$$arch \
|
|
go build -trimpath -ldflags "$(LDFLAGS)" -o $(DIST)/$(BIN)-$$os-$$arch$$ext $(PKG) || exit 1; \
|
|
done
|
|
@cd $(DIST) && shasum -a 256 * > SHA256SUMS 2>/dev/null || true
|
|
@ls -l $(DIST)
|
|
|
|
clean:
|
|
@rm -rf $(DIST) $(BIN)
|