Use make magic for installing/uninstalling binaries.
authorJelmer Vernooij <jelmer@samba.org>
Thu, 26 Jun 2008 09:51:22 +0000 (11:51 +0200)
committerJelmer Vernooij <jelmer@samba.org>
Thu, 26 Jun 2008 09:51:22 +0000 (11:51 +0200)
source/Makefile
source/build/make/templates.mk
source/script/installbin.sh [deleted file]
source/script/uninstallbin.sh [deleted file]

index 1a1a56fc63a1bdb1f8ebe99d07977a50208fdaa9..3c2efe35af0085829651bc32721aa3d9caa6ac7e 100644 (file)
@@ -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)
index eb6b584af23eb87ccbe23b246d693982c755b0f2..d4973e7dd6c968a16709122ee8f59710fe4b092e 100644 (file)
@@ -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 (executable)
index c2f3408..0000000
+++ /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 (executable)
index a8bbdea..0000000
+++ /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