aboutsummaryrefslogtreecommitdiffstats
path: root/target/sdk/files
diff options
context:
space:
mode:
Diffstat (limited to 'target/sdk/files')
-rw-r--r--target/sdk/files/Makefile39
1 files changed, 28 insertions, 11 deletions
diff --git a/target/sdk/files/Makefile b/target/sdk/files/Makefile
index 7f42b697ab..184a1f9e42 100644
--- a/target/sdk/files/Makefile
+++ b/target/sdk/files/Makefile
@@ -33,21 +33,38 @@ export DEVELOPER
SDK=1
export SDK
+export IS_TTY=$(shell tty -s && echo 1 || echo 0)
+include $(TOPDIR)/include/verbose.mk
+
all: world
-.pkginfo: FORCE
-ifneq ($(shell ./scripts/timestamp.pl -p .pkginfo package Makefile),.pkginfo)
- @echo Collecting package info...
- @-for dir in package/*/; do \
- echo Source-Makefile: $${dir}Makefile; \
- $(MAKE) --no-print-dir DUMP=1 -C $$dir 2>&- || true; \
- done > $@
-endif
+define stamp
+tmp/info/.stamp-$(1)-$(shell ls $(2)/*/Makefile $(5) | (md5sum || md5) 2>/dev/null | cut -d' ' -f1)
+endef
+
+STAMP=$(call stamp,pkginfo,package)
+
+$(STAMP):
+ @mkdir -p tmp/info
+ @rm -f tmp/info/.stamp-pkginfo*
+ @touch $@
+
+define filedep
+$(foreach FILE,$(shell ls package/*/Makefile),
+tmp/.pkginfo: $(FILE)
+$(FILE):
+ @true
+)
+endef
+
+$(eval $(filedep))
-pkginfo-clean: FORCE
- -rm -f .pkginfo .config.in
+tmp/.pkginfo: $(STAMP)
+ @echo -n Collecting package info...
+ @$(NO_TRACE_MAKE) -s -f include/scan.mk SCAN_TARGET="pkginfo" SCAN_DIR="package" SCAN_NAME="package" SCAN_DEPS=""
-package/%: .pkginfo FORCE
+package/%: FORCE
+ @$(NO_TRACE_MAKE) -s tmp/.pkginfo
$(MAKE) -C package $(patsubst package/%,%,$@) SDK=1
download: FORCE