diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2008-06-26 11:51:22 +0200 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2008-06-26 11:51:22 +0200 |
commit | d4172dac2c122bc2cf5f419d5687168468a9a141 (patch) | |
tree | 7ac493c04fd720da9c3a83d93f43bb4cf2272ff5 | |
parent | 0507e03c5260dc6a1e634dffd54931beaa32b870 (diff) | |
download | samba-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/Makefile | 14 | ||||
-rw-r--r-- | source4/build/make/templates.mk | 26 | ||||
-rwxr-xr-x | source4/script/installbin.sh | 40 | ||||
-rwxr-xr-x | source4/script/uninstallbin.sh | 42 |
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 |