build: Support uninstall.

* uninstall.sh: New file.
* GNUmakefile (uninstall): Use it in new target.
This commit is contained in:
Jan Nieuwenhuizen 2018-07-22 17:00:22 +02:00
parent 06e0dfe9ad
commit 5915f182ca
No known key found for this signature in database
GPG key ID: F3C1A0D9C1D65273
3 changed files with 60 additions and 2 deletions

View file

@ -30,7 +30,8 @@ endif
endif endif
PHONY_TARGETS:= all all-go build check clean clean-go default dist doc help install\ 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) .PHONY: $(PHONY_TARGETS)
@ -73,6 +74,9 @@ check:
install: ${top_builddest}src/mes install: ${top_builddest}src/mes
./install.sh ./install.sh
uninstall:
./uninstall.sh
$(config.make): configure $(config.make): configure
seed: all-go mes-gcc mes-tcc seed: all-go mes-gcc mes-tcc
@ -213,6 +217,7 @@ Targets:
install install in $(prefix) install install in $(prefix)
install-info install info docs in $(prefix)/share/info install-info install info docs in $(prefix)/share/info
seed update mes-seed in $(MES_SEED) seed update mes-seed in $(MES_SEED)
uninstall uninstall from $(prefix)
endef endef
export HELP_TOP export HELP_TOP
help: help:

View file

@ -17,7 +17,7 @@
# along with Mes. If not, see <http://www.gnu.org/licenses/>. # 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\ 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) .PHONY: $(PHONY_TARGETS)
default: all default: all

53
uninstall.sh Executable file
View file

@ -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