YB_Platform/build.sh

154 lines
4.6 KiB
Bash
Raw Normal View History

2023-07-13 11:27:03 +08:00
set -e
usage() {
echo "usage: $0 [variants] [--debug] [--evmy] [--test caseid] [--cpri/--jesd] [--pcie] [--mask bitmap] [--diagnostic]" 1>&2
msg=${1:-}
if [ ! -z "${msg}" ]; then
echo "error:$1"
fi
exit 1
}
variants=
debug_option="no"
fronthaul_option="cpri"
diagnostic_option="no"
backhaul_option="tmac"
osp_test_option="no"
fh_test_option="no"
board_option="evb"
osp_case_id=0
cpri_case_id=34
jesd_case_id=43
fh_case_id=
ape_core_mask=15
platform_build_data=539166246
while [[ "$#" > 0 ]]; do
case $1 in
--debug) debug_option="yes"; shift;;
--diagnostic) diagnostic_option="yes"; shift;;
--evmy) board_option="evmy"; shift;;
--cpri) fronthaul_option="cpri"; shift;;
--jesd) fronthaul_option="jesd"; shift;;
--pcie) backhaul_option="pcie"; shift;;
--mask)
if [[ ! -z "$2" ]] && [[ -n "$(echo $2 | sed -n " /^[0-9]\+$/p")" ]]; then
ape_core_mask=$2; shift;
fi
shift;;
--data)
if [[ ! -z "$2" ]] && [[ -n "$(echo $2 | sed -n " /^[0-9]\+$/p")" ]]; then
platform_build_data=$2; shift;
fi
shift;;
--testosp) osp_test_option="yes";
if [[ ! -z "$2" ]] && [[ -n "$(echo $2 | sed -n " /^[0-9]\+$/p")" ]]; then
osp_case_id=$2; shift;
fi
shift;;
--testcpri) fh_test_option="yes";
if [[ ! -z "$2" ]] && [[ -n "$(echo $2 | sed -n " /^[0-9]\+$/p")" ]]; then
cpri_case_id=$2; shift;
fi
fh_case_id=${cpri_case_id};
shift;;
--testjesd) fh_test_option="yes";
if [[ ! -z "$2" ]] && [[ -n "$(echo $2 | sed -n " /^[0-9]\+$/p")" ]]; then
jesd_case_id=$2; shift;
fi
fh_case_id=${jesd_case_id};
shift;;
--*| -*) usage "unknown option $1"; exit 1;;
*) variants+=" $1"; shift;;
esac;
done
if [[ "${variants}" == "" ]]; then
make_list="ape_spu ecs_rfm_spu0 ecs_rfm_spu1 pet_rfm_spu0 pet_rfm_spu1"
else
make_list=${variants}
fi
DIR_SCRIPT=$(cd `dirname "$0"`;pwd)
#echo "# script_dir:${DIR_SCRIPT}"
export DIR_ROOT=${DIR_SCRIPT}/public
export BUILD_DIR=${DIR_SCRIPT}/build
if [ "${board_option}" == "evmy" ]; then
BOARD_DIR=${DIR_SCRIPT}/EVMY
else
BOARD_DIR=${DIR_SCRIPT}/EVB
fi
export BOARD_DIR
echo "# BOARD_DIR:${BOARD_DIR}"
export MAKE_DIR=${DIR_ROOT}/make
RTOS_DIR=${DIR_ROOT}/rtos/lib
if [ -d ${BUILD_DIR} ]; then
rm -rf ${BUILD_DIR}
fi
if [ -d ${RTOS_DIR} ]; then
rm -rf ${RTOS_DIR}
fi
export board_option=${board_option}
export diagnostic_option=${diagnostic_option}
export debug_option=${debug_option}
export fronthaul_option=${fronthaul_option}
export backhaul_option=${backhaul_option}
export ape_core_mask=${ape_core_mask}
export platform_build_data=${platform_build_data}
make -f ${MAKE_DIR}/makefile.lib
makefile_set="makefile.ape_spu makefile.ecs_rfm_spu0 makefile.ecs_rfm_spu1 makefile.pet_rfm_spu0 makefile.pet_rfm_spu1"
for list in ${make_list}; do
MAKEFILE=makefile.${list}
if ! [[ "${makefile_set}" =~ "${MAKEFILE}" ]]; then
echo "error:unknown makefile name[${MAKEFILE}]"
exit 2
fi
if [ "${list}" == "ape_spu" ]; then
for ((ape_id=0; ape_id<8; ape_id++)); do
valid_flag=$((${ape_core_mask}>>ape_id &1));
echo "ape_core_mask=${ape_core_mask}, ape_id=${ape_id}, valid_flag=${valid_flag}"
if [ ${valid_flag} -eq 1 ]; then
ape_list=${list}${ape_id}
LIB_TARGET_DIR=${BUILD_DIR}/${list}/lib
mkdir -p ${LIB_TARGET_DIR}
cp -f ${RTOS_DIR}/${list}/* ${LIB_TARGET_DIR}/
echo "###### start compiling ${ape_list}..."
make -f ${MAKE_DIR}/${MAKEFILE} build_variable=${list} ape_id=${ape_id} test_option=${osp_test_option} test_id=${osp_case_id}
echo -e "\n"
echo -e "\n"
fi
done
else
LIB_TARGET_DIR=${BUILD_DIR}/${list}/lib
mkdir -p ${LIB_TARGET_DIR}
cp -f ${RTOS_DIR}/rfm_spu/* ${LIB_TARGET_DIR}/
echo "###### start compiling ${list}..."
if ! [[ "${makefile_set}" =~ "${MAKEFILE}" ]]; then
echo "error:unknown makefile name[${MAKEFILE}]"
exit 2
fi
make -f ${MAKE_DIR}/${MAKEFILE} build_variable=${list} test_option=${fh_test_option} test_id=${fh_case_id}
echo -e "\n"
fi
done
rm -rf ${RTOS_DIR}