build: rework opkg command invocation
authorFelix Fietkau <nbd@nbd.name>
Fri, 22 Jul 2016 10:10:17 +0000 (12:10 +0200)
committerFelix Fietkau <nbd@nbd.name>
Fri, 29 Jul 2016 08:18:26 +0000 (10:18 +0200)
Drop included $(XARGS), add support for passing target dir via parameter

Signed-off-by: Felix Fietkau <nbd@nbd.name>
include/rootfs.mk
package/Makefile

index 4b4482c2131bd3e6bc503aa50bee25bd6a69c635..90ee3126195d6c43a518c95a55036229d46886a3 100644 (file)
@@ -34,11 +34,11 @@ ifdef CONFIG_USE_MKLIBS
 endif
 
 # where to build (and put) .ipk packages
-OPKG:= \
+opkg = \
   IPKG_NO_SCRIPT=1 \
-  IPKG_INSTROOT=$(TARGET_DIR) \
-  $(XARGS) $(STAGING_DIR_HOST)/bin/opkg \
-       --offline-root $(TARGET_DIR) \
+  IPKG_INSTROOT=$(1) \
+  $(STAGING_DIR_HOST)/bin/opkg \
+       --offline-root $(1) \
        --force-depends \
        --force-overwrite \
        --force-postinstall \
index 857c2ebe38b155811e284be25312a95ab8e1a709..87dfe68e06330e5a37daf32315468632b7244cac 100644 (file)
@@ -48,11 +48,16 @@ $(curdir)/install: $(TMP_DIR)/.build $(curdir)/system/opkg/host/install
        - find $(STAGING_DIR_ROOT) -type d | $(XARGS) chmod 0755
        rm -rf $(TARGET_DIR)
        [ -d $(TARGET_DIR)/tmp ] || mkdir -p $(TARGET_DIR)/tmp
-       @echo $(wildcard $(foreach dir,$(PACKAGE_SUBDIRS),$(foreach pkg,$(shell cat $(PACKAGE_INSTALL_FILES) 2>/dev/null),$(dir)/$(pkg)_*.ipk))) | $(OPKG) install
+       $(call opkg,$(TARGET_DIR)) install \
+               $(wildcard \
+                 $(foreach dir,$(PACKAGE_SUBDIRS), \
+                   $(foreach pkg, \
+                     $(shell cat $(PACKAGE_INSTALL_FILES) 2>/dev/null), \
+                     $(dir)/$(pkg)_*.ipk)))
        @for file in $(PACKAGE_INSTALL_FILES); do \
                [ -s $$file.flags ] || continue; \
                for flag in `cat $$file.flags`; do \
-                       $(OPKG) flag $$flag < $$file; \
+                       $(call opkg,$(TARGET_DIR)) flag $$flag `cat $$file`; \
                done; \
        done || true
        @-$(MAKE) package/preconfig