{"thread":{"id":"21905","subject":"[PATCH 1/2] Add/resurrect make uninstall target","startedAt":"2009-12-08T15:23:53Z","lastAt":"2009-12-08T15:23:53Z","messageCount":1,"participants":["Jan Nieuwenhuizen"],"isPatch":true,"patchVersion":1,"patchTotal":2},"messages":[{"id":"129551","messageId":"1260285833.1856.52.camel@vuurvlieg","threadId":"21905","inReplyTo":null,"subject":"[PATCH 1/2] Add/resurrect make uninstall target","fromName":"Jan Nieuwenhuizen","fromEmail":"janneke-list@xs4all.nl","sentAt":"2009-12-08T15:23:53Z","receivedAt":"2009-12-08T15:23:53Z","isPatch":true,"sender":{"key":"janneke-list@xs4all.nl","avatar":null},"body":"\nUninstall is a common make target that users may expect to be present,\ne.g. it is provided automatically by automake.\n\nThe default Git install performs a multi-rooted install in $HOME,\nwhich makes manual removal somewhat cumbersome.\n\nThe uninstall target was not present in the toplevel makefile,\nonly a few other makefiles had partial uninstall targets.\n\nSigned-off-by: Jan Nieuwenhuizen <janneke@gnu.org>\n---\n Makefile           |   18 +++++++++++++++++-\n perl/Makefile      |    2 +-\n templates/Makefile |    5 +++++\n 3 files changed, 23 insertions(+), 2 deletions(-)\n\ndiff --git a/Makefile b/Makefile\nindex 4a1e5bc..b9ef172 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -1842,7 +1842,23 @@ quick-install-man:\n quick-install-html:\n \t$(MAKE) -C Documentation quick-install-html\n \n+bindir_PROGRAMS = git$X git-upload-pack$X git-receive-pack$X git-upload-archive$X git-shell$X git-cvsserver\n \n+uninstall:\n+ifndef NO_TCLTK\n+\t$(MAKE) -C gitk-git uninstall\n+\t$(MAKE) -C git-gui gitexecdir='$(gitexec_instdir_SQ)' uninstall\n+endif\n+ifndef NO_PERL\n+\t$(MAKE) -C perl prefix='$(prefix_SQ)' DESTDIR='$(DESTDIR_SQ)' uninstall\n+endif\n+\t$(MAKE) -C templates DESTDIR='$(DESTDIR_SQ)' uninstall\n+\t$(RM) $(ALL_PROGRAMS:%='$(DESTDIR_SQ)$(gitexec_instdir_SQ)'/%)\n+\t$(RM) $(BUILT_INS:%='$(DESTDIR_SQ)$(gitexec_instdir_SQ)'/%)\n+\t$(RM) $(OTHER_PROGRAMS:%='$(DESTDIR_SQ)$(gitexec_instdir_SQ)'/%)\n+\t-rmdir -p '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'\n+\t$(RM) $(bindir_PROGRAMS:%='$(DESTDIR_SQ)$(bindir_SQ)'/%)\n+\t-rmdir -p '$(DESTDIR_SQ)$(bindir_SQ)'\n \n ### Maintainer's dist rules\n \n@@ -1921,7 +1937,7 @@ ifndef NO_TCLTK\n endif\n \t$(RM) GIT-VERSION-FILE GIT-CFLAGS GIT-GUI-VARS GIT-BUILD-OPTIONS\n \n-.PHONY: all install clean strip\n+.PHONY: all install uninstall clean strip\n .PHONY: shell_compatibility_test please_set_SHELL_PATH_to_a_more_modern_shell\n .PHONY: .FORCE-GIT-VERSION-FILE TAGS tags cscope .FORCE-GIT-CFLAGS\n .PHONY: .FORCE-GIT-BUILD-OPTIONS\ndiff --git a/perl/Makefile b/perl/Makefile\nindex 4ab21d6..25fc304 100644\n--- a/perl/Makefile\n+++ b/perl/Makefile\n@@ -10,7 +10,7 @@ ifndef V\n \tQUIET = @\n endif\n \n-all install instlibdir: $(makfile)\n+all install instlibdir uninstall: $(makfile)\n \t$(QUIET)$(MAKE) -f $(makfile) $@\n \n clean:\ndiff --git a/templates/Makefile b/templates/Makefile\nindex 408f013..f4048d9 100644\n--- a/templates/Makefile\n+++ b/templates/Makefile\n@@ -51,3 +51,8 @@ install: all\n \t$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(template_instdir_SQ)'\n \t(cd blt && $(TAR) cf - .) | \\\n \t(cd '$(DESTDIR_SQ)$(template_instdir_SQ)' && umask 022 && $(TAR) xof -)\n+\n+uninstall:\n+\t-(cd blt && find . -type f) | (cd '$(DESTDIR_SQ)$(template_instdir_SQ)' && xargs $(RM))\n+\t-(cd blt && find . -mindepth 1 -type d) | (cd '$(DESTDIR_SQ)$(template_instdir_SQ)' && xargs rmdir)\n+\t-rmdir -p '$(DESTDIR_SQ)$(template_instdir_SQ)'\n-- \n1.6.5.2.182.g1a756\n\n\n\n-- \nJan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond - The music typesetter\nAvatar®: http://AvatarAcademy.nl    | http://lilypond.org\n"}]}