#!/bin/bash
set -e
VERSION=${1:-$(git describe --tags --always --dirty 2>/dev/null || echo "dev")}
COMMIT=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown")
DATE=$(date -u +%Y-%m-%d)
LDFLAGS="-s -w -X main.version=${VERSION} -X main.commit=${COMMIT} -X main.date=${DATE}"
LDFLAGS_DARWIN="-w -X main.version=${VERSION} -X main.commit=${COMMIT} -X main.date=${DATE}"
echo "Building gc ${VERSION} (commit: ${COMMIT}, date: ${DATE})"
mkdir -p dist
echo "Building for linux/amd64..."
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "${LDFLAGS}" -o dist/gc_linux_amd64 ./cmd/gc
echo "Building for linux/arm64..."
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags "${LDFLAGS}" -o dist/gc_linux_arm64 ./cmd/gc
echo "Building for darwin/amd64..."
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags "${LDFLAGS_DARWIN}" -o dist/gc_darwin_amd64 ./cmd/gc
echo "Building for darwin/arm64..."
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags "${LDFLAGS_DARWIN}" -o dist/gc_darwin_arm64 ./cmd/gc
echo "Building for windows/amd64..."
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags "${LDFLAGS}" -o dist/gc_windows_amd64.exe ./cmd/gc
echo ""
echo "Build complete!"
echo "Binaries:"
ls -la dist/