@@ -264,6 +264,28 @@ install_doc:
install_doc_gui:
$(MAKE) -C $(kshark-dir)/Documentation install
+define build_uninstall_script
+ $(Q)mkdir $(BUILD_OUTPUT)/tmp_build
+ $(Q)$(MAKE) -C $(src) DESTDIR=$(BUILD_OUTPUT)/tmp_build/ O=$(BUILD_OUTPUT) $1 > /dev/null
+ $(Q)find $(BUILD_OUTPUT)/tmp_build ! -type d -printf "%P\n" > $(BUILD_OUTPUT)/build_$2
+ $(Q)$(RM) -rf $(BUILD_OUTPUT)/tmp_build
+endef
+
+build_uninstall:
+ $(call build_uninstall_script,install,uninstall)
+
+$(BUILD_OUTPUT)/build_uninstall: build_uninstall
+
+define uninstall_file
+ if [ -f $(DESTDIR)/$1 -o -h $(DESTDIR)/$1 ]; then \
+ $(call print_uninstall,$(DESTDIR)/$1)$(RM) $(DESTDIR)/$1; \
+ fi;
+endef
+
+uninstall: $(BUILD_OUTPUT)/build_uninstall
+ @$(foreach file,$(shell cat $(BUILD_OUTPUT)/build_uninstall),$(call uninstall_file,$(file)))
+ $(Q)$(RM) $<
+
PHONY += force
force:
@@ -22,6 +22,7 @@ ifeq ($(findstring 1,$(SILENT)$(VERBOSE)),1)
print_plugin_obj_compile =
print_plugin_build =
print_install =
+ print_uninstall =
print_update =
else
print_compile = echo ' COMPILE '$(GOBJ);
@@ -32,6 +33,7 @@ else
print_plugin_build = echo ' BUILD PLUGIN '$(GOBJ);
print_static_lib_build = echo ' BUILD STATIC LIB '$(GOBJ);
print_install = echo ' INSTALL '$1' to $(DESTDIR_SQ)$2';
+ print_uninstall = echo ' UNINSTALL $(DESTDIR_SQ)$1';
print_update = echo ' UPDATE '$(GOBJ);
endif