annotate srogue/install-sh @ 145:aac28331e71d

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