4 # stage-install.sh - wrapper around install
7 # stage-install.sh [variable="value"] "args" "dest"
10 # This script is a wrapper around the normal install(1).
11 # Its role is to add '.dirdep' files to the destination.
12 # The variables we might use are:
15 # Path to actual install(1), default is
19 # Path to the dir where '.dirdep' was generated,
23 # Path to actual '.dirdep' file, default is
26 # The "args" and "dest" are passed as is to install(1), and if a
27 # '.dirdep' file exists it will be linked or copied to each
28 # "file".dirdep placed in "dest" or "dest".dirdep if it happed
29 # to be a file rather than a directory.
36 # $Id: stage-install.sh,v 1.5 2013/04/19 16:32:24 sjg Exp $
38 # @(#) Copyright (c) 2013, Simon J. Gerraty
40 # This file is provided in the hope that it will
41 # be of use. There is absolutely NO WARRANTY.
42 # Permission to copy, redistribute or otherwise
43 # use this file is hereby granted provided that
44 # the above copyright notice and this notice are
47 # Please send copies of changes and bug-fixes to:
51 INSTALL=${REAL_INSTALL:-install}
57 *=*) eval "$1"; shift;;
62 # if .dirdep doesn't exist, just run install and be done
63 _DIRDEP=${_DIRDEP:-$OBJDIR/.dirdep}
64 [ -s $_DIRDEP ] && EXEC= || EXEC=exec
65 $EXEC $INSTALL "$@" || exit 1
70 ln $1 $2 2> /dev/null || cp -p $1 $2
75 if [ -s $t.dirdep ]; then
76 cmp -s $_DIRDEP $t.dirdep && return
77 echo "ERROR: $t installed by `cat $t.dirdep` not `cat $_DIRDEP`" >&2
80 LnCp $_DIRDEP $t.dirdep || exit 1
90 # a file, there can be only one .dirdep needed
92 elif [ -d $dest ]; then
95 test -f $f || continue
96 StageDirdep $dest/${f##*/}