mcabber/install-sh
author Mikael Berthe <mikael@lilotux.net>
Sat, 25 Aug 2012 15:40:50 +0200
changeset 2026 564d99cdf0d1
parent 1825 cce89772ea94
permissions -rwxr-xr-x
MUC: do not destroy previous room invitation to create a new one If a previous similar mediated invitation exists, we do not remove it to create a new one (it's very confusing) unless the new one looks better, e.g. if the new invitation allows us to decline the invitation and the old one did not.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
     1
#!/bin/sh
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
     2
# install - install a program, script, or datafile
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
     3
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
     4
scriptversion=2009-04-28.21; # UTC
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
     5
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
     6
# This originates from X11R5 (mit/util/scripts/install.sh), which was
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
     7
# later released in X11R6 (xc/config/util/install.sh) with the
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
     8
# following copyright and license.
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
     9
#
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    10
# Copyright (C) 1994 X Consortium
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    11
#
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    12
# Permission is hereby granted, free of charge, to any person obtaining a copy
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    13
# of this software and associated documentation files (the "Software"), to
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    14
# deal in the Software without restriction, including without limitation the
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    15
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    16
# sell copies of the Software, and to permit persons to whom the Software is
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    17
# furnished to do so, subject to the following conditions:
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
    18
#
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    19
# The above copyright notice and this permission notice shall be included in
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    20
# all copies or substantial portions of the Software.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    21
#
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    22
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    23
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    24
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    25
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    26
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    27
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    28
#
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    29
# Except as contained in this notice, the name of the X Consortium shall not
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    30
# be used in advertising or otherwise to promote the sale, use or other deal-
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    31
# ings in this Software without prior written authorization from the X Consor-
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    32
# tium.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    33
#
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    34
#
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    35
# FSF changes to this file are in the public domain.
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
    36
#
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
    37
# Calling this script install-sh is preferred over install.sh, to prevent
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
    38
# `make' implicit rules from creating a file called install from it
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
    39
# when there is no Makefile.
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
    40
#
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
    41
# This script is compatible with the BSD install script, but was written
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    42
# from scratch.
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
    43
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    44
nl='
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    45
'
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    46
IFS=" ""	$nl"
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
    47
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
    48
# set DOITPROG to echo to test this script
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
    49
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
    50
# Don't use :- since 4.3BSD and earlier shells don't like it.
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    51
doit=${DOITPROG-}
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    52
if test -z "$doit"; then
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    53
  doit_exec=exec
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    54
else
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    55
  doit_exec=$doit
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    56
fi
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
    57
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    58
# Put in absolute file names if you don't have them in your path;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    59
# or use environment vars.
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
    60
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    61
chgrpprog=${CHGRPPROG-chgrp}
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    62
chmodprog=${CHMODPROG-chmod}
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    63
chownprog=${CHOWNPROG-chown}
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    64
cmpprog=${CMPPROG-cmp}
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    65
cpprog=${CPPROG-cp}
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    66
mkdirprog=${MKDIRPROG-mkdir}
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    67
mvprog=${MVPROG-mv}
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    68
rmprog=${RMPROG-rm}
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    69
stripprog=${STRIPPROG-strip}
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
    70
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    71
posix_glob='?'
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    72
initialize_posix_glob='
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    73
  test "$posix_glob" != "?" || {
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    74
    if (set -f) 2>/dev/null; then
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    75
      posix_glob=
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    76
    else
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    77
      posix_glob=:
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    78
    fi
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    79
  }
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    80
'
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    81
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    82
posix_mkdir=
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    83
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    84
# Desired mode of installed file.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    85
mode=0755
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    86
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    87
chgrpcmd=
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    88
chmodcmd=$chmodprog
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    89
chowncmd=
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    90
mvcmd=$mvprog
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
    91
rmcmd="$rmprog -f"
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    92
stripcmd=
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    93
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    94
src=
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    95
dst=
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    96
dir_arg=
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    97
dst_arg=
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    98
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
    99
copy_on_change=false
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   100
no_target_directory=
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   101
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   102
usage="\
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   103
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   104
   or: $0 [OPTION]... SRCFILES... DIRECTORY
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   105
   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   106
   or: $0 [OPTION]... -d DIRECTORIES...
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   107
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   108
In the 1st form, copy SRCFILE to DSTFILE.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   109
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   110
In the 4th, create DIRECTORIES.
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   111
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   112
Options:
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   113
     --help     display this help and exit.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   114
     --version  display version info and exit.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   115
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   116
  -c            (ignored)
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   117
  -C            install only if different (preserve the last data modification time)
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   118
  -d            create directories instead of installing files.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   119
  -g GROUP      $chgrpprog installed files to GROUP.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   120
  -m MODE       $chmodprog installed files to MODE.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   121
  -o USER       $chownprog installed files to USER.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   122
  -s            $stripprog installed files.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   123
  -t DIRECTORY  install into DIRECTORY.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   124
  -T            report an error if DSTFILE is a directory.
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   125
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   126
Environment variables override the default commands:
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   127
  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   128
  RMPROG STRIPPROG
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   129
"
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   130
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   131
while test $# -ne 0; do
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   132
  case $1 in
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   133
    -c) ;;
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   134
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   135
    -C) copy_on_change=true;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   136
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   137
    -d) dir_arg=true;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   138
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   139
    -g) chgrpcmd="$chgrpprog $2"
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   140
	shift;;
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   141
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   142
    --help) echo "$usage"; exit $?;;
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   143
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   144
    -m) mode=$2
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   145
	case $mode in
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   146
	  *' '* | *'	'* | *'
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   147
'*	  | *'*'* | *'?'* | *'['*)
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   148
	    echo "$0: invalid mode: $mode" >&2
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   149
	    exit 1;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   150
	esac
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   151
	shift;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   152
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   153
    -o) chowncmd="$chownprog $2"
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   154
	shift;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   155
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   156
    -s) stripcmd=$stripprog;;
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   157
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   158
    -t) dst_arg=$2
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   159
	shift;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   160
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   161
    -T) no_target_directory=true;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   162
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   163
    --version) echo "$0 $scriptversion"; exit $?;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   164
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   165
    --)	shift
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   166
	break;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   167
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   168
    -*)	echo "$0: invalid option: $1" >&2
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   169
	exit 1;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   170
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   171
    *)  break;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   172
  esac
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   173
  shift
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   174
done
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   175
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   176
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   177
  # When -d is used, all remaining arguments are directories to create.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   178
  # When -t is used, the destination is already specified.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   179
  # Otherwise, the last argument is the destination.  Remove it from $@.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   180
  for arg
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   181
  do
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   182
    if test -n "$dst_arg"; then
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   183
      # $@ is not empty: it contains at least $arg.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   184
      set fnord "$@" "$dst_arg"
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   185
      shift # fnord
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   186
    fi
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   187
    shift # arg
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   188
    dst_arg=$arg
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   189
  done
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   190
fi
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   191
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   192
if test $# -eq 0; then
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   193
  if test -z "$dir_arg"; then
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   194
    echo "$0: no input file specified." >&2
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   195
    exit 1
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   196
  fi
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   197
  # It's OK to call `install-sh -d' without argument.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   198
  # This can happen when creating conditional directories.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   199
  exit 0
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   200
fi
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   201
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   202
if test -z "$dir_arg"; then
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   203
  trap '(exit $?); exit' 1 2 13 15
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   204
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   205
  # Set umask so as not to create temps with too-generous modes.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   206
  # However, 'strip' requires both read and write access to temps.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   207
  case $mode in
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   208
    # Optimize common cases.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   209
    *644) cp_umask=133;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   210
    *755) cp_umask=22;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   211
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   212
    *[0-7])
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   213
      if test -z "$stripcmd"; then
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   214
	u_plus_rw=
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   215
      else
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   216
	u_plus_rw='% 200'
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   217
      fi
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   218
      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   219
    *)
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   220
      if test -z "$stripcmd"; then
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   221
	u_plus_rw=
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   222
      else
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   223
	u_plus_rw=,u+rw
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   224
      fi
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   225
      cp_umask=$mode$u_plus_rw;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   226
  esac
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   227
fi
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   228
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   229
for src
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   230
do
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   231
  # Protect names starting with `-'.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   232
  case $src in
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   233
    -*) src=./$src;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   234
  esac
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   235
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   236
  if test -n "$dir_arg"; then
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   237
    dst=$src
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   238
    dstdir=$dst
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   239
    test -d "$dstdir"
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   240
    dstdir_status=$?
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   241
  else
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   242
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   243
    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   244
    # might cause directories to be created, which would be especially bad
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   245
    # if $src (and thus $dsttmp) contains '*'.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   246
    if test ! -f "$src" && test ! -d "$src"; then
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   247
      echo "$0: $src does not exist." >&2
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   248
      exit 1
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   249
    fi
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   250
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   251
    if test -z "$dst_arg"; then
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   252
      echo "$0: no destination specified." >&2
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   253
      exit 1
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   254
    fi
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   255
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   256
    dst=$dst_arg
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   257
    # Protect names starting with `-'.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   258
    case $dst in
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   259
      -*) dst=./$dst;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   260
    esac
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   261
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   262
    # If destination is a directory, append the input filename; won't work
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   263
    # if double slashes aren't ignored.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   264
    if test -d "$dst"; then
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   265
      if test -n "$no_target_directory"; then
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   266
	echo "$0: $dst_arg: Is a directory" >&2
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   267
	exit 1
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   268
      fi
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   269
      dstdir=$dst
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   270
      dst=$dstdir/`basename "$src"`
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   271
      dstdir_status=0
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   272
    else
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   273
      # Prefer dirname, but fall back on a substitute if dirname fails.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   274
      dstdir=`
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   275
	(dirname "$dst") 2>/dev/null ||
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   276
	expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   277
	     X"$dst" : 'X\(//\)[^/]' \| \
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   278
	     X"$dst" : 'X\(//\)$' \| \
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   279
	     X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   280
	echo X"$dst" |
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   281
	    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   282
		   s//\1/
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   283
		   q
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   284
		 }
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   285
		 /^X\(\/\/\)[^/].*/{
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   286
		   s//\1/
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   287
		   q
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   288
		 }
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   289
		 /^X\(\/\/\)$/{
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   290
		   s//\1/
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   291
		   q
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   292
		 }
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   293
		 /^X\(\/\).*/{
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   294
		   s//\1/
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   295
		   q
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   296
		 }
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   297
		 s/.*/./; q'
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   298
      `
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   299
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   300
      test -d "$dstdir"
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   301
      dstdir_status=$?
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   302
    fi
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   303
  fi
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   304
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   305
  obsolete_mkdir_used=false
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   306
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   307
  if test $dstdir_status != 0; then
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   308
    case $posix_mkdir in
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   309
      '')
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   310
	# Create intermediate dirs using mode 755 as modified by the umask.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   311
	# This is like FreeBSD 'install' as of 1997-10-28.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   312
	umask=`umask`
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   313
	case $stripcmd.$umask in
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   314
	  # Optimize common cases.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   315
	  *[2367][2367]) mkdir_umask=$umask;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   316
	  .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   317
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   318
	  *[0-7])
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   319
	    mkdir_umask=`expr $umask + 22 \
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   320
	      - $umask % 100 % 40 + $umask % 20 \
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   321
	      - $umask % 10 % 4 + $umask % 2
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   322
	    `;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   323
	  *) mkdir_umask=$umask,go-w;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   324
	esac
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   325
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   326
	# With -d, create the new directory with the user-specified mode.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   327
	# Otherwise, rely on $mkdir_umask.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   328
	if test -n "$dir_arg"; then
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   329
	  mkdir_mode=-m$mode
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   330
	else
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   331
	  mkdir_mode=
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   332
	fi
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   333
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   334
	posix_mkdir=false
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   335
	case $umask in
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   336
	  *[123567][0-7][0-7])
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   337
	    # POSIX mkdir -p sets u+wx bits regardless of umask, which
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   338
	    # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   339
	    ;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   340
	  *)
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   341
	    tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   342
	    trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   343
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   344
	    if (umask $mkdir_umask &&
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   345
		exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   346
	    then
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   347
	      if test -z "$dir_arg" || {
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   348
		   # Check for POSIX incompatibilities with -m.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   349
		   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   350
		   # other-writeable bit of parent directory when it shouldn't.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   351
		   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   352
		   ls_ld_tmpdir=`ls -ld "$tmpdir"`
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   353
		   case $ls_ld_tmpdir in
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   354
		     d????-?r-*) different_mode=700;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   355
		     d????-?--*) different_mode=755;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   356
		     *) false;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   357
		   esac &&
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   358
		   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   359
		     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   360
		     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   361
		   }
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   362
		 }
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   363
	      then posix_mkdir=:
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   364
	      fi
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   365
	      rmdir "$tmpdir/d" "$tmpdir"
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   366
	    else
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   367
	      # Remove any dirs left behind by ancient mkdir implementations.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   368
	      rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   369
	    fi
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   370
	    trap '' 0;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   371
	esac;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   372
    esac
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   373
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   374
    if
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   375
      $posix_mkdir && (
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   376
	umask $mkdir_umask &&
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   377
	$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   378
      )
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   379
    then :
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   380
    else
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   381
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   382
      # The umask is ridiculous, or mkdir does not conform to POSIX,
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   383
      # or it failed possibly due to a race condition.  Create the
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   384
      # directory the slow way, step by step, checking for races as we go.
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   385
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   386
      case $dstdir in
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   387
	/*) prefix='/';;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   388
	-*) prefix='./';;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   389
	*)  prefix='';;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   390
      esac
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   391
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   392
      eval "$initialize_posix_glob"
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   393
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   394
      oIFS=$IFS
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   395
      IFS=/
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   396
      $posix_glob set -f
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   397
      set fnord $dstdir
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   398
      shift
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   399
      $posix_glob set +f
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   400
      IFS=$oIFS
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   401
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   402
      prefixes=
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   403
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   404
      for d
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   405
      do
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   406
	test -z "$d" && continue
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   407
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   408
	prefix=$prefix$d
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   409
	if test -d "$prefix"; then
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   410
	  prefixes=
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   411
	else
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   412
	  if $posix_mkdir; then
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   413
	    (umask=$mkdir_umask &&
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   414
	     $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   415
	    # Don't fail if two instances are running concurrently.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   416
	    test -d "$prefix" || exit 1
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   417
	  else
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   418
	    case $prefix in
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   419
	      *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   420
	      *) qprefix=$prefix;;
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   421
	    esac
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   422
	    prefixes="$prefixes '$qprefix'"
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   423
	  fi
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   424
	fi
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   425
	prefix=$prefix/
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   426
      done
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   427
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   428
      if test -n "$prefixes"; then
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   429
	# Don't fail if two instances are running concurrently.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   430
	(umask $mkdir_umask &&
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   431
	 eval "\$doit_exec \$mkdirprog $prefixes") ||
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   432
	  test -d "$dstdir" || exit 1
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   433
	obsolete_mkdir_used=true
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   434
      fi
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   435
    fi
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   436
  fi
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   437
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   438
  if test -n "$dir_arg"; then
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   439
    { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   440
    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   441
    { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   442
      test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   443
  else
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   444
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   445
    # Make a couple of temp file names in the proper directory.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   446
    dsttmp=$dstdir/_inst.$$_
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   447
    rmtmp=$dstdir/_rm.$$_
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   448
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   449
    # Trap to clean up those temp files at exit.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   450
    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   451
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   452
    # Copy the file name to the temp name.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   453
    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   454
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   455
    # and set any options; do chmod last to preserve setuid bits.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   456
    #
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   457
    # If any of these fail, we abort the whole thing.  If we want to
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   458
    # ignore errors from any of these, just make sure not to ignore
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   459
    # errors from the above "$doit $cpprog $src $dsttmp" command.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   460
    #
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   461
    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   462
    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   463
    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   464
    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   465
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   466
    # If -C, don't bother to copy if it wouldn't change the file.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   467
    if $copy_on_change &&
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   468
       old=`LC_ALL=C ls -dlL "$dst"	2>/dev/null` &&
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   469
       new=`LC_ALL=C ls -dlL "$dsttmp"	2>/dev/null` &&
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   470
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   471
       eval "$initialize_posix_glob" &&
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   472
       $posix_glob set -f &&
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   473
       set X $old && old=:$2:$4:$5:$6 &&
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   474
       set X $new && new=:$2:$4:$5:$6 &&
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   475
       $posix_glob set +f &&
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   476
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   477
       test "$old" = "$new" &&
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   478
       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   479
    then
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   480
      rm -f "$dsttmp"
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   481
    else
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   482
      # Rename the file to the real destination.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   483
      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   484
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   485
      # The rename failed, perhaps because mv can't rename something else
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   486
      # to itself, or perhaps because mv is so ancient that it does not
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   487
      # support -f.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   488
      {
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   489
	# Now remove or move aside any old file at destination location.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   490
	# We try this two ways since rm can't unlink itself on some
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   491
	# systems and the destination file might be busy for other
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   492
	# reasons.  In this case, the final cleanup might fail but the new
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   493
	# file should still install successfully.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   494
	{
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   495
	  test ! -f "$dst" ||
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   496
	  $doit $rmcmd -f "$dst" 2>/dev/null ||
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   497
	  { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   498
	    { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   499
	  } ||
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   500
	  { echo "$0: cannot unlink or rename $dst" >&2
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   501
	    (exit 1); exit 1
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   502
	  }
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   503
	} &&
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   504
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   505
	# Now rename the file to the real destination.
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   506
	$doit $mvcmd "$dsttmp" "$dst"
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   507
      }
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   508
    fi || exit 1
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   509
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   510
    trap '' 0
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   511
  fi
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   512
done
25
bf3d6e241714 [/trunk] Changeset 41 by mikael
mikael
parents:
diff changeset
   513
1825
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   514
# Local variables:
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   515
# eval: (add-hook 'write-file-hooks 'time-stamp)
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   516
# time-stamp-start: "scriptversion="
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   517
# time-stamp-format: "%:y-%02m-%02d.%02H"
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   518
# time-stamp-time-zone: "UTC"
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   519
# time-stamp-end: "; # UTC"
cce89772ea94 Update autotools install script and documentation
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
   520
# End: