#!/bin/bash PRJ_PATH=`pwd` BOARD=igkboard BSP_BRANCH="lf-5.10.52-2.1.0" CROSS_TOOL=/opt/buildroot/cortexA7/bin/arm-linux- # SYSTEM should be: buildroot, yocto or debian # DISTRO should be: 2021.02, hardknott, buster or bullseye # SYSNAME should be: buildroot, yocto, buster or bullseye SYSTEM=buildroot DISTRO=2021.02 SYSTEM=`echo $SYSTEM | tr 'A-Z' 'a-z'` if [ $SYSTEM == "debian" ] ; then SYSNAME=${DISTRO} else SYSNAME=${SYSTEM} fi set -u set -e function do_modify_build() { DIR=$1 cd $PRJ_PATH sed -i "s|^BOARD.*|BOARD=${BOARD}|g" ${DIR}/build.sh sed -i "s|^BSP_BRANCH.*|BSP_BRANCH=${BSP_BRANCH}|g" ${DIR}/build.sh sed -i "s|^CROSS_TOOL.*|CROSS_TOOL=${CROSS_TOOL}|g" ${DIR}/build.sh sed -i "s|^SYSTEM=.*|SYSTEM=${SYSTEM}|g" ${DIR}/build.sh sed -i "s|^DISTRO=.*|DISTRO=${DISTRO}|g" ${DIR}/build.sh sed -i "s|^SYSNAME=.*|SYSNAME=${SYSNAME}|g" ${DIR}/build.sh } function do_modify() { do_modify_build tarball do_modify_build bootloader do_modify_build kernel do_modify_build drivers do_modify_build rootfs do_modify_build images } function do_root() { echo "" if [[ $1 == "yes" ]] && [ `id -u` != 0 ] ; then echo "ERROR: This action must run as root!" echo "" exit; elif [[ $1 != "yes" ]] && [ `id -u` == 0 ] ; then echo "ERROR: This action cannot run as root!" echo "" exit; fi } function do_action() { folder=$1 action=$2 cd $PRJ_PATH/$folder if [ $action == "build" ] ; then ./build.sh -b elif [ $action == "clean" ] ; then ./build.sh -c fi cd $PRJ_PATH } function do_usage() { echo "" echo "Usage:" echo " $0 [-b] [-c] [-h] bsp/image" echo " -b bsp/image: build BSP or system image" echo " -c bsp/image: clean BSP or system image" echo " -h : show this help message" echo "" echo " WARNNING: build/clean image need run as sudo" echo "" echo " Example: $0 -b bsp && sudo $0 -b image" echo "" exit; } action="usage" while getopts "b:c:h" OPTNAME do case "${OPTNAME}" in "b") action="build" shift ;; "c") action="clean" shift ;; "*") action="usage" ;; esac done if [ $action == "usage" ] ; then do_usage fi if [ $action == "build" ] ; then do_modify cd tarball && ./build.sh && cd - fi if [ $1 == "bsp" ] ; then if [ $action == "build" ] ; then do_root "no" fi do_action bootloader $action do_action kernel $action do_action drivers $action elif [ $1 == "image" ] ; then do_root "yes" do_action rootfs $action do_action images $action fi