From 5915f182ca62acfc1fd367b3322639ef06069a9b Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sun, 22 Jul 2018 17:00:22 +0200 Subject: [PATCH] build: Support uninstall. * uninstall.sh: New file. * GNUmakefile (uninstall): Use it in new target. --- GNUmakefile | 7 +++++- build-aux/GNUmakefile.in | 2 +- uninstall.sh | 53 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 2 deletions(-) create mode 100755 uninstall.sh diff --git a/GNUmakefile b/GNUmakefile index caf58894..79c29e4b 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -30,7 +30,8 @@ endif endif PHONY_TARGETS:= all all-go build check clean clean-go default dist doc help install\ -install-info man gcc mes ${top_builddest}src/mes mes-gcc mes-tcc generate-ChangeLog +install-info man gcc mes ${top_builddest}src/mes mes-gcc mes-tcc generate-ChangeLog\ +uninstall .PHONY: $(PHONY_TARGETS) @@ -73,6 +74,9 @@ check: install: ${top_builddest}src/mes ./install.sh +uninstall: + ./uninstall.sh + $(config.make): configure seed: all-go mes-gcc mes-tcc @@ -213,6 +217,7 @@ Targets: install install in $(prefix) install-info install info docs in $(prefix)/share/info seed update mes-seed in $(MES_SEED) + uninstall uninstall from $(prefix) endef export HELP_TOP help: diff --git a/build-aux/GNUmakefile.in b/build-aux/GNUmakefile.in index 4916b99c..4d3ada18 100644 --- a/build-aux/GNUmakefile.in +++ b/build-aux/GNUmakefile.in @@ -17,7 +17,7 @@ # along with Mes. If not, see . PHONY_TARGETS:= all all-go build check clean clean-go default dist doc help install\ -install-info man gcc mes src/mes mes-gcc mes-tcc +install-info man gcc mes src/mes mes-gcc mes-tcc uninstall .PHONY: $(PHONY_TARGETS) default: all diff --git a/uninstall.sh b/uninstall.sh new file mode 100755 index 00000000..ac0a8c6f --- /dev/null +++ b/uninstall.sh @@ -0,0 +1,53 @@ +#! /bin/sh + +#set -e + +. build-aux/trace.sh + +GUILE_EFFECTIVE_VERSION=${GUILE_EFFECTIVE_VERSION-$(guile -c '(display (effective-version))')} + +prefix=${prefix-/usr/local} +datadir=${datadir-$prefix/share} +docdir=${docdir-$datadir/doc/mes-$VERSION} +infodir=${infodir-$datadir/info} +mandir=${mandir-$datadir/man} +moduledir=${moduledir-$datadir/mes/module} +guile_site_dir=${guile_site_dir-$prefix/share/guile/site/$GUILE_EFFECTIVE_VERSION} +guile_site_ccache_dir=${guile_site_ccache_dir-$prefix/lib/guile/$GUILE_EFFECTIVE_VERSION/site-ccache} + +mkdir -p $DESTDIR$prefix/bin +cp ${top_builddest}src/mes $DESTDIR$prefix/bin/mes + +mkdir -p $DESTDIR$prefix/lib +mkdir -p $DESTDIR$MES_PREFIX/lib +cp ${top_builddest}scripts/mescc $DESTDIR$prefix/bin/mescc + +rm $DESTDIR$prefix/bin/mes +rm $DESTDIR$prefix/bin/mescc +rmdir $DESTDIR$prefix/bin || : + +for i in\ + AUTHORS\ + BOOTSTRAP\ + COPYING\ + ChangeLog\ + HACKING\ + INSTALL\ + NEWS\ + README\ + ;do + rm $DESTDIR$docdir/$i || :; +done + +rmdir $DESTDIR$docdir || : + +rm -r $DESTDIR$MES_PREFIX +rm -r $DESTDIR$guile_site_ccache_dir/mes +rm -r $DESTDIR$guile_site_ccache_dir/mescc + +rm -r $DESTDIR$guile_site_dir/mes +rm -r $DESTDIR$guile_site_dir/mescc + +rm $DESTDIR$prefix/share/info/mes.info* +rm $DESTDIR$mandir/man1/mes.1 +rm $DESTDIR$mandir/man1/mescc.1