+$(STAMP_$(1)):
+ @mkdir -p tmp/info
+ @rm -f tmp/info/.stamp-$(1)*
+ @touch $$@
+
+$(foreach FILE,$(shell ls $(2)/*/Makefile),
+tmp/.$(1): $(FILE)
+$(FILE):
+)
+
+tmp/.$(1): $(STAMP_$(1))
+ @echo -n Collecting $(3) info...
+ @$(NO_TRACE_MAKE) -s -f include/scan.mk SCAN_TARGET="$(1)" SCAN_DIR="$(2)" SCAN_NAME="$(3)" SCAN_DEPS="$(4)"
+
+endef
+
+$(eval $(call scan_info,pkginfo,package,package,include/package.mk))
+$(eval $(call scan_info,targetinfo,target/linux,target,include/kernel-build.mk include/kernel-version.mk))
+
+tmpinfo-clean: FORCE
+ @-rm -rf tmp/.pkginfo tmp/.targetinfo
+
+tmp/.config.in: tmp/.pkginfo
+ @./scripts/metadata.pl package_config < $< > $@ || rm -f $@
+
+tmp/.config-target.in: tmp/.targetinfo
+ @./scripts/metadata.pl target_config < $< > $@ || rm -f $@
+
+.config: ./scripts/config/conf tmp/.config.in tmp/.config-target.in
+ @[ -f .config ] || $(NO_TRACE_MAKE) menuconfig
+ @$< -D .config Config.in &> /dev/null