+define AddDependency
+ $$(if $(1),$$(if $(2),$$(foreach pkg,$(1),$$(IPKG_$$(pkg))): $$(foreach pkg,$(2),$$(IPKG_$$(pkg)))))
+endef
+
+define FixupReverseDependencies
+ DEPS := $$(filter %:$(1),$$(IDEPEND))
+ DEPS := $$(patsubst %:$(1),%,$$(DEPS))
+ DEPS := $$(filter $$(DEPS),$$(IPKGS))
+ $(call AddDependency,$$(DEPS),$(1))
+endef
+
+define FixupDependencies
+ DEPS := $$(filter $(1):%,$$(IDEPEND))
+ DEPS := $$(patsubst $(1):%,%,$$(DEPS))
+ DEPS := $$(filter $$(DEPS),$$(IPKGS))
+ $(call AddDependency,$(1),$$(DEPS))
+endef
+
+ifneq ($(PKG_NAME),toolchain)
+ define CheckDependencies
+ @( \
+ rm -f $(PKG_INFO_DIR)/$(1).missing; \
+ ( \
+ export \
+ READELF=$(TARGET_CROSS)readelf \
+ OBJCOPY=$(TARGET_CROSS)objcopy \
+ XARGS="$(XARGS)"; \
+ $(SCRIPT_DIR)/gen-dependencies.sh "$$(IDIR_$(1))"; \
+ ) | while read FILE; do \
+ grep -qxF "$$$$FILE" $(PKG_INFO_DIR)/$(1).provides || \
+ echo "$$$$FILE" >> $(PKG_INFO_DIR)/$(1).missing; \
+ done; \
+ if [ -f "$(PKG_INFO_DIR)/$(1).missing" ]; then \
+ echo "Package $(1) is missing dependencies for the following libraries:" >&2; \
+ cat "$(PKG_INFO_DIR)/$(1).missing" >&2; \
+ false; \
+ fi; \
+ )
+ endef
+endif
+
+_addsep=$(word 1,$(1))$(foreach w,$(wordlist 2,$(words $(1)),$(1)),$(strip $(2) $(w)))
+_cleansep=$(subst $(space)$(2)$(space),$(2)$(space),$(1))
+mergelist=$(call _cleansep,$(call _addsep,$(1),$(comma)),$(comma))
+addfield=$(if $(strip $(2)),$(1): $(2))
+_define=define
+_endef=endef
+