make/install-sh

Sun, 17 Dec 2023 15:33:50 +0100

author
Mike Becker <universe@uap-core.de>
date
Sun, 17 Dec 2023 15:33:50 +0100
changeset 800
30d484806c2b
parent 742
7e67689241fd
permissions
-rwxr-xr-x

fix faulty string to int conversion utilities

Probably it was expected that errno is set to EINVAL when illegal characters are encountered. But this is not standard and does not happen on every system, allowing illegal strings to be parsed as valid integers.

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

mercurial