summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>2012-01-21 01:01:12 +0100
committerPeter Korsgaard <jacmet@sunsite.dk>2012-02-02 22:52:35 +0100
commit5fe4b2c3998bdeae8a1546ce57e00aad5cdeb17a (patch)
tree4d760000940d8a763c2fee573ef271dcb928b88c
parenta23c0e59684628f69615e25ad1b9dbca972a3815 (diff)
downloadbuildroot-novena-5fe4b2c3998bdeae8a1546ce57e00aad5cdeb17a.tar.gz
buildroot-novena-5fe4b2c3998bdeae8a1546ce57e00aad5cdeb17a.zip
pkg-infra: improve reliability of foo-install
Running foo-uninstall has a high likelyhood of failing, because we remove a lot of directories from the target. To improve the reliability, remove the stamp files before calling the uninstall commands, and add the -k option to the sub-make. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
-rw-r--r--package/Makefile.autotools.in5
-rw-r--r--package/Makefile.package.in5
2 files changed, 7 insertions, 3 deletions
diff --git a/package/Makefile.autotools.in b/package/Makefile.autotools.in
index 64e0730b8..fd118dc47 100644
--- a/package/Makefile.autotools.in
+++ b/package/Makefile.autotools.in
@@ -285,10 +285,13 @@ endif
#
# Uninstall from target step. Only define it if not already defined
# by the package .mk file.
+# Autotools Makefiles do uninstall with ( cd ...; rm -f ... )
+# Since we remove a lot of directories in target-finalize, this is likely
+# to fail. Therefore add -k flag.
#
ifndef $(2)_UNINSTALL_TARGET_CMDS
define $(2)_UNINSTALL_TARGET_CMDS
- $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_UNINSTALL_TARGET_OPT) -C $$($$(PKG)_SRCDIR)
+ $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) -k $$($$(PKG)_UNINSTALL_TARGET_OPT) -C $$($$(PKG)_SRCDIR)
endef
endif
diff --git a/package/Makefile.package.in b/package/Makefile.package.in
index 31f5ab646..1ace683c2 100644
--- a/package/Makefile.package.in
+++ b/package/Makefile.package.in
@@ -442,12 +442,13 @@ $(BUILD_DIR)/%/.stamp_cleaned:
rm -f $(@D)/.stamp_built
# Uninstall package from target and staging
+# Uninstall commands tend to fail, so remove the stamp files first
$(BUILD_DIR)/%/.stamp_uninstalled:
@$(call MESSAGE,"Uninstalling")
- $($(PKG)_UNINSTALL_STAGING_CMDS)
rm -f $($(PKG)_TARGET_INSTALL_STAGING)
- $($(PKG)_UNINSTALL_TARGET_CMDS)
rm -f $($(PKG)_TARGET_INSTALL_TARGET)
+ $($(PKG)_UNINSTALL_STAGING_CMDS)
+ $($(PKG)_UNINSTALL_TARGET_CMDS)
# Remove package sources
$(BUILD_DIR)/%/.stamp_dircleaned: