
Hi Mike,
On Sun, Nov 20, 2011 at 1:23 PM, Mike Frysinger vapier@gentoo.org wrote:
On Thursday 03 November 2011 03:28:29 Andy Fleming wrote:
+if [ ! "${BUILD_NBUILDS}" ] ; then
- BUILD_NBUILDS="1"
+fi
: ${BUILD_NBUILDS:=1}
- if [ ! "${BUILD_DIR}" ] ; then
- BUILD_DIR="./build"
- fi
: ${BUILD_DIR:=./build}
- mkdir -p ${BUILD_DIR}/ERR
mkdir -p "${BUILD_DIR}/ERR"
if [ ! "${BUILD_DIR}" ] ; then BUILD_DIR="." fi
: ${BUILD_DIR:=.}
- mkdir -p ${output_dir}
mkdir -p "${output_dir}"
- ${MAKE} clean
- find "${output_dir}" -type f -name '*.depend' | xargs rm
why not use distclean and avoid the `find` ? otherwise, this find should be: find "${output_dir}" -type f -name '*.depend' -exec rm -f {} +
- ERR_CNT=$((ERR_CNT + 1))
: $(( ERR_CNT += 1 ))
- build_target ${t}
- if [ "$BUILD_NBUILDS" -gt 1 ] ; then
- build_target ${t} &
- else
- build_target ${t}
- fi
you could keep this one line as: build_target ${t} & [ ${BUILD_NBUILDS} -eq 1 ] && wait
- TOTAL_CNT=$((TOTAL_CNT + 1))
: $(( TOTAL_CNT += 1 ))
- CURRENT_COUNT=$((CURRENT_COUNT + 1))
: $(( CURRENT_COUNT += 1 ))
- # Limit number of parallel builds
- if [ ${CURRENT_COUNT} -gt ${BUILD_NBUILDS} ] ; then
- CURRENT_COUNT=0;
- wait;
fi
you don't need those semicolons. also, this is not as good as it should be: if you're running 10 jobs in parallel, you fork 10, and then you wait for all of them to finish before forking another set of 10.
what you could do is something like: JOB_IDX=0 JOB_IDX_FIRST=0 BUILD_NBUILDS=1
... foreach target ... ; do build_target & pids[$(( JOB_IDX++ ))]=$! if [ $(( JOB_IDX - JOB_IDX_FIRST )) -ge ${BUILD_NBUILDS} ] ; then wait ${pids[$(( JOB_IDX_FIRST++ ))]} fi done wait
this isn't perfect as it assumes the first job launched will always finish first, but it's a lot closer than the current code.
Since all the jobs are launched at the same time this is not really a valid assumption is it? IMO on this point it's good enough as it is for now...
Regards, Simon
- for file in `ls ${OUTPUT_PREFIX}/ERR/`; do
- ERR_LIST="${ERR_LIST} $file"
- done
ERR_LIST=$(ls ${OUTPUT_PREFIX}/ERR/)
- ERR_CNT=`ls -l ${OUTPUT_PREFIX}/ERR/ | wc | awk '{print $1}'`
you should use -1 instead of -l -mike
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot