annotate mcabber/install-sh @ 2225:dc3b3ac1ba76

Free the buffdata structures when buffers are closed Free the buffdata strcutures when buffers are closed and there are no more users (these structures can be shared if the "symlink" shared history is used).
author Mikael Berthe <mikael@lilotux.net>
date Sat, 07 Nov 2015 12:21:12 +0100
parents cce89772ea94
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
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: