From 97b724417fc8110f7c591779b0c17bd072be304f Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 26 Jun 2008 11:51:22 +0200 Subject: [PATCH] Use make magic for installing/uninstalling binaries. --- source/Makefile | 14 ++++++++++++ source/build/make/templates.mk | 26 ++++++--------------- source/script/installbin.sh | 40 -------------------------------- source/script/uninstallbin.sh | 42 ---------------------------------- 4 files changed, 21 insertions(+), 101 deletions(-) delete mode 100755 source/script/installbin.sh delete mode 100755 source/script/uninstallbin.sh diff --git a/source/Makefile b/source/Makefile index 1a1a56fc63a..3c2efe35af0 100644 --- a/source/Makefile +++ b/source/Makefile @@ -246,6 +246,20 @@ uninstall:: uninstallbin uninstallman uninstallmisc uninstalllib uninstallheader uninstallmisc:: #FIXME +$(DESTDIR)$(bindir)/%: bin/% installdirs + @mkdir -p $(@D) + @echo Installing $(@F) as $@ + @if test -f $@; then; rm -f $@.old; mv $@ $@.old; fi + @cp $< $@ + @chmod $(INSTALLPERMS) $@ + +$(DESTDIR)$(sbindir)/%: bin/% installdirs + @mkdir -p $(@D) + @echo Installing $(@F) as $@ + @if test -f $@; then; rm -f $@.old; mv $@ $@.old; fi + @cp $< $@ + @chmod $(INSTALLPERMS) $@ + uninstallbin:: @$(SHELL) $(srcdir)/script/uninstallbin.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(sbindir) $(DESTDIR)$(libdir) $(DESTDIR)$(localstatedir) $(DESTDIR)$(SBIN_PROGS) @$(SHELL) $(srcdir)/script/uninstallbin.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(bindir) $(DESTDIR)$(libdir) $(DESTDIR)$(localstatedir) $(DESTDIR)$(BIN_PROGS) diff --git a/source/build/make/templates.mk b/source/build/make/templates.mk index eb6b584af23..d4973e7dd6c 100644 --- a/source/build/make/templates.mk +++ b/source/build/make/templates.mk @@ -122,32 +122,20 @@ endef # abspath for older makes abspath := $(shell cd $(1); pwd) +# Install a binary +# Arguments: path to binary to install define binary_install_template -inst@allbin:: $(1) installdirs - @mkdir -p $$(DESTDIR)$$(bindir) - @$$(SHELL) $$(srcdir)/script/installbin.sh \ - $$(INSTALLPERMS) \ - $$(DESTDIR)$$(BASEDIR) \ - $$(DESTDIR)$$(bindir) \ - $$(DESTDIR)$$(libdir) \ - $$(DESTDIR)$$(localstatedir) \ - $$< - +installbin:: $$(DESTDIR)$$(bindir)/$(notdir $(1)) + uninstallbin:: + @echo "Removing $(notdir $(1))" @rm -f $$(DESTDIR)$$(bindir)/$(1) endef define sbinary_install_template -installsbin:: $(1) installdirs - @mkdir -p $$(DESTDIR)$$(sbindir) - @$$(SHELL) $$(srcdir)/script/installbin.sh \ - $$(INSTALLPERMS) \ - $$(DESTDIR)$$(BASEDIR) \ - $$(DESTDIR)$$(sbindir) \ - $$(DESTDIR)$$(libdir) \ - $$(DESTDIR)$$(localstatedir) \ - $$< +installsbin:: $$(DESTDIR)$$(sbindir)/$(notdir $(1)) installdirs uninstallsbin:: + @echo "Removing $(notdir $(1))" @rm -f $$(DESTDIR)$$(sbindir)/$(1) endef diff --git a/source/script/installbin.sh b/source/script/installbin.sh deleted file mode 100755 index c2f34082dd9..00000000000 --- a/source/script/installbin.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh - -INSTALLPERMS=$1 -BASEDIR=$2 -BINDIR=$3 -LIBDIR=$4 -VARDIR=$5 -shift -shift -shift -shift -shift - -for p in $*; do - p2=`basename $p` - echo Installing $p as $BINDIR/$p2 - if [ -f $BINDIR/$p2 ]; then - rm -f $BINDIR/$p2.old - mv $BINDIR/$p2 $BINDIR/$p2.old - fi - cp $p $BINDIR/ - chmod $INSTALLPERMS $BINDIR/$p2 - - # this is a special case, mount needs this in a specific location - if [ $p2 = smbmount ]; then - ln -sf $BINDIR/$p2 /sbin/mount.smbfs - fi -done - - -cat << EOF -====================================================================== -The binaries are installed. You may restore the old binaries (if there -were any) using the command "make revert". You may uninstall the binaries -using the command "make uninstallbin" or "make uninstall" to uninstall -binaries, man pages and shell scripts. -====================================================================== -EOF - -exit 0 diff --git a/source/script/uninstallbin.sh b/source/script/uninstallbin.sh deleted file mode 100755 index a8bbdea7afd..00000000000 --- a/source/script/uninstallbin.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh -#4 July 96 Dan.Shearer@UniSA.edu.au - -INSTALLPERMS=$1 -BASEDIR=$2 -BINDIR=$3 -LIBDIR=$4 -VARDIR=$5 -shift -shift -shift -shift -shift - -if [ ! -d $BINDIR ]; then - echo Directory $BINDIR does not exist! - echo Do a "make installbin" or "make install" first. - exit 1 -fi - -for p in $*; do - p2=`basename $p` - if [ -f $BINDIR/$p2 ]; then - echo Removing $BINDIR/$p2 - rm -f $BINDIR/$p2 - if [ -f $BINDIR/$p2 ]; then - echo Cannot remove $BINDIR/$p2 ... does $USER have privileges? - fi - fi -done - - -cat << EOF -====================================================================== -The binaries have been uninstalled. You may restore the binaries using -the command "make installbin" or "make install" to install binaries, -man pages, modules and shell scripts. You can restore a previous -version of the binaries (if there were any) using "make revert". -====================================================================== -EOF - -exit 0 -- 2.34.1