head	1.4;
access;
symbols
	core-8-5-9:1.3
	core-8-5-8:1.3
	macosx-cocoa-merge:1.3
	macosx-cocoa-premerge:1.3
	macosx-carbon-freeze:1.3
	core-8-5-7:1.3
	core-8-5-6:1.3
	core-8-6-b1:1.3
	core-8-6-a3:1.3
	core-8-5-5:1.3
	core-8-6-a2:1.3
	core-8-5-4:1.3
	core-8-5-3:1.3
	core-8-6-a1:1.3
	core-8-4-19:1.2
	core-8-5-branch:1.3.0.2
	core-8-5-2:1.3
	core-8-4-18:1.2
	core-8-5-1:1.2
	core-8-4-17:1.2
	core-8-5-0:1.2
	core-8-5-b3:1.2
	core-8-5-b2:1.2
	core-8-4-16:1.2
	core-8-5-b1:1.2
	core-stablilizer-merge:1.2
	core-stabilizer-branch:1.2.0.8
	core-stabilizer-merge:1.3
	core-8-4-15:1.2
	core-8-5-a6:1.2
	core-8-5-a5:1.2
	core-8-4-14:1.2
	core-8-5-a4:1.2
	core-8-4-13:1.2
	core-8-4-12:1.2
	core-8-4-11:1.2
	core-8-5-a3:1.2
	core-8-4-10:1.2
	core-8-4-9-branch:1.2.0.6
	core-8-5-a2:1.2
	core-8-4-9:1.2
	core-8-4-8:1.2
	core-8-4-7:1.2
	core-8-5-a1:1.2
	core-8-4-6:1.2
	core-8-4-5:1.2
	mistachkin-dev-branch:1.2.0.4
	core-8-4-4:1.2
	core-8-4-3:1.2
	core-8-4-branch:1.2.0.2
	core-8-4-2:1.2
	core-8-4-1:1.2
	core-8-3-5:1.1
	core-8-4-0:1.1
	macosx-8-4-merge-2002-08-31-trunk:1.1
	macosx-8-4-premerge-2002-08-31-branch:1.1
	macosx-8-4-premerge-2002-08-31-trunk:1.1
	macosx-8-4-merge-2002-08-30-branch:1.1
	macosx-8-4-merge-2002-08-30-trunk:1.1
	macosx-8-4-merge-2002-08-20-branch:1.1
	macosx-8-4-merge-2002-08-20-trunk:1.1
	core-8-4-b2:1.1
	core-8-4-b1:1.1
	macosx-premerge-6-9-02:1.1
	core-8-4-a4:1.1
	core-8-3-4:1.1
	macosx-8-4-branch:1.1.0.28
	macosx-8-4-branchpoint:1.1
	core-8-4-a3:1.1
	core-8-3-3:1.1
	dgp-privates-into-namespace:1.1.0.26
	tclpro-1-5-0:1.1
	core-8-4-win-speedup:1.1.0.24
	core-8-4-a2:1.1
	tclpro-1-4-1:1.1
	tclpro-1-4-0:1.1
	core-8-3-2:1.1
	ajuba-ajuba2-2-1-base:1.1
	ajuba-ajuba2-2-0:1.1
	core-8-4-a1:1.1
	core-8-3-1-branch:1.1.0.22
	core-8-3-1:1.1
	scriptics-sc-2-0-b5:1.1
	scriptics-sc-2-0-fixed:1.1
	scriptics-sc-2-0-b2:1.1
	scriptics-sc-2-0-b1:1.1
	core-8-3-0:1.1
	core-8-3-b2:1.1
	core-8-3-b1:1.1
	scriptics-sc-1-1:1.1
	scriptics-sc-1-1-b1:1.1
	core-8-2-3:1.1
	scriptics-sc-1-1-branch:1.1.0.20
	scriptics-sc-1-1-base:1.1
	scriptics-sc-1-0:1.1
	scriptics-sc-1-0-branch:1.1.0.18
	scriptics-sc-1-0-base:1.1
	core-8-2-2:1.1
	core-8-2-1:1.1
	scriptics-bc-1-0-b1:1.1
	core-8-2-1-branch:1.1.0.16
	scriptics-tclpro-1-3-0:1.1
	core-8-2-0:1.1
	core-8-2-b3-branch:1.1.0.14
	core-8-2-b3-base:1.1
	scriptics-tclpro-1-3-b4:1.1
	core-8-2-b2:1.1
	scriptics-tclpro-1-3-b3:1.1
	core-8-2-b1:1.1
	scriptics-tclpro-1-3-b2:1.1
	merge-to-mainline-5/21/99:1.1
	scriptics-tclpro-1-3-b2-branch:1.1.0.12
	core-8-1-1:1.1
	scriptics-tclpro-1-3-b1:1.1
	core-8-1-1-base:1.1
	core-8-1-0:1.1
	merge-to-mainline-4-29-99:1.1
	merge-to-mainline-4-23-99:1.1
	core-8-1-branch-old:1.1.0.4
	core-8-0-6-branch:1.1.0.10
	core-8-0-6-base:1.1
	core-8-0-5:1.1
	core-8-1-b3:1.1
	core-8-1-b2:1.1
	dev-8-1-stubs-branch:1.1.0.8
	dev-stubs-branch:1.1.0.6
	scriptics-tclpro-1-2:1.1
	scriptics-tclpro-1-2-b2:1.1
	core-8-1-merge-2/10/99:1.1
	core-8-0-5-branch:1.1.0.2
	core-8-0-5-base:1.1
	scriptics-tclpro-1-2-b1:1.1
	scriptics-tclpro-1-2-a1:1.1
	core-8-1-b1:1.1
	core-8-0-4:1.1
	core-8-1-a2:1.1
	core-8-0-2:1.1
	core-8-0-3:1.1;
locks; strict;
comment	@# @;


1.4
date	2010.12.16.01.55.02;	author stwo;	state Exp;
branches;
next	1.3;

1.3
date	2008.03.11.22.33.23;	author das;	state Exp;
branches;
next	1.2;

1.2
date	2002.09.26.17.07.33;	author das;	state Exp;
branches
	1.2.8.1;
next	1.1;

1.1
date	98.04.01.09.59.32;	author rjohnson;	state Exp;
branches;
next	;

1.2.8.1
date	2008.03.13.14.57.37;	author dgp;	state Exp;
branches;
next	;


desc
@@


1.4
log
@Installer Improvements. Similar to Tcl [Patch 3101127].
@
text
@#!/bin/sh
# install - install a program, script, or datafile

scriptversion=2010-02-06.18; # UTC

# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
#
# Copyright (C) 1994 X Consortium
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor-
# tium.
#
#
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch.

nl='
'
IFS=" ""	$nl"

# set DOITPROG to echo to test this script

# Don't use :- since 4.3BSD and earlier shells don't like it.
doit=${DOITPROG-}
if test -z "$doit"; then
  doit_exec=exec
else
  doit_exec=$doit
fi

# Put in absolute file names if you don't have them in your path;
# or use environment vars.

chgrpprog=${CHGRPPROG-chgrp}
chmodprog=${CHMODPROG-chmod}
chownprog=${CHOWNPROG-chown}
cmpprog=${CMPPROG-cmp}
cpprog=${CPPROG-cp}
mkdirprog=${MKDIRPROG-mkdir}
mvprog=${MVPROG-mv}
rmprog=${RMPROG-rm}
stripprog=${STRIPPROG-strip}

posix_glob='?'
initialize_posix_glob='
  test "$posix_glob" != "?" || {
    if (set -f) 2>/dev/null; then
      posix_glob=
    else
      posix_glob=:
    fi
  }
'

posix_mkdir=

# Desired mode of installed file.
mode=0755

chgrpcmd=
chmodcmd=$chmodprog
chowncmd=
mvcmd=$mvprog
rmcmd="$rmprog -f"
stripcmd=

src=
dst=
dir_arg=
dst_arg=

copy_on_change=false
no_target_directory=

usage="\
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
   or: $0 [OPTION]... SRCFILES... DIRECTORY
   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
   or: $0 [OPTION]... -d DIRECTORIES...

In the 1st form, copy SRCFILE to DSTFILE.
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
In the 4th, create DIRECTORIES.

Options:
     --help     display this help and exit.
     --version  display version info and exit.

  -c            (ignored)
  -C            install only if different (preserve the last data modification time)
  -d            create directories instead of installing files.
  -g GROUP      $chgrpprog installed files to GROUP.
  -m MODE       $chmodprog installed files to MODE.
  -o USER       $chownprog installed files to USER.
  -s            $stripprog installed files.
  -t DIRECTORY  install into DIRECTORY.
  -T            report an error if DSTFILE is a directory.

Environment variables override the default commands:
  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
  RMPROG STRIPPROG
"

while test $# -ne 0; do
  case $1 in
    -c) ;;

    -C) copy_on_change=true;;

    -d) dir_arg=true;;

    -g) chgrpcmd="$chgrpprog $2"
	shift;;

    --help) echo "$usage"; exit $?;;

    -m) mode=$2
	case $mode in
	  *' '* | *'	'* | *'
'*	  | *'*'* | *'?'* | *'['*)
	    echo "$0: invalid mode: $mode" >&2
	    exit 1;;
	esac
	shift;;

    -o) chowncmd="$chownprog $2"
	shift;;

    -s) stripcmd=$stripprog;;

    -t) dst_arg=$2
	shift;;

    -T) no_target_directory=true;;

    --version) echo "$0 $scriptversion"; exit $?;;

    --)	shift
	break;;

    -*)	echo "$0: invalid option: $1" >&2
	exit 1;;

    *)  break;;
  esac
  shift
done

if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
  # When -d is used, all remaining arguments are directories to create.
  # When -t is used, the destination is already specified.
  # Otherwise, the last argument is the destination.  Remove it from $@@.
  for arg
  do
    if test -n "$dst_arg"; then
      # $@@ is not empty: it contains at least $arg.
      set fnord "$@@" "$dst_arg"
      shift # fnord
    fi
    shift # arg
    dst_arg=$arg
  done
fi

if test $# -eq 0; then
  if test -z "$dir_arg"; then
    echo "$0: no input file specified." >&2
    exit 1
  fi
  # It's OK to call `install-sh -d' without argument.
  # This can happen when creating conditional directories.
  exit 0
fi

if test -z "$dir_arg"; then
  do_exit='(exit $ret); exit $ret'
  trap "ret=129; $do_exit" 1
  trap "ret=130; $do_exit" 2
  trap "ret=141; $do_exit" 13
  trap "ret=143; $do_exit" 15

  # Set umask so as not to create temps with too-generous modes.
  # However, 'strip' requires both read and write access to temps.
  case $mode in
    # Optimize common cases.
    *644) cp_umask=133;;
    *755) cp_umask=22;;

    *[0-7])
      if test -z "$stripcmd"; then
	u_plus_rw=
      else
	u_plus_rw='% 200'
      fi
      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
    *)
      if test -z "$stripcmd"; then
	u_plus_rw=
      else
	u_plus_rw=,u+rw
      fi
      cp_umask=$mode$u_plus_rw;;
  esac
fi

for src
do
  # Protect names starting with `-'.
  case $src in
    -*) src=./$src;;
  esac

  if test -n "$dir_arg"; then
    dst=$src
    dstdir=$dst
    test -d "$dstdir"
    dstdir_status=$?
  else

    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
    # might cause directories to be created, which would be especially bad
    # if $src (and thus $dsttmp) contains '*'.
    if test ! -f "$src" && test ! -d "$src"; then
      echo "$0: $src does not exist." >&2
      exit 1
    fi

    if test -z "$dst_arg"; then
      echo "$0: no destination specified." >&2
      exit 1
    fi

    dst=$dst_arg
    # Protect names starting with `-'.
    case $dst in
      -*) dst=./$dst;;
    esac

    # If destination is a directory, append the input filename; won't work
    # if double slashes aren't ignored.
    if test -d "$dst"; then
      if test -n "$no_target_directory"; then
	echo "$0: $dst_arg: Is a directory" >&2
	exit 1
      fi
      dstdir=$dst
      dst=$dstdir/`basename "$src"`
      dstdir_status=0
    else
      # Prefer dirname, but fall back on a substitute if dirname fails.
      dstdir=`
	(dirname "$dst") 2>/dev/null ||
	expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
	     X"$dst" : 'X\(//\)[^/]' \| \
	     X"$dst" : 'X\(//\)$' \| \
	     X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
	echo X"$dst" |
	    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
		   s//\1/
		   q
		 }
		 /^X\(\/\/\)[^/].*/{
		   s//\1/
		   q
		 }
		 /^X\(\/\/\)$/{
		   s//\1/
		   q
		 }
		 /^X\(\/\).*/{
		   s//\1/
		   q
		 }
		 s/.*/./; q'
      `

      test -d "$dstdir"
      dstdir_status=$?
    fi
  fi

  obsolete_mkdir_used=false

  if test $dstdir_status != 0; then
    case $posix_mkdir in
      '')
	# Create intermediate dirs using mode 755 as modified by the umask.
	# This is like FreeBSD 'install' as of 1997-10-28.
	umask=`umask`
	case $stripcmd.$umask in
	  # Optimize common cases.
	  *[2367][2367]) mkdir_umask=$umask;;
	  .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;

	  *[0-7])
	    mkdir_umask=`expr $umask + 22 \
	      - $umask % 100 % 40 + $umask % 20 \
	      - $umask % 10 % 4 + $umask % 2
	    `;;
	  *) mkdir_umask=$umask,go-w;;
	esac

	# With -d, create the new directory with the user-specified mode.
	# Otherwise, rely on $mkdir_umask.
	if test -n "$dir_arg"; then
	  mkdir_mode=-m$mode
	else
	  mkdir_mode=
	fi

	posix_mkdir=false
	case $umask in
	  *[123567][0-7][0-7])
	    # POSIX mkdir -p sets u+wx bits regardless of umask, which
	    # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
	    ;;
	  *)
	    tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
	    trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0

	    if (umask $mkdir_umask &&
		exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
	    then
	      if test -z "$dir_arg" || {
		   # Check for POSIX incompatibilities with -m.
		   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
		   # other-writeable bit of parent directory when it shouldn't.
		   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
		   ls_ld_tmpdir=`ls -ld "$tmpdir"`
		   case $ls_ld_tmpdir in
		     d????-?r-*) different_mode=700;;
		     d????-?--*) different_mode=755;;
		     *) false;;
		   esac &&
		   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
		     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
		     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
		   }
		 }
	      then posix_mkdir=:
	      fi
	      rmdir "$tmpdir/d" "$tmpdir"
	    else
	      # Remove any dirs left behind by ancient mkdir implementations.
	      rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
	    fi
	    trap '' 0;;
	esac;;
    esac

    if
      $posix_mkdir && (
	umask $mkdir_umask &&
	$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
      )
    then :
    else

      # The umask is ridiculous, or mkdir does not conform to POSIX,
      # or it failed possibly due to a race condition.  Create the
      # directory the slow way, step by step, checking for races as we go.

      case $dstdir in
	/*) prefix='/';;
	-*) prefix='./';;
	*)  prefix='';;
      esac

      eval "$initialize_posix_glob"

      oIFS=$IFS
      IFS=/
      $posix_glob set -f
      set fnord $dstdir
      shift
      $posix_glob set +f
      IFS=$oIFS

      prefixes=

      for d
      do
	test -z "$d" && continue

	prefix=$prefix$d
	if test -d "$prefix"; then
	  prefixes=
	else
	  if $posix_mkdir; then
	    (umask=$mkdir_umask &&
	     $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
	    # Don't fail if two instances are running concurrently.
	    test -d "$prefix" || exit 1
	  else
	    case $prefix in
	      *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
	      *) qprefix=$prefix;;
	    esac
	    prefixes="$prefixes '$qprefix'"
	  fi
	fi
	prefix=$prefix/
      done

      if test -n "$prefixes"; then
	# Don't fail if two instances are running concurrently.
	(umask $mkdir_umask &&
	 eval "\$doit_exec \$mkdirprog $prefixes") ||
	  test -d "$dstdir" || exit 1
	obsolete_mkdir_used=true
      fi
    fi
  fi

  if test -n "$dir_arg"; then
    { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
    { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
      test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
  else

    # Make a couple of temp file names in the proper directory.
    dsttmp=$dstdir/_inst.$$_
    rmtmp=$dstdir/_rm.$$_

    # Trap to clean up those temp files at exit.
    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0

    # Copy the file name to the temp name.
    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&

    # 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 $cpprog $src $dsttmp" command.
    #
    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&

    # If -C, don't bother to copy if it wouldn't change the file.
    if $copy_on_change &&
       old=`LC_ALL=C ls -dlL "$dst"	2>/dev/null` &&
       new=`LC_ALL=C ls -dlL "$dsttmp"	2>/dev/null` &&

       eval "$initialize_posix_glob" &&
       $posix_glob set -f &&
       set X $old && old=:$2:$4:$5:$6 &&
       set X $new && new=:$2:$4:$5:$6 &&
       $posix_glob set +f &&

       test "$old" = "$new" &&
       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
    then
      rm -f "$dsttmp"
    else
      # Rename the file to the real destination.
      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||

      # The rename failed, perhaps because mv can't rename something else
      # to itself, or perhaps because mv is so ancient that it does not
      # support -f.
      {
	# Now remove or move aside any old file at destination location.
	# We try this two ways since rm can't unlink itself on some
	# systems and the destination file might be busy for other
	# reasons.  In this case, the final cleanup might fail but the new
	# file should still install successfully.
	{
	  test ! -f "$dst" ||
	  $doit $rmcmd -f "$dst" 2>/dev/null ||
	  { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
	    { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
	  } ||
	  { echo "$0: cannot unlink or rename $dst" >&2
	    (exit 1); exit 1
	  }
	} &&

	# Now rename the file to the real destination.
	$doit $mvcmd "$dsttmp" "$dst"
      }
    fi || exit 1

    trap '' 0
  fi
done

# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:
@


1.3
log
@	* macosx/GNUmakefile:			fix quoting to allow paths to
	* macosx/Wish-Common.xcconfig:		${builddir}, ${INSTALL_ROOT}
	* unix/Makefile.in:			and ${TCL_BIN_DIR} to contain
	* unix/configure.in:			spaces.
	* unix/install-sh:
	* unix/tcl.m4:

	* unix/Makefile.in (install-strip):	strip non-global symbols from
						dynamic library.
@
text
@d2 3
d6 22
d29 7
a35 2
# install - install a program, script, or datafile
# This comes from X11R5; it is not part of GNU.
d37 3
a39 1
# $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $
a42 1
#
d44 3
d51 87
a137 1
doit="${DOITPROG-}"
d139 2
d142 1
a142 1
# put in absolute paths if you don't have them in your path; or use env. vars.
d144 8
a151 47
mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"

instcmd="$mvprog"
chmodcmd=""
chowncmd=""
chgrpcmd=""
stripcmd=""
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=""
dst=""

while [ x"$1" != x ]; do
    case $1 in
	-c) instcmd="$cpprog"
	    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;;

	-S) stripcmd="$stripprog $2"
	    shift
	    shift
	    continue;;
d153 2
a154 10
	*)  if [ x"$src" = x ]
	    then
		src=$1
	    else
		dst=$1
	    fi
	    shift
	    continue;;
    esac
done
d156 1
a156 5
if [ x"$src" = x ]
then
	echo "install:  no input file specified"
	exit 1
fi
d158 2
a159 5
if [ x"$dst" = x ]
then
	echo "install:  no destination specified"
	exit 1
fi
d161 1
d163 1
a163 2
# 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
d165 2
a166 4
if [ -d "$dst" ]
then
	dst="$dst/`basename "$src"`"
fi
d168 2
a169 1
# Make a temp file name in the proper directory.
d171 4
a174 2
dstdir="`dirname "$dst"`"
dsttmp="$dstdir"/#inst.$$#
d176 15
a190 1
# Move or copy the file name to the temp name
d192 9
a200 1
$doit $instcmd "$src" "$dsttmp"
d202 30
a231 1
# and set any options; do chmod last to preserve setuid bits
d233 32
a264 4
if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; fi
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; fi
if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; fi
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; fi
d266 81
a346 1
# Now rename the file to the real destination.
d348 29
a376 2
$doit $rmcmd "$dst"
$doit $mvcmd "$dsttmp" "$dst"
d378 139
d518 7
a524 1
exit 0
@


1.2
log
@	* macosx/Makefile: preserve environment value of INSTALL_ROOT.
	When embedding only use deployment build. Force relink before
	embedded build to ensure new linker flags are picked up.

	* macosx/buildTkConfig.tcl (new):
	* macosx/Wish.pbproj/project.pbxproj: synthesize tkConfig.sh
	based on tclConfig.sh in Tcl.framework and tkConfig.sh.in.
	Add symbolic links to debug lib, stub libs and tkConfig.sh
	in framework toplevel. Made tkIntXlibDecls.h a public header
	since Headers/X11/Xlib.h includes it. Install wish8.4 script
	that runs "Wish Shell.app" and corresponding wish link.
	Use tcl headers from built Tcl.framework instead of from tcl
	source directory.

        * macosx/tkMacOSXPort.h: added missing standard unix includes
        and defines, similarly to tkUnixPort.h.
        * macosx/tkMacOSXNotify.c: removed dependency on internal tcl
        header "tclPort.h"

	* unix/Makefile.in:
	* unix/install-sh: copied support for 'install-strip' target
	over from tcl/unix/{Makefile.in,install-sh}
@
text
@d97 1
a97 1
if [ -d $dst ]
d99 1
a99 1
	dst="$dst"/`basename $src`
d104 2
a105 2
dstdir=`dirname $dst`
dsttmp=$dstdir/#inst.$$#
d109 1
a109 1
$doit $instcmd $src $dsttmp
d113 4
a116 4
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; fi
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; fi
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; fi
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; fi
d120 2
a121 2
$doit $rmcmd $dst
$doit $mvcmd $dsttmp $dst
@


1.2.8.1
log
@merge updates from HEAD
@
text
@d97 1
a97 1
if [ -d "$dst" ]
d99 1
a99 1
	dst="$dst/`basename "$src"`"
d104 2
a105 2
dstdir="`dirname "$dst"`"
dsttmp="$dstdir"/#inst.$$#
d109 1
a109 1
$doit $instcmd "$src" "$dsttmp"
d113 4
a116 4
if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; fi
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; fi
if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; fi
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; fi
d120 2
a121 2
$doit $rmcmd "$dst"
$doit $mvcmd "$dsttmp" "$dst"
@


1.1
log
@Initial revision
@
text
@d65 5
@

