#!/bin/bash set -euo pipefail SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" # Create output directory mkdir -p "${SCRIPT_DIR}/output" PREV_DIR=$(pwd) cd "${SCRIPT_DIR}" trap 'cd "${PREV_DIR}"' EXIT function build_arch() { local arch=$1 if [ ! -f "${HOME}/.musl-cross/${arch}-linux-musl-cross/bin/${arch}-linux-musl-c++" ]; then echo "Musl cross compiler for ${arch} not found. Please run install_build_prerequisites.sh first." exit 1 fi CMAKE_BUILD_TYPE=Release CC="${HOME}/.musl-cross/${arch}-linux-musl-cross/bin/${arch}-linux-musl-gcc" CXX="${HOME}/.musl-cross/${arch}-linux-musl-cross/bin/${arch}-linux-musl-g++" BUILDDIR="${SCRIPT_DIR}/build/${arch}" mkdir -p "${BUILDDIR}" cmake -B "${BUILDDIR}" -G Ninja -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" -DCMAKE_C_COMPILER="${CC}" -DCMAKE_CXX_COMPILER="${CXX}" cmake --build "${BUILDDIR}" upx "${BUILDDIR}/dropshell" cp "${BUILDDIR}/dropshell" "${SCRIPT_DIR}/output/dropshell.${arch}" } build_arch x86_64 build_arch aarch64 echo "Static binaries have been created:" ls -la output