summaryrefslogtreecommitdiff
path: root/check_compile.sh
diff options
context:
space:
mode:
authorxiaobo gu <xiaobo.gu@amlogic.com>2018-01-12 20:15:18 +0800
committerxiaobo gu <xiaobo.gu@amlogic.com>2018-01-12 20:15:18 +0800
commitb4a2245ce3835ae1c5c6408a38f8c49205245620 (patch)
treecd248569624b45845552502ba4c654412e8c0cbb /check_compile.sh
parentca6c2acec0ba4d8449fda269dfc9ecd6eab09539 (diff)
downloadu-boot-odroid-c1-b4a2245ce3835ae1c5c6408a38f8c49205245620.tar.gz
Revert "Remove bl33 useless script"
This reverts commit ca6c2acec0ba4d8449fda269dfc9ecd6eab09539.
Diffstat (limited to 'check_compile.sh')
-rwxr-xr-xcheck_compile.sh192
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