Files
device_rockchip/common/build.sh
Eddie Cai 6ea5e91a98 initial commit
Signed-off-by: Eddie Cai <eddie.cai.linux@gmail.com>
2018-06-23 10:08:13 +08:00

203 lines
4.8 KiB
Bash
Executable File

#!/bin/bash
source BoardConfig.mk
echo "============================================"
echo "TARGET_ARCH=$ARCH"
echo "TARGET_PLATFORM=$TARGET_PRODUCT"
echo "TARGET_UBOOT_CONFIG=$UBOOT_DEFCONFIG"
echo "TARGET_KERNEL_CONFIG=$KERNEL_DEFCONFIG"
echo "TARGET_BUILDROOT_CONFIG=$CFG_BUILDROOT"
echo "TARGET_RECOVERY_CONFIG=$CFG_RECOVERY"
echo "TARGET_PCBA_CONFIG=$CFG_PCBA"
echo "============================================"
if [ ! -n "$1" ];then
echo "build all as default"
BUILD_TARGET=all
else
echo "build $1 only"
BUILD_TARGET="$1"
fi
usage()
{
echo "====USAGE: build.sh modules===="
echo "uboot -build uboot"
echo "kernel -build kernel"
echo "rootfs -build buildroot rootfs"
echo "yocto -build yocto rootfs"
echo "debian -build debian rootfs"
echo "pcba -build pcba"
echo "default -build all modules"
}
function build_uboot(){
# build uboot
echo "====Start build uboot===="
cd u-boot && make distclean && ./make.sh $UBOOT_DEFCONFIG && cd -
if [ $? -eq 0 ]; then
echo "====Build uboot ok!===="
else
echo "====Build uboot failed!===="
exit 1
fi
}
function build_kernel(){
# build kernel
echo "====Start build kernel===="
cd kernel && make ARCH=$ARCH distclean && make ARCH=$ARCH $KERNEL_DEFCONFIG && make ARCH=$ARCH $KERNEL_DTS.img -j$JOBS && cd -
# arm use zboot.img
if [ $ARCH == arm ]; then
cp kernel/zboot.img kernel/boot.img
fi
if [ $? -eq 0 ]; then
echo "====Build kernel ok!===="
else
echo "====Build kernel failed!===="
exit 1
fi
}
function build_rootfs(){
# build buildroot
echo "====Start build buildroot===="
./device/rockchip/$TARGET_PRODUCT/mk-buildroot.sh
if [ $? -eq 0 ]; then
echo "====Build buildroot ok!===="
else
echo "====Build buildroot failed!===="
exit 1
fi
}
function build_yocto(){
# build yocto
echo "====Start build yocto===="
./device/rockchip/$TARGET_PRODUCT/mk-yocto.sh
if [ $? -eq 0 ]; then
echo "====Build yocto ok!===="
else
echo "====Build yocto failed!===="
exit 1
fi
}
function build_recovery(){
# build recovery
echo "====Start build recovery===="
./device/rockchip/$TARGET_PRODUCT/mk-recovery.sh
if [ $? -eq 0 ]; then
echo "====Build recovery ok!===="
else
echo "====Build recovery failed!===="
exit 1
fi
}
function build_pcba(){
# build pcba
echo "====Start build recovery===="
./device/rockchip/$TARGET_PRODUCT/mk-pcba.sh
if [ $? -eq 0 ]; then
echo "====Build pcba ok!===="
else
echo "====Build pcba failed!===="
exit 1
fi
}
function build_all(){
build_uboot
build_kernel
build_rootfs
build_recovery
}
TOP_DIR=$(pwd)
source buildroot/build/envsetup.sh $CFG_BUILDROOT
TARGET_PRODUCT=`get_target_board_type $CFG_BUILDROOT`
PACK_TOOL_DIR=tools/linux/Linux_Pack_Firmware
IMAGE_PATH=rockdev/Image-$TARGET_PRODUCT
DATE=$(date +%Y%m%d.%H%M)
STUB_PATH=Image/"$KERNEL_DTS"_"$DATE"_RELEASE_TEST
STUB_PATH="$(echo $STUB_PATH | tr '[:lower:]' '[:upper:]')"
export STUB_PATH=$TOP_DIR/$STUB_PATH
export STUB_PATCH_PATH=$STUB_PATH/PATCHES
#=========================
# build target
#=========================
if [ $BUILD_TARGET == uboot ];then
build_uboot
exit 0
elif [ $BUILD_TARGET == kernel ];then
build_kernel
exit 0
elif [ $BUILD_TARGET == rootfs ];then
build_rootfs
exit 0
elif [ $BUILD_TARGET == recovery ];then
build_recovery
exit 0
elif [ $BUILD_TARGET == pcba ];then
build_pcba
exit 0
elif [ $BUILD_TARGET == yocto ];then
build_yocto
exit 0
elif [ $BUILD_TARGET != all ];then
echo "Can't found build config, please check again"
usage
exit 1
fi
#==========================
# default build all modules
#==========================
build_all
# mkfirmware.sh to genarate image
echo "make and copy images"
./mkfirmware.sh $CFG_BUILDROOT
if [ $? -eq 0 ]; then
echo "Make image ok!"
else
echo "Make image failed!"
exit 1
fi
mkdir -p $PACK_TOOL_DIR/rockdev/Image/
cp -f $IMAGE_PATH/* $PACK_TOOL_DIR/rockdev/Image/
echo "Make update.img"
cd $PACK_TOOL_DIR/rockdev && ./mkupdate.sh
if [ $? -eq 0 ]; then
echo "Make update image ok!"
else
echo "Make update image failed!"
exit 1
fi
cd -
mv $PACK_TOOL_DIR/rockdev/update.img $IMAGE_PATH/
rm $PACK_TOOL_DIR/rockdev/Image -rf
mkdir -p $STUB_PATH
#Generate patches
.repo/repo/repo forall -c "$TOP_DIR/device/rockchip/common/gen_patches_body.sh"
#Copy stubs
.repo/repo/repo manifest -r -o $STUB_PATH/manifest_${DATE}.xml
mkdir -p $STUB_PATCH_PATH/kernel
cp kernel/.config $STUB_PATCH_PATH/kernel
cp kernel/vmlinux $STUB_PATCH_PATH/kernel
mkdir -p $STUB_PATH/IMAGES/
cp $IMAGE_PATH/* $STUB_PATH/IMAGES/
#Save build command info
echo "UBOOT: defconfig: $UBOOT_DEFCONFIG" >> $STUB_PATH/build_cmd_info
echo "KERNEL: defconfig: $KERNEL_DEFCONFIG, dts: $KERNEL_DTS" >> $STUB_PATH/build_cmd_info
echo "BUILDROOT: $LUNCH" >> $STUB_PATH/build_cmd_info