#!/bin/sh component_dir=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) script_dir=$(dirname "$component_dir") repo_dir=$(dirname "$script_dir") . "$script_dir/mouse-arch.sh" build_dir=${MOUSE_BUILD_DIR:-"$repo_dir/build/$MOUSE_ARCH"} source_dir=${MOUSE_SOURCE_DIR:-"$repo_dir/build/sources"} static_dir="$build_dir/static" source_build_dir="$static_dir/src" sysroot="$static_dir/sysroot" base_root="$static_dir/rootfs" tools_dir="$static_dir/tools" cross_tools_dir="$static_dir/cross-tools" jobs=${MOUSE_BUILD_JOBS:-$(getconf _NPROCESSORS_ONLN 2>/dev/null || printf '2')} case "$static_dir" in "$repo_dir"/build/static|"$repo_dir"/build/"$MOUSE_ARCH"/static) ;; *) printf '%s\n' "refusing to clear unexpected static build path: $static_dir" >&2 exit 1 ;; esac target_libdir=$(rustc --print target-libdir --target "$MOUSE_RUST_TARGET") builtins=$(find "$target_libdir" -maxdepth 1 -name 'libcompiler_builtins-*.rlib' -print | head -1) clang=$(command -v clang) clangxx=$(command -v clang++) lld=$(command -v ld.lld) llvm_ar=$(command -v llvm-ar) llvm_strip=$(command -v llvm-strip) build_triplet=$(cc -dumpmachine) native_cc=cc for requirement in \ "$clang" "$clangxx" "$lld" "$builtins" "$llvm_ar" "$llvm_strip" do if [ ! -f "$requirement" ]; then printf '%s\n' "missing LLVM/Rust cross-build component: $requirement" >&2 exit 1 fi done llvm_ranlib="$tools_dir/bin/llvm-ranlib" meson_source="$source_build_dir/meson-1.11.2/meson.py" PATH="$tools_dir/bin:$PATH" export PATH target=$MOUSE_CROSS_TARGET cc="$cross_tools_dir/bin/$target-cc" cxx="$cross_tools_dir/bin/$target-c++" bootstrap_cxx="$cross_tools_dir/bin/$target-bootstrap-c++" ar="$cross_tools_dir/bin/$target-ar" ranlib="$cross_tools_dir/bin/$target-ranlib" strip="$cross_tools_dir/bin/$target-strip" cross_file="$static_dir/chimerautils.cross" compiler_rt_dir="$sysroot/usr/lib/clang/22/lib/$MOUSE_RUST_TARGET" compiler_rt="$compiler_rt_dir/libclang_rt.builtins.a"