+ifneq ($(IGNORE_ERRORS),)
+ package-y-filter := $(package-y)
+ package-m-filter := $(filter-out $(package-y),$(package-m))
+ package-n-filter := $(filter-out $(package-y) $(package-m),$(package-))
+ package-ignore-errors := $(filter n m y,$(IGNORE_ERRORS))
+ package-ignore-errors := $(if $(package-ignore-errors),$(package-ignore-errors),n m)
+ $(curdir)/builddirs-ignore-download := $(foreach m,$(package-ignore-errors),$(package-$(m)-filter))
+ $(curdir)/builddirs-ignore-compile := $(foreach m,$(package-ignore-errors),$(package-$(m)-filter))
+endif
+
+ifdef CONFIG_USE_MKLIBS
+ define mklibs
+ rm -rf $(TMP_DIR)/mklibs-progs $(TMP_DIR)/mklibs-out
+ # first find all programs and add them to the mklibs list
+ find $(STAGING_DIR_ROOT) -type f -perm /100 -exec \
+ file -r -N -F '' {} + | \
+ awk ' /executable.*dynamically/ { print $$1 }' > $(TMP_DIR)/mklibs-progs
+ # find all loadable objects that are not regular libraries and add them to the list as well
+ find $(STAGING_DIR_ROOT) -type f -name \*.so\* -exec \
+ file -r -N -F '' {} + | \
+ awk ' /shared object/ { print $$1 }' > $(TMP_DIR)/mklibs-libs
+ mkdir -p $(TMP_DIR)/mklibs-out
+ $(STAGING_DIR_HOST)/bin/mklibs -D \
+ -d $(TMP_DIR)/mklibs-out \
+ --sysroot $(STAGING_DIR_ROOT) \
+ `cat $(TMP_DIR)/mklibs-libs | sed 's:/*[^/]\+/*$$::' | uniq | sed 's:^$(STAGING_DIR_ROOT):-L :'` \
+ --ldlib $(patsubst $(STAGING_DIR_ROOT)/%,/%,$(firstword $(wildcard \
+ $(foreach name,ld-uClibc.so.* ld-linux.so.* ld-*.so, \
+ $(STAGING_DIR_ROOT)/lib/$(name) \
+ )))) \
+ --target $(REAL_GNU_TARGET_NAME) \
+ `cat $(TMP_DIR)/mklibs-progs $(TMP_DIR)/mklibs-libs` 2>&1
+ $(RSTRIP) $(TMP_DIR)/mklibs-out
+ for lib in `ls $(TMP_DIR)/mklibs-out/*.so.* 2>/dev/null`; do \
+ LIB="$${lib##*/}"; \
+ DEST="`ls "$(TARGET_DIR)/lib/$$LIB" "$(TARGET_DIR)/usr/lib/$$LIB" 2>/dev/null`"; \
+ [ -n "$$DEST" ] || continue; \
+ echo "Copying stripped library $$lib to $$DEST"; \
+ cp "$$lib" "$$DEST" || exit 1; \
+ done
+ endef
+endif
+
+# where to build (and put) .ipk packages
+OPKG:= \
+ IPKG_TMP=$(TMP_DIR)/ipkg \
+ IPKG_INSTROOT=$(TARGET_DIR) \
+ IPKG_CONF_DIR=$(STAGING_DIR)/etc \
+ IPKG_OFFLINE_ROOT=$(TARGET_DIR) \
+ $(XARGS) $(STAGING_DIR_HOST)/bin/opkg \
+ --offline-root $(TARGET_DIR) \
+ --force-depends \
+ --force-overwrite \
+ --force-postinstall \
+ --force-maintainer \
+ --add-dest root:/ \
+ --add-arch all:100 \
+ --add-arch $(if $(ARCH_PACKAGES),$(ARCH_PACKAGES),$(BOARD)):200
+
+PACKAGE_INSTALL_FILES:= \
+ $(foreach pkg,$(sort $(package-y)), \
+ $(foreach variant, \
+ $(if $(strip $(package/$(pkg)/variants)), \
+ $(package/$(pkg)/variants), \
+ $(if $(package/$(pkg)/default-variant), \
+ $(package/$(pkg)/default-variant), \
+ default \
+ ) \
+ ), \
+ $(PKG_INFO_DIR)/$(lastword $(subst /,$(space),$(pkg))).$(variant).install \
+ ) \
+ )