1*4882a593Smuzhiyun#!/bin/sh 2*4882a593Smuzhiyun 3*4882a593Smuzhiyuncase "$(uname -m)" in 4*4882a593Smuzhiyun armv7l) KERNEL_ARCH=armhf ;; 5*4882a593Smuzhiyun aarch64) KERNEL_ARCH=aarch64 ;; 6*4882a593Smuzhiyun *) 7*4882a593Smuzhiyun echo -e "\e[35mThis script is not for $(uname -m)\e[0m" 8*4882a593Smuzhiyun exit 1 9*4882a593Smuzhiyun ;; 10*4882a593Smuzhiyunesac 11*4882a593Smuzhiyun 12*4882a593Smuzhiyunset -a 13*4882a593Smuzhiyun 14*4882a593Smuzhiyunif [ ! -d debian/ ]; then 15*4882a593Smuzhiyun echo -e "\e[35m" 16*4882a593Smuzhiyun echo "debian/ is not exists!" 17*4882a593Smuzhiyun echo "Please download it from:" 18*4882a593Smuzhiyun echo "https://salsa.debian.org/kernel-team/linux" 19*4882a593Smuzhiyun echo "Tag:" 20*4882a593Smuzhiyun echo "4.4/4.19: debian/4.19.282-1" 21*4882a593Smuzhiyun echo "5.10: debian/5.10.179-1" 22*4882a593Smuzhiyun echo -e "\e[0m" 23*4882a593Smuzhiyun exit 1 24*4882a593Smuzhiyunfi 25*4882a593Smuzhiyun 26*4882a593Smuzhiyunenv -u ABINAME -u ARCH -u FEATURESET -u FLAVOUR -u VERSION -u LOCALVERSION >/dev/null 27*4882a593Smuzhiyun 28*4882a593SmuzhiyunKERNAL_ARCH=${1:-$KERNAL_ARCH} 29*4882a593SmuzhiyunKVER3=$(grep -A 2 "^VERSION = " Makefile | cut -d' ' -f 3 | paste -sd'.') 30*4882a593SmuzhiyunKVER2=$(grep -A 1 "^VERSION = " Makefile | cut -d' ' -f 3 | paste -sd'.') 31*4882a593SmuzhiyunGVER=$(git log --oneline -1 | cut -d' ' -f1) 32*4882a593Smuzhiyun 33*4882a593SmuzhiyunDISTRIBUTION_OFFICIAL_BUILD=1 34*4882a593SmuzhiyunDISTRIBUTOR="Rockchip" 35*4882a593SmuzhiyunDISTRIBUTION_VERSION="$KVER3" 36*4882a593SmuzhiyunKBUILD_BUILD_TIMESTAMP="$(date +%Y_%m_%d)" 37*4882a593SmuzhiyunKBUILD_BUILD_VERSION_TIMESTAMP="Debian $KBUILD_BUILD_TIMESTAMP - Rockchip ($GVER)" 38*4882a593SmuzhiyunKBUILD_BUILD_USER="Rockchip" 39*4882a593SmuzhiyunKBUILD_BUILD_HOST="Rockchip" 40*4882a593Smuzhiyun 41*4882a593SmuzhiyunDEB_CFLAGS_SET="-static" 42*4882a593SmuzhiyunDEB_CPPFLAGS_SET="-static" 43*4882a593SmuzhiyunDEB_LDFLAGS_SET="-static" 44*4882a593Smuzhiyun 45*4882a593SmuzhiyunCUR_DIR="$PWD" 46*4882a593SmuzhiyunOUT_DIR="$CUR_DIR/output" 47*4882a593SmuzhiyunBUILD_DIR="$OUT_DIR/build" 48*4882a593SmuzhiyunDESTDIR="$OUT_DIR/linux-kbuild" 49*4882a593Smuzhiyun 50*4882a593Smuzhiyunmake_subdir() 51*4882a593Smuzhiyun{ 52*4882a593Smuzhiyun SUBDIR=$1 53*4882a593Smuzhiyun shift 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun mkdir -p "$BUILD_DIR/$SUBDIR" 56*4882a593Smuzhiyun make -j8 -s KCFLAGS="-fdebug-prefix-map=$PWD/=" \ 57*4882a593Smuzhiyun -C "$BUILD_DIR/$SUBDIR" \ 58*4882a593Smuzhiyun -f "$CUR_DIR/debian/rules.d/$SUBDIR/Makefile" \ 59*4882a593Smuzhiyun top_srcdir="$CUR_DIR" top_rulesdir="$CUR_DIR/debian/rules.d" \ 60*4882a593Smuzhiyun OUTDIR=$SUBDIR VERSION=$KVER2 KERNEL_ARCH=$KERNEL_ARCH \ 61*4882a593Smuzhiyun KBUILD_HOSTCFLAGS="-static" KBUILD_HOSTLDFLAGS="-static -lz" \ 62*4882a593Smuzhiyun HOSTCC="gcc -static" HOSTLD="ld -static" $@ 63*4882a593Smuzhiyun} 64*4882a593Smuzhiyun 65*4882a593Smuzhiyunecho 66*4882a593Smuzhiyunecho "Packing linux-kbuild into $DESTDIR ..." 67*4882a593Smuzhiyunecho 68*4882a593Smuzhiyun 69*4882a593Smuzhiyunsed -i 's/\(-lcrypto$\)/\1 -ldl -lpthread/' debian/rules.d/scripts/Makefile 70*4882a593Smuzhiyun 71*4882a593Smuzhiyunif [ "$KVER2" = 4.4 ]; then 72*4882a593Smuzhiyun sed -i -e '/_shipped/,$d' \ 73*4882a593Smuzhiyun -e '$a\\n%.c: %.c_shipped\n cat $< > $@' \ 74*4882a593Smuzhiyun -e '$a\\n%.h: %.h_shipped\n cat $< > $@' \ 75*4882a593Smuzhiyun debian/rules.d/Makefile.inc 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun sed -i -e '/lex.c:/,$d' \ 78*4882a593Smuzhiyun -e 's/kconf_id.c/zconf.hash.c/' \ 79*4882a593Smuzhiyun debian/rules.d/scripts/kconfig/Makefile 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun sed -i -e '/parse.tab.c:/,$d' \ 82*4882a593Smuzhiyun -e 's/keywords.c/keywords.hash.c/' \ 83*4882a593Smuzhiyun debian/rules.d/scripts/genksyms/Makefile 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun sed -i '/bin2c/d' debian/rules.d/scripts/Makefile 86*4882a593Smuzhiyun sed -i 's/\(.*fixdep\)\(.*\)/\1 bin2c\2/' \ 87*4882a593Smuzhiyun debian/rules.d/scripts/basic/Makefile 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun sed -i '/autoconf.h/d' scripts/mod/modpost.c 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun make_subdir scripts 92*4882a593Smuzhiyun make_subdir scripts install 93*4882a593Smuzhiyunelse # 4.19/5.10 94*4882a593Smuzhiyun make_subdir scripts 95*4882a593Smuzhiyun make_subdir tools/objtool 96*4882a593Smuzhiyun make_subdir scripts install 97*4882a593Smuzhiyun make_subdir tools/objtool install 98*4882a593Smuzhiyunfi 99