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.
37 # $Id: stage-install.sh,v 1.5 2013/04/19 16:32:24 sjg Exp $
39 # @(#) Copyright (c) 2013, Simon J. Gerraty
41 # This file is provided in the hope that it will
42 # be of use. There is absolutely NO WARRANTY.
43 # Permission to copy, redistribute or otherwise
44 # use this file is hereby granted provided that
45 # the above copyright notice and this notice are
48 # Please send copies of changes and bug-fixes to:
52 INSTALL=${REAL_INSTALL:-install}
58 *=*) eval "$1"; shift;;
63 # if .dirdep doesn't exist, just run install and be done
64 _DIRDEP=${_DIRDEP:-$OBJDIR/.dirdep}
65 [ -s $_DIRDEP ] && EXEC= || EXEC=exec
66 $EXEC $INSTALL "$@" || exit 1
71 ln $1 $2 2> /dev/null || cp -p $1 $2
76 if [ -s $t.dirdep ]; then
77 cmp -s $_DIRDEP $t.dirdep && return
78 echo "ERROR: $t installed by `cat $t.dirdep` not `cat $_DIRDEP`" >&2
81 LnCp $_DIRDEP $t.dirdep || exit 1
91 # a file, there can be only one .dirdep needed
93 elif [ -d $dest ]; then
96 test -f $f || continue
97 StageDirdep $dest/${f##*/}