2025-12-18 21:28:14 +00:00

44 lines
1.2 KiB
Makefile

BINARY_NAME=serverless
VERSION=$(shell git describe --tags --always --dirty)
PLATFORMS=darwin linux windows
ARCHITECTURES=amd64 arm64
LDFLAGS=-ldflags="-s -w"
.PHONY: all clean build-all build-prod build-canary test
all: clean build-all
clean:
@rm -rf dist/
build-all: build-prod build-canary
build-prod:
@echo "Building production binaries..."
@for platform in $(PLATFORMS); do \
for arch in $(ARCHITECTURES); do \
if [ "$$arch" = "arm64" ] && [ "$$platform" = "windows" ]; then \
continue; \
fi; \
echo "Building $$platform/$$arch..."; \
mkdir -p dist/prod; \
CGO_ENABLED=0 GOOS=$$platform GOARCH=$$arch go build $(LDFLAGS) -o dist/prod/$(BINARY_NAME)-$$platform-$$arch .; \
done; \
done
build-canary:
@echo "Building canary-enabled binaries..."
@for platform in $(PLATFORMS); do \
for arch in $(ARCHITECTURES); do \
if [ "$$arch" = "arm64" ] && [ "$$platform" = "windows" ]; then \
continue; \
fi; \
echo "Building $$platform/$$arch..."; \
mkdir -p dist/canary; \
CGO_ENABLED=0 GOOS=$$platform GOARCH=$$arch go build $(LDFLAGS) -tags=canary -o dist/canary/$(BINARY_NAME)-$$platform-$$arch .; \
done; \
done
test:
@go test ./...