Files
src/scripts/static-base/common.sh
T

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"