summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2008-06-26 11:51:22 +0200
committerJelmer Vernooij <jelmer@samba.org>2008-06-26 11:51:22 +0200
commitd4172dac2c122bc2cf5f419d5687168468a9a141 (patch)
tree7ac493c04fd720da9c3a83d93f43bb4cf2272ff5
parent0507e03c5260dc6a1e634dffd54931beaa32b870 (diff)
downloadsamba-d4172dac2c122bc2cf5f419d5687168468a9a141.tar.gz
samba-d4172dac2c122bc2cf5f419d5687168468a9a141.tar.bz2
samba-d4172dac2c122bc2cf5f419d5687168468a9a141.zip
Use make magic for installing/uninstalling binaries.
(This used to be commit 97b724417fc8110f7c591779b0c17bd072be304f)
-rw-r--r--source4/Makefile14
-rw-r--r--source4/build/make/templates.mk26
-rwxr-xr-xsource4/script/installbin.sh40
-rwxr-xr-xsource4/script/uninstallbin.sh42
4 files changed, 21 insertions, 101 deletions
diff --git a/source4/Makefile b/source4/Makefile
index 1a1a56fc63..3c2efe35af 100644
--- a/source4/Makefile
+++ b/source4/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/source4/build/make/templates.mk b/source4/build/make/templates.mk
index eb6b584af2..d4973e7dd6 100644
--- a/source4/build/make/templates.mk
+++ b/source4/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/source4/script/installbin.sh b/source4/script/installbin.sh
deleted file mode 100755
index c2f34082dd..0000000000
--- a/source4/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/source4/script/uninstallbin.sh b/source4/script/uninstallbin.sh
deleted file mode 100755
index a8bbdea7af..0000000000
--- a/source4/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