image: fix CONFIG_CLEAN_IPKG with CONFIG_TARGET_PER_DEVICE_ROOTFS
[openwrt/openwrt.git] / include / rootfs.mk
index 5c9276a..6a66100 100644 (file)
@@ -25,7 +25,7 @@ ifdef CONFIG_USE_MKLIBS
        $(RSTRIP) $(TMP_DIR)/mklibs-out
        for lib in `ls $(TMP_DIR)/mklibs-out/*.so.* 2>/dev/null`; do \
                LIB="$${lib##*/}"; \
        $(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`"; \
+               DEST="`ls "$(1)/lib/$$LIB" "$(1)/usr/lib/$$LIB" 2>/dev/null`"; \
                [ -n "$$DEST" ] || continue; \
                echo "Copying stripped library $$lib to $$DEST"; \
                cp "$$lib" "$$DEST" || exit 1; \
                [ -n "$$DEST" ] || continue; \
                echo "Copying stripped library $$lib to $$DEST"; \
                cp "$$lib" "$$DEST" || exit 1; \
@@ -34,14 +34,12 @@ ifdef CONFIG_USE_MKLIBS
 endif
 
 # where to build (and put) .ipk packages
 endif
 
 # where to build (and put) .ipk packages
-OPKG:= \
+opkg = \
   IPKG_NO_SCRIPT=1 \
   IPKG_NO_SCRIPT=1 \
-  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) \
+  IPKG_INSTROOT=$(1) \
+  TMPDIR=$(1)/tmp \
+  $(STAGING_DIR_HOST)/bin/opkg \
+       --offline-root $(1) \
        --force-depends \
        --force-overwrite \
        --force-postinstall \
        --force-depends \
        --force-overwrite \
        --force-postinstall \
@@ -50,29 +48,35 @@ OPKG:= \
        --add-arch all:100 \
        --add-arch $(if $(ARCH_PACKAGES),$(ARCH_PACKAGES),$(BOARD)):200
 
        --add-arch all:100 \
        --add-arch $(if $(ARCH_PACKAGES),$(ARCH_PACKAGES),$(BOARD)):200
 
+opkg_package_files = $(wildcard \
+       $(foreach dir,$(PACKAGE_SUBDIRS), \
+         $(foreach pkg,$(1), $(dir)/$(pkg)_*.ipk)))
+
+TARGET_DIR_ORIG := $(TARGET_ROOTFS_DIR)/root.orig-$(BOARD)
 
 define prepare_rootfs
        @if [ -d $(TOPDIR)/files ]; then \
 
 define prepare_rootfs
        @if [ -d $(TOPDIR)/files ]; then \
-               $(call file_copy,$(TOPDIR)/files/.,$(TARGET_DIR)); \
+               $(call file_copy,$(TOPDIR)/files/.,$(1)); \
        fi
        fi
-       @mkdir -p $(TARGET_DIR)/etc/rc.d
+       @mkdir -p $(1)/etc/rc.d
        @( \
        @( \
-               cd $(TARGET_DIR); \
+               cd $(1); \
                for script in ./usr/lib/opkg/info/*.postinst; do \
                for script in ./usr/lib/opkg/info/*.postinst; do \
-                       IPKG_INSTROOT=$(TARGET_DIR) $$(which bash) $$script; \
+                       IPKG_INSTROOT=$(1) $$(which bash) $$script; \
                done; \
                for script in ./etc/init.d/*; do \
                        grep '#!/bin/sh /etc/rc.common' $$script >/dev/null || continue; \
                done; \
                for script in ./etc/init.d/*; do \
                        grep '#!/bin/sh /etc/rc.common' $$script >/dev/null || continue; \
-                       IPKG_INSTROOT=$(TARGET_DIR) $$(which bash) ./etc/rc.common $$script enable; \
+                       IPKG_INSTROOT=$(1) $$(which bash) ./etc/rc.common $$script enable; \
                done || true \
        )
                done || true \
        )
-       $(if $(SOURCE_DATE_EPOCH),sed -i "s/Installed-Time: .*/Installed-Time: $(SOURCE_DATE_EPOCH)/" $(TARGET_DIR)/usr/lib/opkg/status)
-       @-find $(TARGET_DIR) -name CVS   | $(XARGS) rm -rf
-       @-find $(TARGET_DIR) -name .svn  | $(XARGS) rm -rf
-       @-find $(TARGET_DIR) -name .git  | $(XARGS) rm -rf
-       @-find $(TARGET_DIR) -name '.#*' | $(XARGS) rm -f
-       rm -f $(TARGET_DIR)/usr/lib/opkg/info/*.postinst*
-       rm -f $(TARGET_DIR)/usr/lib/opkg/info/*.prerm*
-       $(if $(CONFIG_CLEAN_IPKG),rm -rf $(TARGET_DIR)/usr/lib/opkg)
-       $(mklibs)
+       $(if $(SOURCE_DATE_EPOCH),sed -i "s/Installed-Time: .*/Installed-Time: $(SOURCE_DATE_EPOCH)/" $(1)/usr/lib/opkg/status)
+       @-find $(1) -name CVS   | $(XARGS) rm -rf
+       @-find $(1) -name .svn  | $(XARGS) rm -rf
+       @-find $(1) -name .git  | $(XARGS) rm -rf
+       @-find $(1) -name '.#*' | $(XARGS) rm -f
+       rm -f $(1)/usr/lib/opkg/lists/*
+       rm -f $(1)/usr/lib/opkg/info/*.postinst*
+       rm -f $(1)/usr/lib/opkg/info/*.prerm*
+       $(if $(CONFIG_CLEAN_IPKG),rm -rf $(1)/usr/lib/opkg)
+       $(call mklibs,$(1))
 endef
 endef