2025-11-15 00:59:38 -07:00
|
|
|
#!/bin/sh
|
|
|
|
|
set -eu
|
2025-11-12 11:22:44 -07:00
|
|
|
|
2025-11-15 20:00:42 -07:00
|
|
|
. $PWD/scripts/config.sh
|
2025-11-15 13:08:46 -07:00
|
|
|
|
2025-11-15 20:00:42 -07:00
|
|
|
LINUX_TAR=$(ls "$PROOT"/sources/linux-*.tar.* 2>/dev/null | head -n 1 | xargs basename)
|
2025-11-15 00:59:38 -07:00
|
|
|
if [ -z "$LINUX_TAR" ]; then
|
|
|
|
|
echo "ERR: No Linux tarball found in sources directory"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
2025-11-12 11:22:44 -07:00
|
|
|
LINUX_SOURCE="${LINUX_TAR%%.tar*}"
|
|
|
|
|
|
|
|
|
|
if command -v "clang" >/dev/null 2>&1 && command -v "lld" >/dev/null 2>&1; then
|
|
|
|
|
export LLVM=1
|
2025-11-15 00:59:38 -07:00
|
|
|
export LLVM_IAS=1
|
2025-11-12 11:22:44 -07:00
|
|
|
fi
|
|
|
|
|
|
2025-11-15 20:00:42 -07:00
|
|
|
if [ ! -d $PROOT/build/"$LINUX_SOURCE" ]; then
|
2025-11-15 00:59:38 -07:00
|
|
|
echo "Extracting Linux tarball to ./build/"
|
2025-11-15 20:00:42 -07:00
|
|
|
tar -xpf $PROOT/sources/"$LINUX_TAR" -C $PROOT/build
|
2025-11-15 00:59:38 -07:00
|
|
|
else
|
|
|
|
|
echo "Linux source already extracted."
|
|
|
|
|
fi
|
2025-11-12 11:22:44 -07:00
|
|
|
|
2025-11-15 00:59:38 -07:00
|
|
|
echo "Creating target include directory"
|
2025-11-15 20:00:42 -07:00
|
|
|
mkdir -pv $PROOT/build/"$FROOT"/include
|
2025-11-12 11:22:44 -07:00
|
|
|
|
|
|
|
|
echo "Building Headers"
|
2025-11-15 20:00:42 -07:00
|
|
|
if [ -d $PROOT/build/"$FROOT"/include/linux ]; then
|
2025-11-15 00:59:38 -07:00
|
|
|
echo "Headers already built, skipping..."
|
|
|
|
|
exit
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
cd ./build/"$LINUX_SOURCE"
|
2025-11-12 11:22:44 -07:00
|
|
|
|
|
|
|
|
make mrproper
|
|
|
|
|
make headers
|
2025-11-15 00:59:38 -07:00
|
|
|
find usr/include -type f ! -name '*.h' -delete
|
2025-11-15 20:00:42 -07:00
|
|
|
cp -rv usr/include/* $PROOT/build/"$FROOT"/include/
|
2025-11-12 11:22:44 -07:00
|
|
|
|