101 lines
3.4 KiB
Bash
Raw Normal View History

2025-02-27 17:59:18 +08:00
#!/bin/bash
set -e
set -u
ARMINO_TARGET="build"
ARMINO_DIR=$1
PROJECT_DIR=$2
BUILD_DIR=$3
BUILD_TARGET=$4
ARMINO_TOOL=${ARMINO_DIR}/tools/build_tools/armino
BUILD_TARGET_PREFIX=${BUILD_TARGET:0:5}
need_build_properties_lib=0
need_build_soc=0
need_clean=0
need_doc=0
if [ "${BUILD_TARGET_PREFIX}" == "libbk" ]; then
ARMINO_SOC=${BUILD_TARGET#lib}
need_build_properties_lib=1
BUILD_DIR=build/properties_libs/${ARMINO_SOC}
PROJECT_DIR=projects/properties_libs
echo "build armino ${ARMINO_SOC} properties libs only"
export LIB_HASH="NULL"
elif [ "${BUILD_TARGET_PREFIX}" == "relbk" ]; then
ARMINO_SOC=${BUILD_TARGET#rel}
BUILD_DIR=build/${BUILD_DIR}/${ARMINO_SOC}
need_build_properties_lib=0
need_build_soc=1
echo "build armino ${ARMINO_SOC} only"
export LIB_HASH="NULL"
elif [ "${BUILD_TARGET_PREFIX}" == "clean" ]; then
ARMINO_SOC=${BUILD_TARGET#clean}
BUILD_DIR=build/${BUILD_DIR}/${ARMINO_SOC}
need_clean=1
elif [ "${BUILD_TARGET_PREFIX}" == "docbk" ]; then
ARMINO_SOC=${BUILD_TARGET#doc}
BUILD_DIR=build/${BUILD_DIR}/${ARMINO_SOC}
echo "build armino ${ARMINO_SOC} doc only"
need_doc=1
elif [ "${APP_VERSION}" == "verify" ]; then
ARMINO_SOC=${BUILD_TARGET}
BUILD_DIR=${BUILD_DIR}/${ARMINO_SOC}
need_build_soc=1
need_build_properties_lib=0
compute_hash_tool=${ARMINO_DIR}/tools/build_tools/compute_files_hash.py
export LIB_HASH=$(python3 ${compute_hash_tool} ${ARMINO_DIR}/components/bk_libs/${ARMINO_SOC}/libs)
else
ARMINO_SOC=${BUILD_TARGET}
BUILD_DIR=${BUILD_DIR}/${ARMINO_SOC}
need_build_soc=1
has_properties_lib_src=$(${ARMINO_DIR}/tools/build_tools/detect_internal_lib_src.py)
if [ ${has_properties_lib_src} == "1" ]; then
echo "build armino properties lib first, then ${ARMINO_SOC}"
need_build_properties_lib=1
export LIB_HASH="NULL"
else
need_build_properties_lib=0
compute_hash_tool=${ARMINO_DIR}/tools/build_tools/compute_files_hash.py
export LIB_HASH=$(python3 ${compute_hash_tool} ${ARMINO_DIR}/components/bk_libs/${ARMINO_SOC}/libs)
fi
fi
PROPERTIES_LIB_BUILD_DIR=${ARMINO_DIR}/build/properties_libs/${ARMINO_SOC}
PROPERTIES_LIB_DIR=${PROPERTIES_PROJECT_DIR}
if [ "${need_clean}" == "1" ]; then
echo "remove ${ARMINO_DIR}/components/bk_libs/${ARMINO_SOC}"
rm -rf ${ARMINO_DIR}/components/bk_libs/${ARMINO_SOC}
echo "remove ${ARMINO_DIR}/${BUILD_DIR}"
rm -rf ${ARMINO_DIR}/${BUILD_DIR}
echo "remove ${PROPERTIES_LIB_BUILD_DIR}"
rm -rf ${PROPERTIES_LIB_BUILD_DIR}
python ${ARMINO_DIR}/tools/build_tools/armino_doc.py clean ${ARMINO_SOC}
exit 0
fi
if [ "${need_doc}" == "1" ]; then
${ARMINO_TOOL} -B ./${BUILD_DIR} -P ./${PROJECT_DIR} doc ${ARMINO_SOC}
exit 0
fi
if [ "${need_build_properties_lib}" == "1" ]; then
echo "build properties lib for ${ARMINO_SOC}"
rm -rf ${PROPERTIES_LIB_BUILD_DIR}/sdkconfig
${ARMINO_TOOL} -B ${PROPERTIES_LIB_BUILD_DIR} -P ${PROPERTIES_LIB_DIR} set-target ${ARMINO_SOC}
${ARMINO_TOOL} -B ${PROPERTIES_LIB_BUILD_DIR} -P ${PROPERTIES_LIB_DIR} ${ARMINO_TARGET}
${ARMINO_DIR}/tools/build_tools/copy_internal_libs.sh ${ARMINO_SOC} ${ARMINO_DIR} ${PROPERTIES_LIB_BUILD_DIR} ${PROJECT}
fi
if [ "${need_build_soc}" == "1" ]; then
echo "build ${ARMINO_SOC}"
rm -rf ${ARMINO_DIR}/${BUILD_DIR}/sdkconfig
${ARMINO_TOOL} -B ${ARMINO_DIR}/${BUILD_DIR} -P ${ARMINO_DIR}/${PROJECT_DIR} set-target ${ARMINO_SOC}
${ARMINO_TOOL} -B ${ARMINO_DIR}/${BUILD_DIR} -P ${ARMINO_DIR}/${PROJECT_DIR} ${ARMINO_TARGET}
${ARMINO_DIR}/tools/build_tools/armino_as_lib.sh ${ARMINO_SOC} ${ARMINO_DIR} ${ARMINO_DIR}/${BUILD_DIR} ${PROJECT}
fi