#!/bin/sh set -eu VERSION="${1:?usage: build_iperf3.sh [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 \ 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}" export CFLAGS="-O2 -fno-pie" export CPPFLAGS="" export LDFLAGS="-no-pie" ./configure \ --disable-shared \ --enable-static \ --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