Uninstall is a common make target that users may expect to be present, e.g. it is provided automatically by automake. The default Git install performs a multi-rooted install in $HOME, which makes manual removal somewhat cumbersome. The uninstall target was not present in the toplevel makefile, only a few other makefiles had partial uninstall targets. Signed-off-by: Jan Nieuwenhuizen <janneke@xxxxxxx> --- Makefile | 18 +++++++++++++++++- perl/Makefile | 2 +- templates/Makefile | 5 +++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 4a1e5bc..b9ef172 100644 --- a/Makefile +++ b/Makefile @@ -1842,7 +1842,23 @@ quick-install-man: quick-install-html: $(MAKE) -C Documentation quick-install-html +bindir_PROGRAMS = git$X git-upload-pack$X git-receive-pack$X git-upload-archive$X git-shell$X git-cvsserver +uninstall: +ifndef NO_TCLTK + $(MAKE) -C gitk-git uninstall + $(MAKE) -C git-gui gitexecdir='$(gitexec_instdir_SQ)' uninstall +endif +ifndef NO_PERL + $(MAKE) -C perl prefix='$(prefix_SQ)' DESTDIR='$(DESTDIR_SQ)' uninstall +endif + $(MAKE) -C templates DESTDIR='$(DESTDIR_SQ)' uninstall + $(RM) $(ALL_PROGRAMS:%='$(DESTDIR_SQ)$(gitexec_instdir_SQ)'/%) + $(RM) $(BUILT_INS:%='$(DESTDIR_SQ)$(gitexec_instdir_SQ)'/%) + $(RM) $(OTHER_PROGRAMS:%='$(DESTDIR_SQ)$(gitexec_instdir_SQ)'/%) + -rmdir -p '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' + $(RM) $(bindir_PROGRAMS:%='$(DESTDIR_SQ)$(bindir_SQ)'/%) + -rmdir -p '$(DESTDIR_SQ)$(bindir_SQ)' ### Maintainer's dist rules @@ -1921,7 +1937,7 @@ ifndef NO_TCLTK endif $(RM) GIT-VERSION-FILE GIT-CFLAGS GIT-GUI-VARS GIT-BUILD-OPTIONS -.PHONY: all install clean strip +.PHONY: all install uninstall clean strip .PHONY: shell_compatibility_test please_set_SHELL_PATH_to_a_more_modern_shell .PHONY: .FORCE-GIT-VERSION-FILE TAGS tags cscope .FORCE-GIT-CFLAGS .PHONY: .FORCE-GIT-BUILD-OPTIONS diff --git a/perl/Makefile b/perl/Makefile index 4ab21d6..25fc304 100644 --- a/perl/Makefile +++ b/perl/Makefile @@ -10,7 +10,7 @@ ifndef V QUIET = @ endif -all install instlibdir: $(makfile) +all install instlibdir uninstall: $(makfile) $(QUIET)$(MAKE) -f $(makfile) $@ clean: diff --git a/templates/Makefile b/templates/Makefile index 408f013..f4048d9 100644 --- a/templates/Makefile +++ b/templates/Makefile @@ -51,3 +51,8 @@ install: all $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(template_instdir_SQ)' (cd blt && $(TAR) cf - .) | \ (cd '$(DESTDIR_SQ)$(template_instdir_SQ)' && umask 022 && $(TAR) xof -) + +uninstall: + -(cd blt && find . -type f) | (cd '$(DESTDIR_SQ)$(template_instdir_SQ)' && xargs $(RM)) + -(cd blt && find . -mindepth 1 -type d) | (cd '$(DESTDIR_SQ)$(template_instdir_SQ)' && xargs rmdir) + -rmdir -p '$(DESTDIR_SQ)$(template_instdir_SQ)' -- 1.6.5.2.182.g1a756 -- Jan Nieuwenhuizen <janneke@xxxxxxx> | GNU LilyPond - The music typesetter Avatar®: http://AvatarAcademy.nl | http://lilypond.org -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html