40 lines
1.6 KiB
Bash
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."
|