4 # ---------------------------------------------------------------------------
6 echo usage: $0 kerneldir defconfig
7 echo example: $0 . rk29_ddr3sdk_defconfig
11 while getopts "h" options; do
16 # ---------------------------------------------------------------------------
18 # ---------------------------------------------------------------------------
20 kerndir=$(cd $kerndir; pwd) # get absolute path
21 [ -d $kerndir ] || usage
23 if [ "$defconfig" = ".config" ]; then
24 [ -f $kerndir/.config ] || usage
26 [ -f $kerndir/arch/arm/configs/$defconfig ] || usage
28 # ---------------------------------------------------------------------------
31 pushd $kerndir >/dev/null
35 for file in ${FILES[@]}; do
36 [ -e ${file} ] && files=( ${files[@]} ${file} ) || echo No such file: ${file}
37 [ -f ${file/.[cS]/.uu} ] && rm -f ${file/.[cS]/.uu}
40 for d in ${DIRS[@]}; do
41 [ -d $d ] && find $d -type f -name '*.uu' -print0 | xargs -0 rm -f
44 echo build kernel on $kerndir with $defconfig
45 make clean >/dev/null 2>&1
46 make $defconfig >/dev/null 2>&1
47 make -j`grep 'processor' /proc/cpuinfo | wc -l` ${files[@]/.[cS]/.o} ${DIRS[@]}
49 for file in ${FILES[@]}; do
53 [ -f $dir/$base.o ] && echo UU $dir/$base.uu && uuencode $dir/$base.o $base.o > $dir/$base.uu
56 for d in ${DIRS[@]}; do
57 for file in `find $d -type f -name '*.o'`; do
61 echo UU $dir/$base.uu && uuencode $dir/$base.o $base.o > $dir/$base.uu
65 make distclean >/dev/null 2>&1
70 echo "+" > $kerndir/.scmversion
73 pushd $kerndir/../ >/dev/null
74 package=$(basename $kerndir).tar
77 for file in ${FILES[@]}; do
80 for file in ${EXCLUDES[@]}; do
83 echo TAR $(pwd)/$package
84 tar cf $package --numeric-owner --exclude-from $ex --exclude=.git $(basename $kerndir)
85 #tar rf $package --numeric-owner --exclude=.git prebuilt/linux-x86/toolchain/arm-eabi-4.4.0
86 echo GZIP $(pwd)/$package.gz
87 gzip -9 -c $package > $package.gz
91 rm -f $kerndir/.scmversion