mirror of
https://github.com/hexagonal-sun/moss-kernel.git
synced 2025-12-23 22:47:55 -05:00
56 lines
1.2 KiB
Bash
Executable File
56 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
base="$( cd "$( dirname "${BASH_SOURCE[0]}" )"/.. && pwd )"
|
|
|
|
mkdir -p "$base/build/bin"
|
|
rm -f "$base/build/bin"/*
|
|
|
|
pushd "$base/build" &>/dev/null || exit 1
|
|
|
|
if [ "$(uname -m)" == 'aarch64' ]; then
|
|
MUSL_CC="aarch64-linux-musl-native"
|
|
else
|
|
MUSL_CC="aarch64-linux-musl-cross"
|
|
fi
|
|
|
|
if [ ! -f "${MUSL_CC}.tgz" ]
|
|
then
|
|
wget https://musl.cc/${MUSL_CC}.tgz
|
|
tar -xzf ${MUSL_CC}.tgz
|
|
fi
|
|
|
|
popd &>/dev/null || exit 1
|
|
|
|
build=${build:-$(ls $base/scripts/deps)}
|
|
|
|
export CC="$base/build/${MUSL_CC}/bin/aarch64-linux-musl-gcc"
|
|
|
|
for script in "$base/scripts/deps/"*
|
|
do
|
|
[ -e "$script" ] || continue # skip if no file exists
|
|
[ -x "$script" ] || continue # skip if not executable
|
|
|
|
filename=$(basename "$script")
|
|
|
|
if [[ "$filename" == _* ]]
|
|
then
|
|
echo "Skipping: $filename"
|
|
continue
|
|
fi
|
|
|
|
# skip if not in build list
|
|
if ! grep -qw "$filename" <<< "$build";
|
|
then
|
|
echo "Skipping: $filename"
|
|
continue
|
|
fi
|
|
|
|
echo "Preparing: $filename"
|
|
|
|
# make sure each script is run in the base directory
|
|
pushd "$base" &>/dev/null || exit 1
|
|
bash "$script"
|
|
popd &>/dev/null || exit 1
|
|
done
|