From d14854a1096e34ff7d822a08228eadb9b4093c1e Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 2 Jun 2025 17:11:21 +1200 Subject: [PATCH] 'Generic Commit' --- src/dropshell-build | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/src/dropshell-build b/src/dropshell-build index 633cc14..2240699 100755 --- a/src/dropshell-build +++ b/src/dropshell-build @@ -57,17 +57,19 @@ function set_current_arch() { # ARCH_OS=linux-musl-cross # FULLARCH=aarch64-linux-musl-cross # ARCH_SHORT_PREFIX=aarch64-linux-musl - # MUSL_PATH=/home/jde/.musl-cross/aarch64-linux-musl-cross + # MUSL_PATH=/home/jde/.musl-cr oss/aarch64-linux-musl-cross # arch should just be x86_64 or aarch64 export ARCH="${FULLARCH%%-*}" export ARCH_OS="${FULLARCH#*-}" export ARCH_SHORT_PREFIX="${FULLARCH%-*}" - export MUSL_PATH="${MUSL_ROOT_PATH}/${FULLARCH}" + export ARCH_MUSL_PATH="${MUSL_ROOT_PATH}/${FULLARCH}" + export ARCH_SYSROOT="${ARCH_MUSL_PATH}/${ARCH_SHORT_PREFIX}/sysroot" echo "ARCH: ${ARCH}" echo "ARCH_OS: ${ARCH_OS}" echo "ARCH_SHORT_PREFIX: ${ARCH_SHORT_PREFIX}" - echo "MUSL_PATH: ${MUSL_PATH}" + echo "ARCH_MUSL_PATH: ${ARCH_MUSL_PATH}" + echo "ARCH_SYSROOT: ${ARCH_SYSROOT}" } OLD_PWD="$PWD" @@ -91,9 +93,9 @@ function build_arch() { echo "Building for ${ARCH} in ${ARCH_BUILD_DIR}" - if [ ! -f "${MUSL_PATH}/bin/${ARCH_SHORT_PREFIX}-g++" ]; then + if [ ! -f "${ARCH_MUSL_PATH}/bin/${ARCH_SHORT_PREFIX}-g++" ]; then echo "Musl cross toolchain not found for ${ARCH}" - echo "Missing file: ${MUSL_PATH}/bin/${ARCH_SHORT_PREFIX}-g++" + echo "Missing file: ${ARCH_MUSL_PATH}/bin/${ARCH_SHORT_PREFIX}-g++" exit 1 fi @@ -102,19 +104,28 @@ function build_arch() { CMAKE_BUILD_TYPE="Debug" fi - export CC="${MUSL_PATH}/bin/${ARCH_SHORT_PREFIX}-gcc" - export CXX="${MUSL_PATH}/bin/${ARCH_SHORT_PREFIX}-g++" - export SYSROOT="${MUSL_PATH}/${ARCH_OS}/sysroot" + export CC="${ARCH_MUSL_PATH}/bin/${ARCH_SHORT_PREFIX}-gcc" + export CXX="${ARCH_MUSL_PATH}/bin/${ARCH_SHORT_PREFIX}-g++" + export SYSROOT="${ARCH_SYSROOT}" export OPENSSL_ROOT_DIR="${SYSROOT}/usr" - export CFLAGS="--sysroot=$SYSROOT" - export CXXFLAGS="--sysroot=$SYSROOT" + export CFLAGS="--sysroot=$SYSROOT -I$SYSROOT/usr/include" + export CXXFLAGS="--sysroot=$SYSROOT -I$SYSROOT/usr/include" export LDFLAGS="--sysroot=$SYSROOT" export MAKEFLAGS="-j${JOBS}" export CCACHE_DIR="${ARCH_BUILD_DIR}/ccache" export CMAKE_EXE_LINKER_FLAGS="-fuse-ld=mold" export CMAKE_MODULE_LINKER_FLAGS="-fuse-ld=mold" export CMAKE_SHARED_LINKER_FLAGS="-fuse-ld=mold" + + if [ -d "${ARCH_SYSROOT}/usr/lib64" ]; then + export OPENSSL_LIBDIR="${ARCH_SYSROOT}/usr/lib64" + elif [ -d "${ARCH_SYSROOT}/usr/lib" ]; then + export OPENSSL_LIBDIR="${ARCH_SYSROOT}/usr/lib" + else + echo "Neither lib nor lib64 found in ${ARCH_SYSROOT}/usr" + exit 1 + fi cmake -B "${ARCH_BUILD_DIR}" -G Ninja \ -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" \ @@ -126,7 +137,11 @@ function build_arch() { -DCMAKE_C_FLAGS="${CFLAGS}" \ -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ -DCMAKE_FIND_ROOT_PATH="${SYSROOT}" \ - -DCMAKE_SYSROOT="${SYSROOT}" + -DCMAKE_SYSROOT="${SYSROOT}" \ + -DOPENSSL_ROOT_DIR="${ARCH_SYSROOT}/usr" \ + -DOPENSSL_LIBRARIES="${OPENSSL_LIBDIR}" \ + -DOPENSSL_INCLUDE_DIR="${ARCH_SYSROOT}/usr/include" \ + -DOPENSSL_USE_STATIC_LIBS=ON cd "${ARCH_BUILD_DIR}" || exit 1 ninja -k0 -j"${JOBS}"