#!/usr/bin/env bash set -euo pipefail ROOT="$(cd "$(dirname "$0")" && pwd)" GO_BIN="${GO_BIN:-go}" command -v "$GO_BIN" >/dev/null 2>&1 || { echo "Go compiler not found" >&2; exit 1; } mkdir -p "$ROOT/bin" "$ROOT/android/lib/arm64-v8a" cd "$ROOT/core" # This Unix build intentionally ships only arm64-v8a for Android. Remove any # previously bundled ABI binaries so an APK cannot accidentally contain an old # DragonTCP core that predates the SSH feature. rm -rf "$ROOT/android/lib/armeabi-v7a" "$ROOT/android/lib/x86_64" "$ROOT/android/lib/x86" echo "[core] Android ARM64 client..." CGO_ENABLED=0 GOOS=android GOARCH=arm64 "$GO_BIN" build -trimpath -ldflags='-s -w' \ -o "$ROOT/android/lib/arm64-v8a/libdragontcp_client.so" ./cmd/dragontcp-client echo "[core] Linux AMD64 client..." CGO_ENABLED=0 GOOS=linux GOARCH=amd64 "$GO_BIN" build -trimpath -ldflags='-s -w' \ -o "$ROOT/bin/dragontcp-hybrid-client-linux-amd64" ./cmd/dragontcp-client echo "[core] Linux AMD64 server..." CGO_ENABLED=0 GOOS=linux GOARCH=amd64 "$GO_BIN" build -trimpath -ldflags='-s -w' \ -o "$ROOT/bin/dragontcp-hybrid-server-linux-amd64" ./cmd/dragontcp-server echo "[core] Linux ARM64 server..." CGO_ENABLED=0 GOOS=linux GOARCH=arm64 "$GO_BIN" build -trimpath -ldflags='-s -w' \ -o "$ROOT/bin/dragontcp-hybrid-server-linux-arm64" ./cmd/dragontcp-server if command -v sha256sum >/dev/null 2>&1; then cd "$ROOT" sha256sum \ bin/dragontcp-hybrid-client-linux-amd64 \ bin/dragontcp-hybrid-server-linux-amd64 \ bin/dragontcp-hybrid-server-linux-arm64 \ android/lib/arm64-v8a/libdragontcp_client.so > SHA256SUMS fi echo "Core build complete."