# 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
#########################################################################
## ARM11 Systems
#########################################################################
-LIST_ARM11="$(boards_by_cpu arm1136) \
- imx31_phycore \
- imx31_phycore_eet \
- mx31pdk \
- smdk6400 \
-"
+LIST_ARM11="$(boards_by_cpu arm1136)"
#########################################################################
## ARMV7 Systems
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}"
export BUILD_DIR="${output_dir}"
- if [ "$ONLY_LIST" == 'y' ] ; then
- list_target ${target}
- return
- fi
-
${MAKE} distclean >/dev/null
${MAKE} -s ${target}_config
${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
[ -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++ ))
[ ${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
: $((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.
#-----------------------------------------------------------------------
+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 -riwl 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 -riwL 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
}