linux-trace-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: linux-trace-devel@vger.kernel.org
Subject: [PATCH 10/12] trace-cmd: Add make uninstall
Date: Tue, 15 Dec 2020 23:42:00 -0500	[thread overview]
Message-ID: <20201216044214.680385146@goodmis.org> (raw)
In-Reply-To: 20201216044150.375001748@goodmis.org

From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>

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@goodmis.org>
---
 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



  parent reply	other threads:[~2020-12-16  4:43 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-16  4:41 [PATCH 00/12] trace-cmd: Updates to the Makefile Steven Rostedt
2020-12-16  4:41 ` [PATCH 01/12] trace-cmd: Move do_make_pkgconfig_file to utils.mk Steven Rostedt
2020-12-16  4:41 ` [PATCH 02/12] trace-cmd: Have etcdir always be at the root directory Steven Rostedt
2020-12-16  4:41 ` [PATCH 03/12] trace-cmd: Remove unused variable LD_SO_CONF_DIR Steven Rostedt
2020-12-16  4:41 ` [PATCH 04/12] trace-cmd: Use the LIBTRACE{EVENT,FS}_LIBS for building libtracecmd.so Steven Rostedt
2020-12-16  4:41 ` [PATCH 05/12] libtracecmd: Update ld.so.conf.d/trace.conf if needed Steven Rostedt
2020-12-16  4:41 ` [PATCH 06/12] libtracecmd: Make installing show a nice INSTALL output Steven Rostedt
2020-12-16  4:41 ` [PATCH 07/12] libtracecmd: Build libtracecmd.pc when building the library Steven Rostedt
2020-12-16  4:41 ` [PATCH 08/12] libtracecmd: Show building of libtracecmd.pc Steven Rostedt
2020-12-16  4:41 ` [PATCH 09/12] libtracecmd: Install libtracecmd.pc when installing libs Steven Rostedt
2020-12-16  4:42 ` Steven Rostedt [this message]
2020-12-16  4:42 ` [PATCH 11/12] trace-cmd: Update libtracecmd.pc if prefix is different Steven Rostedt
2020-12-16  4:42 ` [PATCH 12/12] trace-cmd: Keep build_install files around Steven Rostedt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201216044214.680385146@goodmis.org \
    --to=rostedt@goodmis.org \
    --cc=linux-trace-devel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).