build: Support uninstall.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sun, 22 Jul 2018 15:00:22 +0000 (17:00 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Sun, 22 Jul 2018 15:00:22 +0000 (17:00 +0200)
* uninstall.sh: New file.
* GNUmakefile (uninstall): Use it in new target.

GNUmakefile
build-aux/GNUmakefile.in
uninstall.sh [new file with mode: 0755]

index caf588947c6ab4a24bc77040bec90a060065c164..79c29e4b4d3464a19c1a6d44b1bd7876513966a0 100644 (file)
@@ -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:
index 4916b99c588fc6e90499b4c5beda0f1fde6c36ef..4d3ada1822f2ec4503acdea23779ee2d0ee6eb16 100644 (file)
@@ -17,7 +17,7 @@
 # along with Mes.  If not, see <http://www.gnu.org/licenses/>.
 
 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 (executable)
index 0000000..ac0a8c6
--- /dev/null
@@ -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