12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- #!/bin/sh
- # %% (c) Copyright 1993, 1994 Hewlett-Packard Company
- # %% (c) Copyright 1993, 1994 International Business Machines Corp.
- # %% (c) Copyright 1993, 1994 Sun Microsystems, Inc.
- # %% (c) Copyright 1993, 1994 Novell, Inc.
- # %% $XConsortium: ttinstall.sh /main/3 1995/10/20 16:23:17 rswiston $
- # @(#)ttinstall.sh 1.10 30 Jul 1993
- # Shell script for doing installs.
- # The old bsd install did pretty much what we want, but the SYSV install
- # doesn't. Hence this shell script which does what we need.
- #
- # Usage: ttinstall <version> <dest-dir> file...
- #
- # ttinstall will create dest-dir if needed and copy each named file
- # to that directory. If a file's name ends in .so.[0-9] or .so.[0-9][0-9],
- # a symlink is created in the destination directory without the version.
- # (This breaks if any shared library has a version over 99, but I'm not
- # worried.)
- # If the file is ELF (binary or shared library), then mcs is used to
- # strip the comment and replace it with a short one containing
- # the version.
- if [ "$RECURSING_ON" != "$0" ]; then
- RECURSING_ON="$0"
- export RECURSING_ON
- exec ksh "$0" "$@"
- fi
- # HP-UX mkdir -p fails to work if any of the components
- # in the name are automounter symlinks... so fake mkdir -p with
- # a recursive shell function.
- function mkdir_p
- {
- # if directory names have trailing /, we get called with a null string
- if [[ "$1" = "" ]]
- then return
- fi
- # bail out if directory already exists -- this means recursion stops
- # as soon as we back up into an existing directory
- if [[ -d $1 ]]
- then return
- fi
- # only recurse if path has a slash in it.
- case $1 in
- */*) mkdir_p ${1%/*}
- mkdir $1
- ;;
- *) mkdir $1
- ;;
- esac
- return
- }
- version=$1; shift
- destdir=$1; shift
- datestamp=`date '+%d %h %y'`
- if [[ ! -d $destdir ]]
- then print -n -u2 Creating directory $destdir ...
- rm -f $destdir
- mkdir_p $destdir
- print done.
- fi
- while test "$1"
- do file="`basename $1`"
- print -n -u2 Installing $1 in $destdir ...
- rm -f $destdir/${1##*/}
- # Try to install by linking, otherwise copy
- ln $1 $destdir || cp $1 $destdir
- case $1 in
- *.so.[0-9]) print -n -u2 adding symlink ...
- rm -f $destdir/${file%.[0-9]}
- ln -s $file $destdir/${file%.[0-9]}
- ;;
- *.so.[0-9][0-9]) print -n -u2 adding symlink ...
- rm -f $destdir/${file%.[0-9][0-9]}
- ln -s $file $destdir/${file%.[0-9][0-9]}
- ;;
- esac
- print -u2 done.
- filetype=`file $1`
- case $filetype in
- *ELF*) print -n -u2 stripping comments ...
- mcs -d -a "@(#)ToolTalk $version $datestamp" $destdir/${1##*/}
- print -u2 done.
- ;;
- esac
- shift
- done
|