mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2024-12-14 10:54:47 +00: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:
|