diff options
author | Felix Fietkau <nbd@openwrt.org> | 2007-12-25 01:39:15 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2007-12-25 01:39:15 +0000 |
commit | 957103c3377fe2736da11dafdddd287579d76f9a (patch) | |
tree | d08e934bf4cf808524ba18d0cc626c07b1faf792 /include | |
parent | a09f80dfdaedb91db6919df2de02b9996835dffd (diff) | |
download | upstream-957103c3377fe2736da11dafdddd287579d76f9a.tar.gz upstream-957103c3377fe2736da11dafdddd287579d76f9a.tar.bz2 upstream-957103c3377fe2736da11dafdddd287579d76f9a.zip |
add automatic file tracking and uninstallation for files installed in $(STAGING_DIR) and $(STAGING_DIR_HOST)
SVN-Revision: 9905
Diffstat (limited to 'include')
-rw-r--r-- | include/package.mk | 30 |
1 files changed, 25 insertions, 5 deletions
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) |