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##*/}