URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [rtos/] [rtems/] [tools/] [build/] [install-if-change.in] - Rev 173
Compare with Previous | Blame | View Log
#!@KSH@ -p## Either bash or ksh will be ok for this; requires (( )) arithmetic# (-p above just says to not parse $ENV file; makes it faster for# those of us who set $ENV)## install files if they have changed by running 'cmp', then 'install'# as necessary.## Optionally, can append a suffix before last existing suffix (if any)## NOTE# We avoid using typical install(1M) programs since they have# large variability across systems and we also need to support ou# -V option.# So we just copy and chmod by hand.## $Id: install-if-change.in,v 1.2 2001-09-27 12:02:53 chris Exp $#progname=`basename $0`#progname=${0##*/} # fast basename hack for ksh, bashUSAGE=\"usage: $progname [ -vmV ] file [ file ... ] dest-directory-or-file-v -- verbose-V suffix -- suffix to append to targets (before any . suffix)eg: -V _g would change 'foo' to 'foo_g' and'libfoo.a' to 'libfoo_g.a'-m mode -- mode for new file(s)"fatal() {if [ "$1" ]thenecho $* >&2fiecho "$USAGE" 1>&2exit 1}## process the options#verbose=""suffix=""mode=""while getopts vm:V: OPTdocase "$OPT" inv)verbose="yes";;V)eval suffix=$OPTARG;;m)mode="$OPTARG";;*)fatalesacdoneshiftcount=`expr $OPTIND - 1`shift $shiftcountargs=$*## Separate source file(s) from dest directory or file#files=""dest=""for d in $argsdofiles="$files $dest"dest=$ddoneif [ ! "$files" ] || [ ! "$dest" ]thenfatal "missing files or invalid destination"fi## Process the arguments#targets=""for f in $filesdo# leaf=`basename $f`leaf=${f##*/} # fast basename hack for ksh, bashtarget=$destif [ -d $dest ]then# if we were given a suffix, then add it as appropriateif [ "$suffix" ]thencase $f in*.*)# leaf=`echo $leaf |# /bin/sed "s/\([~\.]*\)\.\(.*\)$/\1$suffix.\2/"`# ksh,bash hack for above sed scriptleaf=${leaf%%.*}$suffix.${leaf#*.}[ "$verbose" = "yes" ] &&echo "$progname: $f will be installed as $leaf";;*)leaf=$leaf$suffix;;esacfitarget=$target/$leaffi[ ! -r $f ] && fatal "can not read $f"if cmp -s $f $targetthen[ "$verbose" = "yes" ] && echo "'$f' not newer than '$target'"else[ "$verbose" = "yes" ] && echo "rm -f $target"rm -f $targetecho "cp -p $f $target"cp -p $f $target || exit 1targets="$targets $target" # keep list for chmod belowfidoneif [ "$mode" -a "$targets" ]then[ "$verbose" = "yes" ] && echo "chmod $mode $targets"chmod $mode $targetsfiexit 0# Local Variables: ***# mode:ksh ***# End: ***
