53 lines
1.6 KiB
Bash
Executable File
53 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# build-static.sh — Build statically-linked nirc binaries via cargo-zigbuild
|
|
#
|
|
# Prerequisites:
|
|
# 1. rustup target add x86_64-unknown-linux-musl aarch64-unknown-linux-musl
|
|
# 2. pip install cargo-zigbuild (or: cargo install cargo-zigbuild)
|
|
# 3. Install zig: https://ziglang.org/download/
|
|
#
|
|
# Usage:
|
|
# ./packaging/build-static.sh # both targets
|
|
# ./packaging/build-static.sh x86_64 # just x86_64
|
|
# ./packaging/build-static.sh aarch64 # just aarch64
|
|
|
|
set -euo pipefail
|
|
cd "$(dirname "$0")/.."
|
|
|
|
VERSION="0.5.0"
|
|
OUTDIR="target/static-release"
|
|
mkdir -p "$OUTDIR"
|
|
|
|
build_target() {
|
|
local target="$1"
|
|
local suffix="$2"
|
|
echo "=== Building nirc ${VERSION} for ${target} ==="
|
|
cargo zigbuild --release --target "${target}"
|
|
local bin="target/${target}/release/nirc"
|
|
if [ -f "$bin" ]; then
|
|
local out="${OUTDIR}/nirc-${VERSION}-${suffix}"
|
|
cp "$bin" "$out"
|
|
chmod +x "$out"
|
|
local size
|
|
size=$(du -h "$out" | cut -f1)
|
|
echo " -> $out ($size)"
|
|
else
|
|
echo " ERROR: $bin not found" >&2
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
if [ -n "${1:-}" ]; then
|
|
case "$1" in
|
|
x86_64) build_target x86_64-unknown-linux-musl linux-x86_64 ;;
|
|
aarch64) build_target aarch64-unknown-linux-musl linux-aarch64 ;;
|
|
*) echo "Usage: $0 [x86_64|aarch64]"; exit 1 ;;
|
|
esac
|
|
else
|
|
build_target x86_64-unknown-linux-musl linux-x86_64
|
|
build_target aarch64-unknown-linux-musl linux-aarch64
|
|
fi
|
|
|
|
echo ""
|
|
echo "=== Static builds complete in ${OUTDIR}/ ==="
|
|
ls -lh "$OUTDIR"/nirc-${VERSION}-* |