diff options
author | xiaobo gu <xiaobo.gu@amlogic.com> | 2018-01-12 20:15:18 +0800 |
---|---|---|
committer | xiaobo gu <xiaobo.gu@amlogic.com> | 2018-01-12 20:15:18 +0800 |
commit | b4a2245ce3835ae1c5c6408a38f8c49205245620 (patch) | |
tree | cd248569624b45845552502ba4c654412e8c0cbb /check_compile.sh | |
parent | ca6c2acec0ba4d8449fda269dfc9ecd6eab09539 (diff) | |
download | u-boot-odroid-c1-b4a2245ce3835ae1c5c6408a38f8c49205245620.tar.gz |
Revert "Remove bl33 useless script"
This reverts commit ca6c2acec0ba4d8449fda269dfc9ecd6eab09539.
Diffstat (limited to 'check_compile.sh')
-rwxr-xr-x | check_compile.sh | 192 |
1 files changed, 192 insertions, 0 deletions
diff --git a/check_compile.sh b/check_compile.sh new file mode 100755 index 0000000000..dee68ea7c0 --- /dev/null +++ b/check_compile.sh @@ -0,0 +1,192 @@ +#!/bin/bash + +#------------IMPORTANT------------# +#--RUN THIS SCRIPT BEFOR COMMIT---# +#---------------------------------# + +# Author: xiaobo.gu@amlogic.com +# Init version: 20160329 + +#usage: +# +#./check_compile.sh -check amlogic board configs +#./check_compile.sh cus -check customer board configs +#./check_compile.sh all -check both amlogic and customer boards + + +folder_board="board/amlogic" +customer_folder="customer/board" + +echo "************** Amlogic Compile Check Tool **************" + +# filters define: +# cus: all customer board +# all: all boards +# other: +# gxb: all gxbaby board +# gxtvbb: all gxtvbb board +# skt: all socket board +# p200: p200 board +# etc..... +declare filter="$1" + +# ARRAY_CFG store config names +declare -a ARRAY_CFG +declare -a ARRAY_CFG_C +# TOTAL_CFG store config total num +declare -i TOTAL_CFG +declare -i TOTAL_CFG_C + +# if filter!=cus, then include amlogic configs +# get all configs name from board folder +if [ "$1" != "cus" ] +then + filter=$1 + for file in ${folder_board}/*; do + temp_file=`basename $file` + #echo "$temp_file" + if [ -d ${folder_board}/${temp_file} ] && [ "$temp_file" != "defconfigs" ] && [ "$temp_file" != "configs" ];then + #echo " \c" + #echo $temp_file + ARRAY_CFG[$TOTAL_CFG]=$temp_file + TOTAL_CFG=$TOTAL_CFG+1 + fi + done +fi + +# if filter==all || filter==cus, then include customer configs +# get all customer configs name from customer board folder +if [ "$1" == "cus" ] || [ "$1" == "all" ] +then + filter="" + if [ -e ${customer_folder} ];then + for file in ${customer_folder}/*; do + temp_file=`basename $file` + if [ -d ${customer_folder}/${temp_file} ] && [ "$temp_file" != "defconfigs" ] && [ "$temp_file" != "configs" ];then + #echo " \c" + #echo $temp_file + ARRAY_CFG_C[$TOTAL_CFG_C]=$temp_file + TOTAL_CFG_C=$TOTAL_CFG_C+1 + fi + done + fi +fi + +echo "************************ START *************************" + +# compile check start +# RESULT store compile result +declare RESULT="" +declare -i LOOP_NUM=0 +# counter variables +declare -i PASS_COUNTER=0 +declare -i FAIL_COUNTER=0 + +# print bar and alignment +declare -i BAR_TOTAL=30 +declare -i BAR_LOOP + +# trying fix scp task compile failure misreport issue +declare -i BUILD_COUNTER=3 +declare -i BUILD_RESULT=0 + +RESULT=$RESULT"########### Compile Check Result ###########\n" + +if [ "$1" != "cus" ] +then + RESULT=$RESULT"--------------------------------------------\n" + RESULT=$RESULT"############## Amlogic Boards ##############\n" + # loop all cfgs + for cfg in ${ARRAY_CFG[@]} + do + # find filter in config name + if [[ $(echo $cfg | grep "${filter}") == "" ]] + then + # skip !filter configs + continue + fi + LOOP_NUM=$LOOP_NUM+1 + RESULT=$RESULT' ' + # print '0' charactors for alignment + BAR_LOOP=3-`expr length $LOOP_NUM` + if [ "$BAR_LOOP" -gt "0" ] + then + for tmp in `seq $BAR_LOOP`;do RESULT=$RESULT'0';done + fi + RESULT=$RESULT$LOOP_NUM' ' + RESULT=$RESULT$cfg' ' + # print '-' charactors for alignment + BAR_LOOP=BAR_TOTAL-`expr length $cfg` + if [ "$BAR_LOOP" -gt "0" ] + then + for tmp in `seq $BAR_LOOP`;do RESULT=$RESULT'-';done + fi + # compile + BUILD_COUNTER=3 + BUILD_RESULT=0 + while [ "${BUILD_COUNTER}" -gt "0" ]; do + BUILD_COUNTER=$((BUILD_COUNTER - 1)) + make distclean + make $cfg'_defconfig' + make -j + # check last 'make -j' result + if [ $? != 0 ]; then + BUILD_RESULT=$((BUILD_RESULT + 1)) + else + BUILD_RESULT=0 + BUILD_COUNTER=0 + fi + done + # check compile result + if [ ${BUILD_RESULT} != 0 ]; then + RESULT=$RESULT'- failed\n' + FAIL_COUNTER=$FAIL_COUNTER+1 + else + RESULT=$RESULT'- pass\n' + PASS_COUNTER=$PASS_COUNTER+1 + fi + # print result + echo -e $RESULT + #echo $cfg + done +fi + +# check customer configs +if [ "$1" == "cus" ] || [ "$1" == "all" ] +then + RESULT=$RESULT"--------------------------------------------\n" + RESULT=$RESULT"############## Customer Boards #############\n" + for cfg in ${ARRAY_CFG_C[@]} + do + LOOP_NUM=$LOOP_NUM+1 + RESULT=$RESULT' ' + BAR_LOOP=3-`expr length $LOOP_NUM` + if [ "$BAR_LOOP" -gt "0" ] + then + for tmp in `seq $BAR_LOOP`;do RESULT=$RESULT'0';done + fi + RESULT=$RESULT$LOOP_NUM' ' + RESULT=$RESULT$cfg' ' + BAR_LOOP=BAR_TOTAL-`expr length $cfg` + if [ "$BAR_LOOP" -gt "0" ] + then + for tmp in `seq $BAR_LOOP`;do RESULT=$RESULT'-';done + fi + make distclean + make $cfg'_defconfig' + make -j + if [ $? != 0 ] + then + RESULT=$RESULT'- failed\n' + FAIL_COUNTER=$FAIL_COUNTER+1 + else + RESULT=$RESULT'- pass\n' + PASS_COUNTER=$PASS_COUNTER+1 + fi + echo -e $RESULT + done +fi + +echo -e "#################### END ###################\n" + +exit $FAIL_COUNTER |