diff options
Diffstat (limited to 'win32/contrib/pthreads/install-sh')
| -rw-r--r-- | win32/contrib/pthreads/install-sh | 247 | 
1 files changed, 247 insertions, 0 deletions
| diff --git a/win32/contrib/pthreads/install-sh b/win32/contrib/pthreads/install-sh new file mode 100644 index 000000000..7303f8565 --- /dev/null +++ b/win32/contrib/pthreads/install-sh @@ -0,0 +1,247 @@ +#!/bin/sh
 +#
 +# install - install a program, script, or datafile
 +# This comes from X11R5 (mit/util/scripts/install.sh).
 +#
 +# Copyright 1991 by the Massachusetts Institute of Technology
 +#
 +# Permission to use, copy, modify, distribute, and sell this software and its
 +# documentation for any purpose is hereby granted without fee, provided that
 +# the above copyright notice appear in all copies and that both that
 +# copyright notice and this permission notice appear in supporting
 +# documentation, and that the name of M.I.T. not be used in advertising or
 +# publicity pertaining to distribution of the software without specific,
 +# written prior permission.  M.I.T. makes no representations about the
 +# suitability of this software for any purpose.  It is provided "as is"
 +# without express or implied warranty.
 +#
 +# This script is compatible with the BSD install script, but was written
 +# from scratch.
 +#
 +
 +
 +# set DOITPROG to echo to test this script
 +
 +# Don't use :- since 4.3BSD and earlier shells don't like it.
 +doit="${DOITPROG-}"
 +
 +
 +# put in absolute paths if you don't have them in your path; or use env. vars.
 +
 +mvprog="${MVPROG-mv}"
 +cpprog="${CPPROG-cp}"
 +chmodprog="${CHMODPROG-chmod}"
 +chownprog="${CHOWNPROG-chown}"
 +chgrpprog="${CHGRPPROG-chgrp}"
 +stripprog="${STRIPPROG-strip}"
 +rmprog="${RMPROG-rm}"
 +mkdirprog="${MKDIRPROG-mkdir}"
 +
 +transformbasename=""
 +transform_arg=""
 +instcmd="$mvprog"
 +chmodcmd="$chmodprog 0755"
 +chowncmd=""
 +chgrpcmd=""
 +stripcmd=""
 +rmcmd="$rmprog -f"
 +mvcmd="$mvprog"
 +src=""
 +dst=""
 +dir_arg=""
 +
 +while [ x"$1" != x ]; do
 +    case $1 in
 +	-c) instcmd="$cpprog"
 +	    shift
 +	    continue;;
 +
 +	-d) dir_arg=true
 +	    shift
 +	    continue;;
 +
 +	-m) chmodcmd="$chmodprog $2"
 +	    shift
 +	    shift
 +	    continue;;
 +
 +	-o) chowncmd="$chownprog $2"
 +	    shift
 +	    shift
 +	    continue;;
 +
 +	-g) chgrpcmd="$chgrpprog $2"
 +	    shift
 +	    shift
 +	    continue;;
 +
 +	-s) stripcmd="$stripprog"
 +	    shift
 +	    continue;;
 +
 +	-t=*) transformarg=`echo $1 | sed 's/-t=//'`
 +	    shift
 +	    continue;;
 +
 +	-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
 +	    shift
 +	    continue;;
 +
 +	*)  if [ x"$src" = x ]
 +	    then
 +		src=$1
 +	    else
 +		# this colon is to work around a 386BSD /bin/sh bug
 +		:
 +		dst=$1
 +	    fi
 +	    shift
 +	    continue;;
 +    esac
 +done
 +
 +if [ x"$src" = x ]
 +then
 +	echo "install:	no input file specified"
 +	exit 1
 +else
 +	true
 +fi
 +
 +if [ x"$dir_arg" != x ]; then
 +	dst=$src
 +	src=""
 +	
 +	if [ -d $dst ]; then
 +		instcmd=:
 +		chmodcmd=""
 +	else
 +		instcmd=mkdir
 +	fi
 +else
 +
 +# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
 +# might cause directories to be created, which would be especially bad 
 +# if $src (and thus $dsttmp) contains '*'.
 +
 +	if [ -f $src -o -d $src ]
 +	then
 +		true
 +	else
 +		echo "install:  $src does not exist"
 +		exit 1
 +	fi
 +	
 +	if [ x"$dst" = x ]
 +	then
 +		echo "install:	no destination specified"
 +		exit 1
 +	else
 +		true
 +	fi
 +
 +# If destination is a directory, append the input filename; if your system
 +# does not like double slashes in filenames, you may need to add some logic
 +
 +	if [ -d $dst ]
 +	then
 +		dst="$dst"/`basename $src`
 +	else
 +		true
 +	fi
 +fi
 +
 +## this sed command emulates the dirname command
 +dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
 +
 +# Make sure that the destination directory exists.
 +#  this part is taken from Noah Friedman's mkinstalldirs script
 +
 +# Skip lots of stat calls in the usual case.
 +if [ ! -d "$dstdir" ]; then
 +defaultIFS='	
 +'
 +IFS="${IFS-${defaultIFS}}"
 +
 +oIFS="${IFS}"
 +# Some sh's can't handle IFS=/ for some reason.
 +IFS='%'
 +set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
 +IFS="${oIFS}"
 +
 +pathcomp=''
 +
 +while [ $# -ne 0 ] ; do
 +	pathcomp="${pathcomp}${1}"
 +	shift
 +
 +	if [ ! -d "${pathcomp}" ] ;
 +        then
 +		$mkdirprog "${pathcomp}"
 +	else
 +		true
 +	fi
 +
 +	pathcomp="${pathcomp}/"
 +done
 +fi
 +
 +if [ x"$dir_arg" != x ]
 +then
 +	$doit $instcmd $dst &&
 +
 +	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
 +	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
 +	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
 +	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
 +else
 +
 +# If we're going to rename the final executable, determine the name now.
 +
 +	if [ x"$transformarg" = x ] 
 +	then
 +		dstfile=`basename $dst`
 +	else
 +		dstfile=`basename $dst $transformbasename | 
 +			sed $transformarg`$transformbasename
 +	fi
 +
 +# don't allow the sed command to completely eliminate the filename
 +
 +	if [ x"$dstfile" = x ] 
 +	then
 +		dstfile=`basename $dst`
 +	else
 +		true
 +	fi
 +
 +# Make a temp file name in the proper directory.
 +
 +	dsttmp=$dstdir/#inst.$$#
 +
 +# Move or copy the file name to the temp name
 +
 +	$doit $instcmd $src $dsttmp &&
 +
 +	trap "rm -f ${dsttmp}" 0 &&
 +
 +# and set any options; do chmod last to preserve setuid bits
 +
 +# If any of these fail, we abort the whole thing.  If we want to
 +# ignore errors from any of these, just make sure not to ignore
 +# errors from the above "$doit $instcmd $src $dsttmp" command.
 +
 +	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
 +	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
 +	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
 +	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
 +
 +# Now rename the file to the real destination.
 +
 +	$doit $rmcmd -f $dstdir/$dstfile &&
 +	$doit $mvcmd $dsttmp $dstdir/$dstfile 
 +
 +fi &&
 +
 +
 +exit 0
 | 
