xref: /OK3568_Linux_fs/device/rockchip/common/scripts/mk-kbuild.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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