From 4d181173278672153992d828f36e78387a2595c6 Mon Sep 17 00:00:00 2001
From: guowenxue <guowenxue@gmail.com>
Date: Thu, 06 Oct 2022 21:42:49 +0800
Subject: [PATCH] update build.sh to modify cross compiler
---
bsp/build.sh | 140 +++++++++++++++++++++++++++++++++++-----------
1 files changed, 107 insertions(+), 33 deletions(-)
diff --git a/bsp/build.sh b/bsp/build.sh
index 461e261..5f99016 100755
--- a/bsp/build.sh
+++ b/bsp/build.sh
@@ -2,58 +2,132 @@
PRJ_PATH=`pwd`
-BOARD=imx6ull
+BOARD=igkboard
-#CROSS_TOOL=arm-linux-gnueabihf-
-CROSS_TOOL=/opt/buildroot/cortexA7/bin/arm-linux-
+# BSP_VER should be lf-5.10.52-2.1.0, lf-5.15.32-2.0.0
+BSP_VER=lf-5.15.32-2.0.0
-# bootloader, linux kernel tarball path and branch
-TAR_PATH=${PRJ_PATH}/tarball
-BSP_BRANCH="lf-5.10.52-2.1.0"
+CROSS_TOOL=arm-linux-gnueabihf-
-# rootfs should be buildroot or stretch/buster/bullseye for debian system
-ROOTFS=buildroot
+# SYSTEM should be: buildroot, debian, yocto
+# DISTRO should be: v2021.02, bullseye, hardknott/honister/kirkstone
+SYSTEM=yocto
+DISTRO=kirkstone
+
+SYSTEM=`echo $SYSTEM | tr 'A-Z' 'a-z'`
+DISTRO=`echo $DISTRO | tr 'A-Z' 'a-z'`
set -u
set -e
-function do_modify_build()
-{
- DIR=$1
+function do_modify()
+{
cd $PRJ_PATH
- sed -i "s|^BOARD.*|BOARD=${BOARD}|g" ${DIR}/build.sh
+ FILE=scripts/setup_env.sh
- if [ $DIR = bootloader -o $DIR == kernel ] ; then
- sed -i "s|^CROSS_TOOL.*|CROSS_TOOL=${CROSS_TOOL}|g" ${DIR}/build.sh
- sed -i "s|^BSP_BRANCH.*|BSP_BRANCH=${BSP_BRANCH}|g" ${DIR}/build.sh
- elif [ $DIR = rootfs -o $DIR == images -o $DIR = tarball ] ; then
- sed -i "s|^ROOTFS=.*|ROOTFS=${ROOTFS}|g" ${DIR}/build.sh
+ sed -i "s|^BOARD.*|BOARD=${BOARD}|g" $FILE
+ sed -i "s|^CROSS_TOOL.*|CROSS_TOOL=${CROSS_TOOL}|g" $FILE
+
+ sed -i "s|^SYSTEM=.*|SYSTEM=${SYSTEM}|g" $FILE
+ sed -i "s|^DISTRO=.*|DISTRO=${DISTRO}|g" $FILE
+
+ sed -i "s|^BSP_VER=.*|BSP_VER=${BSP_VER}|g" $FILE
+}
+
+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_modify()
-{
- do_modify_build tarball
- do_modify_build bootloader
- do_modify_build kernel
- do_modify_build rootfs
- do_modify_build images
-}
-
-function do_build()
+function do_action()
{
- cd $PRJ_PATH/tarball && ./build.sh && cd -
+ folder=$1
+ action=$2
- cd $PRJ_PATH/bootloader && ./build.sh && cd -
+ if [ ! -f $PRJ_PATH/$folder/build.sh ] ;then
+ return ;
+ fi
- cd $PRJ_PATH/kernel && ./build.sh && cd -
+ cd $PRJ_PATH/$folder
- cd $PRJ_PATH/rootfs && ./build.sh && cd -
+ if [ $action == "build" ] ; then
+ ./build.sh -b
+ elif [ $action == "clean" ] ; then
+ ./build.sh -c
+ rm -rf ${PRJ_PATH}/tarballs
+ fi
+
+ cd $PRJ_PATH
}
-do_modify
+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 " Build Example: $0 -b bsp && sudo $0 -b image"
+ echo " Clean Example: $0 -c bsp && sudo $0 -c image"
+ echo ""
+ exit;
+}
-do_build
+
+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
+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
--
Gitblit v1.9.1