Files

40 lines
1.6 KiB
Bash

#!/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."