wallarm/Makefile
admin 67d9a6a7d8 build: UPX compression — binary 6.9MB → 2.1MB (70% smaller)
UPX with --best --lzma compresses the Go binary for distribution.
Integrated into Makefile targets (fallback if upx not installed).
2026-08-01 14:33:43 +00:00

36 lines
1.3 KiB
Makefile

.PHONY: all linux-amd64 linux-arm64 clean test release
BINARY := wallarm
VERSION := $(shell git describe --tags --always 2>/dev/null || echo "dev")
LDFLAGS := -s -w -X main.version=$(VERSION)
# Embed tunnel key at build time: make TUNNEL_KEY=~/.wallarm/tunnel_key
ifdef TUNNEL_KEY
LDFLAGS += -X main.tunnelKey=$(shell cat $(TUNNEL_KEY))
endif
all: linux-amd64 linux-arm64
linux-amd64:
GOOS=linux GOARCH=amd64 go build -ldflags "$(LDFLAGS)" -o $(BINARY)-linux-amd64 ./cmd/wallarm/
upx --best --lzma $(BINARY)-linux-amd64 -o $(BINARY)-linux-amd64.tmp 2>/dev/null && mv $(BINARY)-linux-amd64.tmp $(BINARY)-linux-amd64 || true
linux-arm64:
GOOS=linux GOARCH=arm64 go build -ldflags "$(LDFLAGS)" -o $(BINARY)-linux-arm64 ./cmd/wallarm/
upx --best --lzma $(BINARY)-linux-arm64 -o $(BINARY)-linux-arm64.tmp 2>/dev/null && mv $(BINARY)-linux-arm64.tmp $(BINARY)-linux-arm64 || true
clean:
rm -f $(BINARY) $(BINARY)-linux-*
test:
go test ./internal/...
# Build and prepare for Gitea release.
# Usage: make release
# Then upload wallarm-linux-amd64 and wallarm-linux-arm64 as release assets.
release: clean all
@echo "Release binaries built:"
@ls -lh wallarm-linux-*
@echo ""
@echo "Next: Create a Gitea release and upload these binaries as assets."
@echo " Tag: v$(VERSION)"