From: "Steven Rostedt (VMware)" <rostedt@xxxxxxxxxxx> Create the logic to remove the files that would normally be installed. Note, this does take the DESTDIR and prefix variables into account. Where the uninstall may only work for an install with the same variables. Signed-off-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx> --- Makefile | 30 ++++++++++++++++++++++++++++++ scripts/utils.mk | 2 ++ 2 files changed, 32 insertions(+) diff --git a/Makefile b/Makefile index c1192da4f049..ddceab3f45e7 100644 --- a/Makefile +++ b/Makefile @@ -484,6 +484,36 @@ clean: if [ -f $(kshark-dir)/build/Makefile ]; then $(MAKE) -C $(kshark-dir)/build clean; fi cd $(kshark-dir)/build; ./cmake_clean.sh +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 + +build_libs_uninstall: + $(call build_uninstall_script,install_libs,libs_uninstall) + +$(BUILD_OUTPUT)/build_libs_uninstall: build_libs_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) $< + +uninstall_libs: $(BUILD_OUTPUT)/build_libs_uninstall + @$(foreach file,$(shell cat $(BUILD_OUTPUT)/build_libs_uninstall),$(call uninstall_file,$(file))) + $(Q)$(RM) $< ##### PYTHON STUFF ##### diff --git a/scripts/utils.mk b/scripts/utils.mk index e166c6ae3f9d..c8ef44b3776a 100644 --- a/scripts/utils.mk +++ b/scripts/utils.mk @@ -30,6 +30,7 @@ ifeq ($(findstring 1,$(SILENT)$(VERBOSE)),1) print_plugin_obj_compile = print_plugin_build = print_install = + print_uninstall = print_update = else print_compile = echo ' $(GUI)COMPILE '$(GOBJ); @@ -41,6 +42,7 @@ else print_static_lib_build = echo ' $(GUI)BUILD STATIC LIB '$(GOBJ); print_install = echo ' $(GUI)INSTALL '$(GSPACE)$1' to $(DESTDIR_SQ)$2'; print_update = echo ' $(GUI)UPDATE '$(GOBJ); + print_uninstall = echo ' $(GUI)UNINSTALLING $(DESTDIR_SQ)$1'; endif do_fpic_compile = \ -- 2.29.2