1 include $(TOPDIR
)/include/verbose.mk
3 all: tmp
/.
$(SCAN_TARGET
)
5 SCAN_TARGET ?
= packageinfo
8 TARGET_STAMP
:=tmp
/info/.files-
$(SCAN_TARGET
).stamp
9 FILELIST
:=tmp
/info/.files-
$(SCAN_TARGET
)-$(SCAN_COOKIE
)
13 printf
"\033[M\r$(1)" >&2;
22 tmp
/.
$(SCAN_TARGET
): tmp
/info/.
$(SCAN_TARGET
)-$(1)
23 tmp
/info/.
$(SCAN_TARGET
)-$(1): $(SCAN_DIR
)/$(2)/Makefile
$(SCAN_STAMP
) $(foreach DEP
,$(DEPS_
$(SCAN_DIR
)/$(1)/Makefile
) $(SCAN_DEPS
),$(wildcard $(if
$(filter /%,$(DEP
)),$(DEP
),$(SCAN_DIR
)/$(1)/$(DEP
))))
25 $$(call progress
,Collecting
$(SCAN_NAME
) info: $(SCAN_DIR
)/$(2)) \
26 echo Source-Makefile
: $(SCAN_DIR
)/$(2)/Makefile
; \
27 $(NO_TRACE_MAKE
) --no-print-dir DUMP
=1 -C
$(SCAN_DIR
)/$(2) 2>/dev
/null || echo
"ERROR: please fix $(SCAN_DIR)/$(2)/Makefile" >&2; \
33 rm -f tmp
/info/.files-
$(SCAN_TARGET
)-*
34 find
-L
$(SCAN_DIR
) $(SCAN_EXTRA
) -mindepth
1 $(if
$(SCAN_DEPTH
),-maxdepth
$(SCAN_DEPTH
)) -name Makefile | xargs grep
-HE
'call (Build/DefaultTargets|KernelPackage|Build(Package|Kernel))' | sed
-e
's#^$(SCAN_DIR)/##' -e
's#/Makefile:.*##' | uniq
> $@
36 tmp
/info/.files-
$(SCAN_TARGET
).mk
: $(FILELIST
)
38 cat
$< | awk
'{print "$(SCAN_DIR)/" $$0 "/Makefile" }' | xargs grep
-HE
'^ *SCAN_DEPS *= *' | awk
-F
: '{ gsub(/^.*DEPS *= */, "", $$2); print "DEPS_" $$1 "=" $$2 }'; \
39 awk
-v deps
="$$DEPS" '{ \
41 gsub(/\//, "_", info); \
42 print "$$(eval $$(call PackageDir," info "," $$0 "))"; \
47 -include tmp
/info/.files-
$(SCAN_TARGET
).mk
51 $(NO_TRACE_MAKE
) $(FILELIST
); \
52 MD5SUM
=$$(cat
$(FILELIST
) |
(md5sum || md5
) | awk
'{print $$1}'); \
53 [ -f
"$@.$$MD5SUM" ] ||
{ \
60 tmp
/.
$(SCAN_TARGET
): $(TARGET_STAMP
) $(SCAN_STAMP
)
61 $(call progress
,Collecting
$(SCAN_NAME
) info: merging...
)
62 cat
$(FILELIST
) | awk
'{gsub(/\//, "_", $$0);print "tmp/info/.$(SCAN_TARGET)-" $$0}' | xargs cat
> $@
63 $(call progress
,Collecting
$(SCAN_NAME
) info: done
)