From 9805286b40707a31bdfa39c59afe6c8aecd4e986 Mon Sep 17 00:00:00 2001 From: nbd Date: Tue, 19 Dec 2006 01:20:44 +0000 Subject: [PATCH] implement real-time progress info for the package/target info collect (thanks to Thorsten Glaser for the idea) git-svn-id: svn://svn.openwrt.org/openwrt/trunk@5850 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- Makefile | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index 2dcb72763..447457e26 100644 --- a/Makefile +++ b/Makefile @@ -52,24 +52,31 @@ ifeq ($(FORCE),) world: tmp/.prereq-packages tmp/.prereq-target endif -tmp/.pkginfo: +ifeq ($(IS_TTY),1) + define progress + printf "\033[M\r$(1)" >&2; + endef +endif + +define dumpinfo @mkdir -p tmp - @echo Collecting package info... - @-for dir in package/*/; do \ + @echo -n Collecting package info... + @-for dir in $(1)/*/; do \ [ -f "$${dir}/Makefile" ] || continue; \ + $(call progress,Collecting package info... $${dir%%/}) \ echo Source-Makefile: $${dir}Makefile; \ $(NO_TRACE_MAKE) --no-print-dir DUMP=1 -C $$dir 3>/dev/null || echo "ERROR: please fix $${dir}Makefile" >&2; \ echo; \ done > $@ + $(call progress,Collecting package info... done) + echo +endef + +tmp/.pkginfo: + $(call dumpinfo,package) tmp/.targetinfo: - @mkdir -p tmp - @echo Collecting target info... - @-for dir in target/linux/*/; do \ - [ -f "$${dir}/Makefile" ] || continue; \ - ( cd "$$dir"; $(NO_TRACE_MAKE) --no-print-dir DUMP=1 3>/dev/null || echo "ERROR: please fix $${dir}Makefile" >&2 ); \ - echo; \ - done > $@ + $(call dumpinfo,target/linux) tmpinfo-clean: FORCE @-rm -rf tmp/.pkginfo tmp/.targetinfo