Files

56 lines
1.2 KiB
Bash
Raw Permalink Normal View History

#!/bin/sh
set -eu
VERSION="${1:?usage: build_iperf3.sh <version> [output_dir]}"
OUTPUT_DIR="${2:-$PWD/dist}"
WORKDIR="${TMPDIR:-/tmp}/iperf3-build-${VERSION}"
PREFIX_NAME="iperf3-${VERSION}-linux-amd64-musl-static"
rm -rf "$WORKDIR"
mkdir -p "$WORKDIR" "$OUTPUT_DIR"
cd "$WORKDIR"
apk add --no-cache \
bash \
build-base \
curl \
file \
linux-headers \
openssl-dev \
2026-05-07 23:05:20 +00:00
python3 \
tar \
xz \
zlib-dev
curl -fsSLO "https://downloads.es.net/pub/iperf/iperf-${VERSION}.tar.gz"
tar -xzf "iperf-${VERSION}.tar.gz"
cd "iperf-${VERSION}"
2026-05-07 23:14:22 +00:00
export CFLAGS="-O2 -fno-pie"
export CPPFLAGS=""
2026-05-07 23:14:22 +00:00
export LDFLAGS="-no-pie"
./configure \
--disable-shared \
--enable-static \
2026-05-07 23:14:22 +00:00
--enable-static-bin \
--without-sctp
make -j"$(getconf _NPROCESSORS_ONLN || echo 2)"
strip src/iperf3
install -m 0755 src/iperf3 "$OUTPUT_DIR/$PREFIX_NAME"
(
cd "$OUTPUT_DIR"
tar -czf "${PREFIX_NAME}.tar.gz" "$PREFIX_NAME"
sha256sum "$PREFIX_NAME" "${PREFIX_NAME}.tar.gz" > "${PREFIX_NAME}.sha256"
)
file "$OUTPUT_DIR/$PREFIX_NAME"
ldd "$OUTPUT_DIR/$PREFIX_NAME" || true
if file "$OUTPUT_DIR/$PREFIX_NAME" | grep -qi 'dynamically linked'; then
echo "error: output binary is still dynamically linked" >&2
exit 1
fi