Browse Source

build: remove stale .ipk files if package dir changes

If a package nonshared status is changed, a stale .ipk file might still
be present in the old package directory. Remove the .ipk file from all
package directories when building a new one (or explicitly running
clean)

Signed-off-by: Felix Fietkau <[email protected]>
Felix Fietkau 9 years ago
parent
commit
64c386c566
3 changed files with 6 additions and 6 deletions
  1. 4 0
      include/feeds.mk
  2. 2 2
      include/package-ipkg.mk
  3. 0 4
      include/rootfs.mk

+ 4 - 0
include/feeds.mk

@@ -25,6 +25,10 @@ endif
 
 PACKAGE_DIR_ALL := $(TOPDIR)/staging_dir/packages/$(BOARD)
 
+opkg_package_files = $(wildcard \
+	$(foreach dir,$(PACKAGE_SUBDIRS), \
+	  $(foreach pkg,$(1), $(dir)/$(pkg)_*.ipk)))
+
 PKG_CONFIG_DEPENDS += \
 	CONFIG_PER_FEED_REPO \
 	CONFIG_PER_FEED_REPO_ADD_DISABLED \

+ 2 - 2
include/package-ipkg.mk

@@ -175,7 +175,7 @@ $(_endef)
     $$(IPKG_$(1)) : export DESCRIPTION=$$(Package/$(1)/description)
     $$(IPKG_$(1)) : export PATH=$$(TARGET_PATH_PKG)
     $$(IPKG_$(1)): $(STAMP_BUILT) $(INCLUDE_DIR)/package-ipkg.mk
-	@rm -rf $$(PDIR_$(1))/$(1)_* $$(IDIR_$(1))
+	@rm -rf $$(IDIR_$(1)) $$(call opkg_package_files,$(1))
 	mkdir -p $(PACKAGE_DIR) $$(IDIR_$(1))/CONTROL $(PKG_INFO_DIR)
 	$(call Package/$(1)/install,$$(IDIR_$(1)))
 	-find $$(IDIR_$(1)) -name 'CVS' -o -name '.svn' -o -name '.#*' -o -name '*~'| $(XARGS) rm -rf
@@ -230,7 +230,7 @@ $(_endef)
 	@[ -f $$(IPKG_$(1)) ]
 
     $(1)-clean:
-	rm -f $$(PDIR_$(1))/$(1)_*
+	$$(if $$(call opkg_package_files,$(1)),rm -f $$(call opkg_package_files,$(1)))
 
     clean: $(1)-clean
 

+ 0 - 4
include/rootfs.mk

@@ -45,10 +45,6 @@ opkg = \
 	--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