30 lines
770 B
Makefile
30 lines
770 B
Makefile
BINARY ?= htsy-cli
|
|
VERSION ?= dev
|
|
LDFLAGS := -s -w -X main.version=$(VERSION)
|
|
PLATFORMS := linux/amd64 linux/arm64 darwin/amd64 darwin/arm64 windows/amd64 windows/arm64
|
|
|
|
.PHONY: test build release clean
|
|
|
|
test:
|
|
go test ./...
|
|
|
|
build:
|
|
mkdir -p bin
|
|
CGO_ENABLED=0 go build -trimpath -ldflags "$(LDFLAGS)" -o bin/$(BINARY) .
|
|
|
|
release: clean test
|
|
mkdir -p dist
|
|
for platform in $(PLATFORMS); do \
|
|
GOOS=$${platform%/*}; \
|
|
GOARCH=$${platform#*/}; \
|
|
EXT=""; \
|
|
if [ "$$GOOS" = "windows" ]; then EXT=".exe"; fi; \
|
|
OUT="dist/$(BINARY)_$${GOOS}_$${GOARCH}$${EXT}"; \
|
|
echo "building $$OUT"; \
|
|
CGO_ENABLED=0 GOOS=$$GOOS GOARCH=$$GOARCH go build -trimpath -ldflags "$(LDFLAGS)" -o "$$OUT" .; \
|
|
done
|
|
cd dist && shasum -a 256 * > checksums.txt
|
|
|
|
clean:
|
|
rm -rf bin dist
|