diff options
Diffstat (limited to 'Config')
-rw-r--r-- | Config/funcinst.mk | 47 | ||||
-rwxr-xr-x | Config/installfns.sh | 48 | ||||
-rwxr-xr-x | Config/uninstallfns.sh | 31 |
3 files changed, 126 insertions, 0 deletions
diff --git a/Config/funcinst.mk b/Config/funcinst.mk new file mode 100644 index 000000000..e473eb351 --- /dev/null +++ b/Config/funcinst.mk @@ -0,0 +1,47 @@ +# +# Makefile definitions for installing shell functions +# +# Copyright (c) 1999 Peter Stephenson +# All rights reserved. +# +# Permission is hereby granted, without written agreement and without +# license or royalty fees, to use, copy, modify, and distribute this +# software and to distribute modified versions of this software for any +# purpose, provided that the above copyright notice and the following +# two paragraphs appear in all copies of this software. +# +# In no event shall Peter Stephenson or the Zsh Development Group be liable +# to any party for direct, indirect, special, incidental, or consequential +# damages arising out of the use of this software and its documentation, +# even if Peter Stephenson and the Zsh Development Group have been advised of +# the possibility of such damage. +# +# Peter Stephenson and the Zsh Development Group specifically disclaim any +# warranties, including, but not limited to, the implied warranties of +# merchantability and fitness for a particular purpose. The software +# provided hereunder is on an "as is" basis, and Peter Stephenson and the +# Zsh Development Group have no obligation to provide maintenance, +# support, updates, enhancements, or modifications. +# + +# install functions, including those in subdirectories, creating +# install directory if necessary + +install.fns: + if test x$(fndir) != x && test x$(fndir) != xno; then \ + sdir_top="$(sdir_top)" fndir="$(fndir)" sdir="$(sdir)" \ + FUNCTIONS_INSTALL="$(FUNCTIONS_INSTALL)" \ + FUNCTIONS_SUBDIRS="$(FUNCTIONS_SUBDIRS)" \ + INSTALL_DATA="$(INSTALL_DATA)" \ + $(SHELL) $(sdir_top)/Config/installfns.sh || exit 1; \ + fi; \ + exit 0 + +uninstall.fns: + if test x$(fndir) != x && test x$(fndir) != xno; then \ + fndir="$(fndir)" sdir="$(sdir)" \ + FUNCTIONS_INSTALL="$(FUNCTIONS_INSTALL)" \ + FUNCTIONS_SUBDIRS="$(FUNCTIONS_SUBDIRS)" \ + $(SHELL) $(sdir_top)/Config/uninstallfns.sh || exit 1; \ + fi; \ + exit 0 diff --git a/Config/installfns.sh b/Config/installfns.sh new file mode 100755 index 000000000..de7a52bce --- /dev/null +++ b/Config/installfns.sh @@ -0,0 +1,48 @@ +#!/bin/sh + +if test -d $fndir.old; then + add_old=1 +fi + +$sdir_top/mkinstalldirs $fndir || exit 1; + +# If the source directory is somewhere else, we need to force +# the shell to expand it in that directory, then strip it off. +install= +for file in $FUNCTIONS_INSTALL; do + if test -f "$sdir/$file"; then + install="$install $file" + else + install="$install `echo $sdir/$file | sed -e \"s%$sdir/%%g\"`" + fi +done + +for file in $install; do + if test -f $sdir/$file; then + if test x$FUNCTIONS_SUBDIRS != x -a x$FUNCTIONS_SUBDIRS != xno; then + subfile="$file" + subdir="`echo $file | sed -e 's%/[^/]*$%%'`" + olddir="$fndir.old/$subdir" + instdir="$fndir/$subdir" + else + subfile="`echo $file | sed -e 's%^.*/%%'`" + olddir="$fndir.old" + instdir="$fndir" + fi + if test -f $fndir/$subfile; then + if cmp $fndir/$subfile $sdir/$file >/dev/null; then :; else + $sdir_top/mkinstalldirs $olddir + mv $fndir/$subfile $olddir + : ${add_old:=1} + fi + fi + $sdir_top/mkinstalldirs $instdir || exit 1 + $INSTALL_DATA $sdir/$file $instdir || exit 1 + fi +done + +if test x$add_old != x1; then + rm -rf $fndir.old +fi + +exit 0 diff --git a/Config/uninstallfns.sh b/Config/uninstallfns.sh new file mode 100755 index 000000000..ae1b4fef5 --- /dev/null +++ b/Config/uninstallfns.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +# If the source directory is somewhere else, we need to force +# the shell to expand it in that directory, then strip it off. +install= +for file in $FUNCTIONS_INSTALL; do + if test -f "$sdir/$file"; then + install="$install $file" + else + install="$install `echo $sdir/$file | sed -e \"s%$sdir/%%g\"`" + fi +done + +for file in $install; do + if test -f $sdir/$file; then + if test x$FUNCTIONS_SUBDIRS != x -a x$FUNCTIONS_SUBDIRS != xno; then + rm -f $fndir/$file; + if test -f $fndir.old/$file; then + mv $fndir.old/$file $fndir/$file + fi + else + bfile="`echo $file | sed -e 's%^.*/%%'`" + rm -f "$fndir/$bfile"; \ + if test -f $fndir.old/$bfile; then + mv $fndir.old/$bfile $fndir/$bfile + fi + fi + fi +done + +exit 0 |