2025-05-10 21:49:39 +08:00

99 lines
2.5 KiB
Bash
Executable File

#!/bin/sh
case "$(uname -m)" in
armv7l) KERNEL_ARCH=armhf ;;
aarch64) KERNEL_ARCH=aarch64 ;;
*)
echo -e "\e[35mThis script is not for $(uname -m)\e[0m"
exit 1
;;
esac
set -a
if [ ! -d debian/ ]; then
echo -e "\e[35m"
echo "debian/ is not exists!"
echo "Please download it from:"
echo "https://salsa.debian.org/kernel-team/linux"
echo "Tag:"
echo "4.4/4.19: debian/4.19.282-1"
echo "5.10: debian/5.10.179-1"
echo -e "\e[0m"
exit 1
fi
env -u ABINAME -u ARCH -u FEATURESET -u FLAVOUR -u VERSION -u LOCALVERSION >/dev/null
KERNAL_ARCH=${1:-$KERNAL_ARCH}
KVER3=$(grep -A 2 "^VERSION = " Makefile | cut -d' ' -f 3 | paste -sd'.')
KVER2=$(grep -A 1 "^VERSION = " Makefile | cut -d' ' -f 3 | paste -sd'.')
GVER=$(git log --oneline -1 | cut -d' ' -f1)
DISTRIBUTION_OFFICIAL_BUILD=1
DISTRIBUTOR="Rockchip"
DISTRIBUTION_VERSION="$KVER3"
KBUILD_BUILD_TIMESTAMP="$(date +%Y_%m_%d)"
KBUILD_BUILD_VERSION_TIMESTAMP="Debian $KBUILD_BUILD_TIMESTAMP - Rockchip ($GVER)"
KBUILD_BUILD_USER="Rockchip"
KBUILD_BUILD_HOST="Rockchip"
DEB_CFLAGS_SET="-static"
DEB_CPPFLAGS_SET="-static"
DEB_LDFLAGS_SET="-static"
CUR_DIR="$PWD"
OUT_DIR="$CUR_DIR/output"
BUILD_DIR="$OUT_DIR/build"
DESTDIR="$OUT_DIR/linux-kbuild"
make_subdir()
{
SUBDIR=$1
shift
mkdir -p "$BUILD_DIR/$SUBDIR"
make -j8 -s KCFLAGS="-fdebug-prefix-map=$PWD/=" \
-C "$BUILD_DIR/$SUBDIR" \
-f "$CUR_DIR/debian/rules.d/$SUBDIR/Makefile" \
top_srcdir="$CUR_DIR" top_rulesdir="$CUR_DIR/debian/rules.d" \
OUTDIR=$SUBDIR VERSION=$KVER2 KERNEL_ARCH=$KERNEL_ARCH \
KBUILD_HOSTCFLAGS="-static" KBUILD_HOSTLDFLAGS="-static -lz" \
HOSTCC="gcc -static" HOSTLD="ld -static" $@
}
echo
echo "Packing linux-kbuild into $DESTDIR ..."
echo
sed -i 's/\(-lcrypto$\)/\1 -ldl -lpthread/' debian/rules.d/scripts/Makefile
if [ "$KVER2" = 4.4 ]; then
sed -i -e '/_shipped/,$d' \
-e '$a\\n%.c: %.c_shipped\n cat $< > $@' \
-e '$a\\n%.h: %.h_shipped\n cat $< > $@' \
debian/rules.d/Makefile.inc
sed -i -e '/lex.c:/,$d' \
-e 's/kconf_id.c/zconf.hash.c/' \
debian/rules.d/scripts/kconfig/Makefile
sed -i -e '/parse.tab.c:/,$d' \
-e 's/keywords.c/keywords.hash.c/' \
debian/rules.d/scripts/genksyms/Makefile
sed -i '/bin2c/d' debian/rules.d/scripts/Makefile
sed -i 's/\(.*fixdep\)\(.*\)/\1 bin2c\2/' \
debian/rules.d/scripts/basic/Makefile
sed -i '/autoconf.h/d' scripts/mod/modpost.c
make_subdir scripts
make_subdir scripts install
else # 4.19/5.10
make_subdir scripts
make_subdir tools/objtool
make_subdir scripts install
make_subdir tools/objtool install
fi