59 lines
1.9 KiB
Bash
59 lines
1.9 KiB
Bash
#!/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"
|