mirror of
https://github.com/hanwckf/immortalwrt-mt798x.git
synced 2025-01-08 10:23:47 +08:00
a891e5e14f
Commit af0b91c "allow scan.mk to find python packages introduced in [8639]" added some special casing to scan.mk to accomodate some nonstandard python packages. Nowadays this pattern is not needed anymore and produces false positives when using the LEDE source repository as feed within the SDK since the metadata scanning wrongly picks up target/imagebuilder/Makefile as package, leading to an "ERROR: please fix feeds/base/target/imagebuilder/Makefile" message. Remove the now uneeded pattern to fix such stray errors during metadata scanning. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
105 lines
3.2 KiB
Makefile
105 lines
3.2 KiB
Makefile
include $(TOPDIR)/include/verbose.mk
|
|
TMP_DIR:=$(TOPDIR)/tmp
|
|
|
|
all: $(TMP_DIR)/.$(SCAN_TARGET)
|
|
|
|
include $(TOPDIR)/include/host.mk
|
|
|
|
SCAN_TARGET ?= packageinfo
|
|
SCAN_NAME ?= package
|
|
SCAN_DIR ?= package
|
|
TARGET_STAMP:=$(TMP_DIR)/info/.files-$(SCAN_TARGET).stamp
|
|
FILELIST:=$(TMP_DIR)/info/.files-$(SCAN_TARGET)-$(SCAN_COOKIE)
|
|
OVERRIDELIST:=$(TMP_DIR)/info/.overrides-$(SCAN_TARGET)-$(SCAN_COOKIE)
|
|
|
|
ifeq ($(IS_TTY),1)
|
|
define progress
|
|
printf "\033[M\r$(1)" >&2;
|
|
endef
|
|
else
|
|
define progress
|
|
:;
|
|
endef
|
|
endif
|
|
|
|
define feedname
|
|
$(if $(patsubst feeds/%,,$(1)),,$(word 2,$(subst /, ,$(1))))
|
|
endef
|
|
|
|
define PackageDir
|
|
$(TMP_DIR)/.$(SCAN_TARGET): $(TMP_DIR)/info/.$(SCAN_TARGET)-$(1)
|
|
$(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))))
|
|
{ \
|
|
$$(call progress,Collecting $(SCAN_NAME) info: $(SCAN_DIR)/$(2)) \
|
|
echo Source-Makefile: $(SCAN_DIR)/$(2)/Makefile; \
|
|
$(if $(3),echo Override: $(3),true); \
|
|
$(NO_TRACE_MAKE) --no-print-dir -r DUMP=1 FEED="$(call feedname,$(2))" -C $(SCAN_DIR)/$(2) $(SCAN_MAKEOPTS) 2>/dev/null || { \
|
|
mkdir -p "$(TOPDIR)/logs/$(SCAN_DIR)/$(2)"; \
|
|
$(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; \
|
|
$$(call progress,ERROR: please fix $(SCAN_DIR)/$(2)/Makefile - see logs/$(SCAN_DIR)/$(2)/dump.txt for details\n) \
|
|
rm -f $$@; \
|
|
}; \
|
|
echo; \
|
|
} > $$@.tmp
|
|
mv $$@.tmp $$@
|
|
endef
|
|
|
|
$(OVERRIDELIST):
|
|
rm -f $(TMP_DIR)/info/.overrides-$(SCAN_TARGET)-*
|
|
touch $@
|
|
|
|
ifeq ($(SCAN_NAME),target)
|
|
GREP_STRING=BuildTarget
|
|
else
|
|
GREP_STRING=(Build/DefaultTargets|BuildPackage)
|
|
endif
|
|
|
|
$(FILELIST): $(OVERRIDELIST)
|
|
rm -f $(TMP_DIR)/info/.files-$(SCAN_TARGET)-*
|
|
$(call 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 > $@
|
|
|
|
$(TMP_DIR)/info/.files-$(SCAN_TARGET).mk: $(FILELIST)
|
|
( \
|
|
cat $< | awk '{print "$(SCAN_DIR)/" $$0 "/Makefile" }' | xargs grep -HE '^ *SCAN_DEPS *= *' | awk -F: '{ gsub(/^.*DEPS *= */, "", $$2); print "DEPS_" $$1 "=" $$2 }'; \
|
|
awk -F/ -v deps="$$DEPS" -v of="$(OVERRIDELIST)" ' \
|
|
BEGIN { \
|
|
while (getline < (of)) \
|
|
override[$$NF]=$$0; \
|
|
close(of) \
|
|
} \
|
|
{ \
|
|
info=$$0; \
|
|
gsub(/\//, "_", info); \
|
|
dir=$$0; \
|
|
pkg=""; \
|
|
if($$NF in override) \
|
|
pkg=override[$$NF]; \
|
|
print "$$(eval $$(call PackageDir," info "," dir "," pkg "))"; \
|
|
} ' < $<; \
|
|
true; \
|
|
) > $@.tmp
|
|
mv $@.tmp $@
|
|
|
|
-include $(TMP_DIR)/info/.files-$(SCAN_TARGET).mk
|
|
|
|
$(TARGET_STAMP)::
|
|
+( \
|
|
$(NO_TRACE_MAKE) $(FILELIST); \
|
|
MD5SUM=$$(cat $(FILELIST) $(OVERRIDELIST) | mkhash md5 | awk '{print $$1}'); \
|
|
[ -f "$@.$$MD5SUM" ] || { \
|
|
rm -f $@.*; \
|
|
touch $@.$$MD5SUM; \
|
|
touch $@; \
|
|
} \
|
|
)
|
|
|
|
$(TMP_DIR)/.$(SCAN_TARGET): $(TARGET_STAMP)
|
|
$(call progress,Collecting $(SCAN_NAME) info: merging...)
|
|
-cat $(FILELIST) | awk '{gsub(/\//, "_", $$0);print "$(TMP_DIR)/info/.$(SCAN_TARGET)-" $$0}' | xargs cat > $@ 2>/dev/null
|
|
$(call progress,Collecting $(SCAN_NAME) info: done)
|
|
echo
|
|
|
|
FORCE:
|
|
.PHONY: FORCE
|
|
.NOTPARALLEL:
|