#!/bin/bash # Build StreamCore Edge Agent # Prerequisites: Go 1.19+, mediamtx binary in mediamtx/ # # Build for Linux: # ./build.sh linux # Build for Windows: # ./build.sh windows # Build both: # ./build.sh all set -e PLATFORM="${1:-linux}" VERSION="${VERSION:-0.1.0}" OUTDIR="dist" APP="streamcore-edge" export GO111MODULE=on export GOPROXY="${GOPROXY:-https://goproxy.cn,direct}" build_linux() { echo "Building Linux (amd64)..." GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build \ -ldflags="-s -w -X main.Version=${VERSION}" \ -o "${OUTDIR}/${APP}-linux-amd64" \ . echo " -> ${OUTDIR}/${APP}-linux-amd64" } build_windows() { echo "Building Windows (amd64)..." GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build \ -ldflags="-s -w -H windowsgui -X main.Version=${VERSION}" \ -o "${OUTDIR}/${APP}-windows-amd64.exe" \ . echo " -> ${OUTDIR}/${APP}-windows-amd64.exe" } mkdir -p "${OUTDIR}" case "${PLATFORM}" in linux) build_linux ;; windows) build_windows ;; all) build_linux build_windows ;; *) echo "Usage: $0 {linux|windows|all}" exit 1 ;; esac echo "Done."