1 include $(TOPDIR
)/include/verbose.mk
2 include $(TOPDIR
)/rules.mk
5 all: $(TMP_DIR
)/.
$(SCAN_TARGET
)
7 SCAN_TARGET ?
= packageinfo
10 TARGET_STAMP
:=$(TMP_DIR
)/info/.files-
$(SCAN_TARGET
).stamp
11 FILELIST
:=$(TMP_DIR
)/info/.files-
$(SCAN_TARGET
)-$(SCAN_COOKIE
)
12 OVERRIDELIST
:=$(TMP_DIR
)/info/.overrides-
$(SCAN_TARGET
)-$(SCAN_COOKIE
)
14 export PATH
:=$(TOPDIR
)/staging_dir
/host
/bin
:$(PATH
)
17 $(if
$(patsubst feeds
/%,,$(1)),,$(word 2,$(subst /, ,$(1))))
20 ifeq ($(SCAN_NAME
),target
)
21 SCAN_DEPS
=image
/Makefile profiles
/*.mk
$(TOPDIR
)/include/kernel
*.mk
$(TOPDIR
)/include/target.mk image
/*.mk
23 SCAN_DEPS
=$(TOPDIR
)/include/package
*.mk
24 ifneq ($(call feedname
,$(SCAN_DIR
)),)
25 SCAN_DEPS
+= $(TOPDIR
)/feeds
/$(call feedname
,$(SCAN_DIR
))/*.mk
30 ifneq ($(strip $(NO_COLOR
)),1)
32 printf
"\033[M\r$(1)" >&2;
46 $(TMP_DIR
)/.
$(SCAN_TARGET
): $(TMP_DIR
)/info/.
$(SCAN_TARGET
)-$(1)
47 $(TMP_DIR
)/info/.
$(SCAN_TARGET
)-$(1): $(SCAN_DIR
)/$(2)/Makefile
$(foreach DEP
,$(DEPS_
$(SCAN_DIR
)/$(2)/Makefile
) $(SCAN_DEPS
),$(wildcard $(if
$(filter /%,$(DEP
)),$(DEP
),$(SCAN_DIR
)/$(2)/$(DEP
))))
49 $$(call progress
,Collecting
$(SCAN_NAME
) info: $(SCAN_DIR
)/$(2)) \
50 echo Source-Makefile
: $(SCAN_DIR
)/$(2)/Makefile
; \
51 $(if
$(3),echo Override
: $(3),true
); \
52 $(NO_TRACE_MAKE
) --no-print-dir
-r DUMP
=1 FEED
="$(call feedname,$(2))" -C
$(SCAN_DIR
)/$(2) $(SCAN_MAKEOPTS
) 2>/dev
/null ||
{ \
53 mkdir
-p
"$(TOPDIR)/logs/$(SCAN_DIR)/$(2)"; \
54 $(NO_TRACE_MAKE
) --no-print-dir
-r DUMP
=1 FEED
="$(call feedname,$(2))" -C
$(SCAN_DIR
)/$(2) $(SCAN_MAKEOPTS
) > $(TOPDIR
)/logs
/$(SCAN_DIR
)/$(2)/dump.txt
2>&1; \
55 $$(call progress
,ERROR
: please fix
$(SCAN_DIR
)/$(2)/Makefile
- see logs
/$(SCAN_DIR
)/$(2)/dump.txt for details
\n) \
64 rm -f
$(TMP_DIR
)/info/.overrides-
$(SCAN_TARGET
)-*
67 ifeq ($(SCAN_NAME
),target
)
68 GREP_STRING
=BuildTarget
70 GREP_STRING
=(Build
/DefaultTargets|BuildPackage|KernelPackage
)
73 $(FILELIST
): $(OVERRIDELIST
)
74 rm -f
$(TMP_DIR
)/info/.files-
$(SCAN_TARGET
)-*
75 find
-L
$(SCAN_DIR
) $(SCAN_EXTRA
) -mindepth
1 $(if
$(SCAN_DEPTH
),-maxdepth
$(SCAN_DEPTH
)) -name Makefile | xargs grep
-aHE
'call $(GREP_STRING)' | sed
-e
's#^$(SCAN_DIR)/##' -e
's#/Makefile:.*##' | uniq | awk
-v of
=$(OVERRIDELIST
) -f
include/scan.awk
> $@
77 $(TMP_DIR
)/info/.files-
$(SCAN_TARGET
).mk
: $(FILELIST
)
79 cat
$< | awk
'{print "$(SCAN_DIR)/" $$0 "/Makefile" }' | xargs grep
-HE
'^ *SCAN_DEPS *= *' | awk
-F
: '{ gsub(/^.*DEPS *= */, "", $$2); print "DEPS_" $$1 "=" $$2 }'; \
80 awk
-F
/ -v deps
="$$DEPS" -v of
="$(OVERRIDELIST)" ' \
82 while (getline < (of)) \
88 gsub(/\//, "_", info); \
91 if($$NF in override) \
93 print "$$(eval $$(call PackageDir," info "," dir "," pkg "))"; \
99 -include $(TMP_DIR
)/info/.files-
$(SCAN_TARGET
).mk
103 $(NO_TRACE_MAKE
) $(FILELIST
); \
104 MD5SUM
=$$(cat
$(FILELIST
) $(OVERRIDELIST
) |
$(MKHASH
) md5 | awk
'{print $$1}'); \
105 [ -f
"$@.$$MD5SUM" ] ||
{ \
112 $(TMP_DIR
)/.
$(SCAN_TARGET
): $(TARGET_STAMP
)
113 $(call progress
,Collecting
$(SCAN_NAME
) info: merging...
)
114 -cat
$(FILELIST
) | awk
'{gsub(/\//, "_", $$0);print "$(TMP_DIR)/info/.$(SCAN_TARGET)-" $$0}' | xargs cat
> $@
2>/dev
/null
115 $(call progress
,Collecting
$(SCAN_NAME
) info: done
)