From: Felix Fietkau <nbd@openwrt.org>
Date: Tue, 25 Dec 2007 01:39:15 +0000 (+0000)
Subject: add automatic file tracking and uninstallation for files installed in $(STAGING_DIR... 
X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=957103c3377fe2736da11dafdddd287579d76f9a;p=librecmc%2Flibrecmc.git

add automatic file tracking and uninstallation for files installed in $(STAGING_DIR) and $(STAGING_DIR_HOST)

SVN-Revision: 9905
---

diff --git a/include/package.mk b/include/package.mk
index 9ab3a2cd5c..c3e2b6f481 100644
--- a/include/package.mk
+++ b/include/package.mk
@@ -70,7 +70,18 @@ define Build/DefaultTargets
 	touch $$@
 
   $(STAMP_INSTALLED): $(STAMP_BUILT)
-	$(call Build/InstallDev,$(STAGING_DIR),$(STAGING_DIR_HOST))
+	$(NO_TRACE_MAKE) clean-staging
+	rm -rf $(TMP_DIR)/stage-$(PKG_NAME)
+	mkdir -p $(TMP_DIR)/stage-$(PKG_NAME) $(STAGING_DIR)/packages $(STAGING_DIR_HOST)/packages
+	$(call Build/InstallDev,$(TMP_DIR)/stage-$(PKG_NAME)/target,$(TMP_DIR)/stage-$(PKG_NAME)/host)
+	if [ -d $(TMP_DIR)/stage-$(PKG_NAME)/target ]; then \
+		(cd $(TMP_DIR)/stage-$(PKG_NAME)/target; find > $(STAGING_DIR)/packages/$(PKG_NAME).list); \
+		$(CP) $(TMP_DIR)/stage-$(PKG_NAME)/target/* $(STAGING_DIR)/; \
+	fi
+	if [ -d $(TMP_DIR)/stage-$(PKG_NAME)/host ]; then \
+		(cd $(TMP_DIR)/stage-$(PKG_NAME)/host; find > $(STAGING_DIR_HOST)/packages/$(PKG_NAME).list); \
+		$(CP) $(TMP_DIR)/stage-$(PKG_NAME)/host/* $(STAGING_DIR_HOST)/; \
+	fi
 	touch $$@
 
   ifdef Build/InstallDev
@@ -152,15 +163,24 @@ endef
 
 $(PACKAGE_DIR):
 	mkdir -p $@
-		
+	
 dumpinfo:
 download:
 prepare:
 configure:
 compile:
 install:
-clean: FORCE
+clean-staging: FORCE
+	rm -f $(STAMP_INSTALLED)
+	for dir in "$(STAGING_DIR)" "$(STAGING_DIR_HOST)"; do (\
+		cd $$dir; \
+		if [ -f packages/$(PKG_NAME).list ]; then \
+			cat packages/$(PKG_NAME).list | xargs -r rm -f 2>/dev/null; \
+		fi; \
+	) done;
+
+clean: clean-staging FORCE
 	$(call Build/UninstallDev,$(STAGING_DIR),$(STAGING_DIR_HOST))
 	$(Build/Clean)
-	@rm -f $(STAGING_DIR)/stamp/.$(PKG_NAME)-installed
-	@rm -rf $(PKG_BUILD_DIR)
+	rm -f $(STAGING_DIR)/packages/$(PKG_NAME).list $(STAGING_DIR_HOST)/packages/$(PKG_NAME).list
+	rm -rf $(PKG_BUILD_DIR)