#!/bin/bash SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" # Create output directory mkdir -p ${SCRIPT_DIR}/output function build_arch() { local arch=$1 local PREVDIR=$PWD cd ${SCRIPT_DIR} 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} cd ${PREVDIR} } build_arch x86_64 build_arch aarch64 echo "Static binaries have been created:" ls -la output