X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=MAKEALL;h=2e8b9973d7ea8d13cb4ffa0757c42554f4b848db;hb=b29da17494269c7e7f62eccc8ab78651a6c7b3d9;hp=5b610bf93f66898898207b2b0a7c38571cad9863;hpb=bb1c01eaf69047b975d6ecf0ccbedee22a217942;p=karo-tx-uboot.git diff --git a/MAKEALL b/MAKEALL index 5b610bf93f..2e8b9973d7 100755 --- a/MAKEALL +++ b/MAKEALL @@ -201,6 +201,8 @@ LIST="" # Keep track of the number of builds and errors ERR_CNT=0 ERR_LIST="" +WRN_CNT=0 +WRN_LIST="" TOTAL_CNT=0 CURRENT_CNT=0 OLDEST_IDX=1 @@ -340,12 +342,7 @@ LIST_ARM9="$(boards_by_cpu arm920t) \ ######################################################################### ## ARM11 Systems ######################################################################### -LIST_ARM11="$(boards_by_cpu arm1136) \ - imx31_phycore \ - imx31_phycore_eet \ - mx31pdk \ - smdk6400 \ -" +LIST_ARM11="$(boards_by_cpu arm1136)" ######################################################################### ## ARMV7 Systems @@ -615,6 +612,11 @@ build_target() { target=$1 build_idx=$2 + if [ "$ONLY_LIST" == 'y' ] ; then + list_target ${target} + return + fi + if [ $BUILD_MANY == 1 ] ; then output_dir="${OUTPUT_PREFIX}/${target}" mkdir -p "${output_dir}" @@ -624,11 +626,6 @@ build_target() { export BUILD_DIR="${output_dir}" - if [ "$ONLY_LIST" == 'y' ] ; then - list_target ${target} - return - fi - ${MAKE} distclean >/dev/null ${MAKE} -s ${target}_config @@ -644,14 +641,19 @@ build_target() { ${MAKE} tidy if [ -s ${LOG_DIR}/${target}.ERR ] ; then - touch ${OUTPUT_PREFIX}/ERR/${target} + cp ${LOG_DIR}/${target}.ERR ${OUTPUT_PREFIX}/ERR/${target} else rm ${LOG_DIR}/${target}.ERR fi else if [ -s ${LOG_DIR}/${target}.ERR ] ; then - : $(( ERR_CNT += 1 )) - ERR_LIST="${ERR_LIST} $target" + if grep -iw error ${LOG_DIR}/${target}.ERR ; then + : $(( ERR_CNT += 1 )) + ERR_LIST="${ERR_LIST} $target" + else + : $(( WRN_CNT += 1 )) + WRN_LIST="${WRN_LIST} $target" + fi else rm ${LOG_DIR}/${target}.ERR fi @@ -666,16 +668,15 @@ build_target() { [ -e "${LOG_DIR}/${target}.ERR" ] && cat "${LOG_DIR}/${target}.ERR" - #echo "Writing ${donep}${build_idx}" touch "${donep}${build_idx}" } manage_builds() { search_idx=${OLDEST_IDX} - #echo "Searching ${OLDEST_IDX} to ${TOTAL_CNT}" + if [ "$ONLY_LIST" == 'y' ] ; then return ; fi + while true; do if [ -e "${donep}${search_idx}" ] ; then - # echo "Found ${donep}${search_idx}" : $(( CURRENT_CNT-- )) [ ${OLDEST_IDX} -eq ${search_idx} ] && : $(( OLDEST_IDX++ )) @@ -687,10 +688,8 @@ manage_builds() { [ ${OLDEST_IDX} -eq ${search_idx} ] && : $(( OLDEST_IDX++ )) fi - #echo "Checking search ${search_idx} vs ${TOTAL_CNT}" : $(( search_idx++ )) if [ ${search_idx} -gt ${TOTAL_CNT} ] ; then - #echo "Checking current ${CURRENT_CNT} vs ${BUILD_NBUILDS}" if [ ${CURRENT_CNT} -ge ${BUILD_NBUILDS} ] ; then search_idx=${OLDEST_IDX} sleep 1 @@ -717,7 +716,11 @@ build_targets() { : $((CURRENT_CNT += 1)) rm -f "${donep}${TOTAL_CNT}" rm -f "${skipp}${TOTAL_CNT}" - build_target ${t} ${TOTAL_CNT} & + if [ $BUILD_MANY == 1 ] ; then + build_target ${t} ${TOTAL_CNT} & + else + build_target ${t} ${TOTAL_CNT} + fi fi # We maintain a running count of all the builds we have done. @@ -739,26 +742,41 @@ build_targets() { #----------------------------------------------------------------------- +kill_children() { + kill -- "-$1" + + exit +} + print_stats() { if [ "$ONLY_LIST" == 'y' ] ; then return ; fi rm -f ${donep}* ${skipp}* if [ $BUILD_MANY == 1 ] && [ -e "${OUTPUT_PREFIX}/ERR" ] ; then - ERR_LIST=$(ls ${OUTPUT_PREFIX}/ERR/) - ERR_CNT=`ls -1 ${OUTPUT_PREFIX}/ERR/ | wc | awk '{print $1}'` - else - ERR_CNT=0 + ERR_LIST=`grep -iwl error ${OUTPUT_PREFIX}/ERR/*` + ERR_LIST=`for f in $ERR_LIST ; do echo -n " $(basename $f)" ; done` + ERR_CNT=`echo $ERR_LIST | wc -w | awk '{print $1}'` + WRN_LIST=`grep -iwL error ${OUTPUT_PREFIX}/ERR/*` + WRN_LIST=`for f in $WRN_LIST ; do echo -n " $(basename $f)" ; done` + WRN_CNT=`echo $WRN_LIST | wc -w | awk '{print $1}'` fi echo "" echo "--------------------- SUMMARY ----------------------------" echo "Boards compiled: ${TOTAL_CNT}" if [ ${ERR_CNT} -gt 0 ] ; then - echo "Boards with warnings or errors: ${ERR_CNT} (${ERR_LIST} )" + echo "Boards with errors: ${ERR_CNT} (${ERR_LIST} )" + fi + if [ ${WRN_CNT} -gt 0 ] ; then + echo "Boards with warnings but no errors: ${WRN_CNT} (${WRN_LIST} )" fi echo "----------------------------------------------------------" + if [ $BUILD_MANY == 1 ] ; then + kill_children $$ & + fi + exit $RC }