Mercurial > mm7
comparison lib/swig/swigwin-2.0.11/CCache/install-sh @ 1899:b3009adc0e2f
Adding swig, gitignore, hgignore
author | Nomad |
---|---|
date | Mon, 21 Oct 2013 10:42:27 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
1867:eb580660bbbb | 1899:b3009adc0e2f |
---|---|
1 #! /bin/sh | |
2 # | |
3 # install - install a program, script, or datafile | |
4 # This comes from X11R5. | |
5 # | |
6 # Calling this script install-sh is preferred over install.sh, to prevent | |
7 # `make' implicit rules from creating a file called install from it | |
8 # when there is no Makefile. | |
9 # | |
10 # This script is compatible with the BSD install script, but was written | |
11 # from scratch. | |
12 # | |
13 | |
14 | |
15 # set DOITPROG to echo to test this script | |
16 | |
17 # Don't use :- since 4.3BSD and earlier shells don't like it. | |
18 doit="${DOITPROG-}" | |
19 | |
20 | |
21 # put in absolute paths if you don't have them in your path; or use env. vars. | |
22 | |
23 mvprog="${MVPROG-mv}" | |
24 cpprog="${CPPROG-cp}" | |
25 chmodprog="${CHMODPROG-chmod}" | |
26 chownprog="${CHOWNPROG-chown}" | |
27 chgrpprog="${CHGRPPROG-chgrp}" | |
28 stripprog="${STRIPPROG-strip}" | |
29 rmprog="${RMPROG-rm}" | |
30 mkdirprog="${MKDIRPROG-mkdir}" | |
31 | |
32 transformbasename="" | |
33 transform_arg="" | |
34 instcmd="$mvprog" | |
35 chmodcmd="$chmodprog 0755" | |
36 chowncmd="" | |
37 chgrpcmd="" | |
38 stripcmd="" | |
39 rmcmd="$rmprog -f" | |
40 mvcmd="$mvprog" | |
41 src="" | |
42 dst="" | |
43 dir_arg="" | |
44 | |
45 while [ x"$1" != x ]; do | |
46 case $1 in | |
47 -c) instcmd="$cpprog" | |
48 shift | |
49 continue;; | |
50 | |
51 -d) dir_arg=true | |
52 shift | |
53 continue;; | |
54 | |
55 -m) chmodcmd="$chmodprog $2" | |
56 shift | |
57 shift | |
58 continue;; | |
59 | |
60 -o) chowncmd="$chownprog $2" | |
61 shift | |
62 shift | |
63 continue;; | |
64 | |
65 -g) chgrpcmd="$chgrpprog $2" | |
66 shift | |
67 shift | |
68 continue;; | |
69 | |
70 -s) stripcmd="$stripprog" | |
71 shift | |
72 continue;; | |
73 | |
74 -t=*) transformarg=`echo $1 | sed 's/-t=//'` | |
75 shift | |
76 continue;; | |
77 | |
78 -b=*) transformbasename=`echo $1 | sed 's/-b=//'` | |
79 shift | |
80 continue;; | |
81 | |
82 *) if [ x"$src" = x ] | |
83 then | |
84 src=$1 | |
85 else | |
86 # this colon is to work around a 386BSD /bin/sh bug | |
87 : | |
88 dst=$1 | |
89 fi | |
90 shift | |
91 continue;; | |
92 esac | |
93 done | |
94 | |
95 if [ x"$src" = x ] | |
96 then | |
97 echo "install: no input file specified" | |
98 exit 1 | |
99 else | |
100 true | |
101 fi | |
102 | |
103 if [ x"$dir_arg" != x ]; then | |
104 dst=$src | |
105 src="" | |
106 | |
107 if [ -d $dst ]; then | |
108 instcmd=: | |
109 else | |
110 instcmd=mkdir | |
111 fi | |
112 else | |
113 | |
114 # Waiting for this to be detected by the "$instcmd $src $dsttmp" command | |
115 # might cause directories to be created, which would be especially bad | |
116 # if $src (and thus $dsttmp) contains '*'. | |
117 | |
118 if [ -f $src -o -d $src ] | |
119 then | |
120 true | |
121 else | |
122 echo "install: $src does not exist" | |
123 exit 1 | |
124 fi | |
125 | |
126 if [ x"$dst" = x ] | |
127 then | |
128 echo "install: no destination specified" | |
129 exit 1 | |
130 else | |
131 true | |
132 fi | |
133 | |
134 # If destination is a directory, append the input filename; if your system | |
135 # does not like double slashes in filenames, you may need to add some logic | |
136 | |
137 if [ -d $dst ] | |
138 then | |
139 dst="$dst"/`basename $src` | |
140 else | |
141 true | |
142 fi | |
143 fi | |
144 | |
145 ## this sed command emulates the dirname command | |
146 dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` | |
147 | |
148 # Make sure that the destination directory exists. | |
149 # this part is taken from Noah Friedman's mkinstalldirs script | |
150 | |
151 # Skip lots of stat calls in the usual case. | |
152 if [ ! -d "$dstdir" ]; then | |
153 defaultIFS=' | |
154 ' | |
155 IFS="${IFS-${defaultIFS}}" | |
156 | |
157 oIFS="${IFS}" | |
158 # Some sh's can't handle IFS=/ for some reason. | |
159 IFS='%' | |
160 set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` | |
161 IFS="${oIFS}" | |
162 | |
163 pathcomp='' | |
164 | |
165 while [ $# -ne 0 ] ; do | |
166 pathcomp="${pathcomp}${1}" | |
167 shift | |
168 | |
169 if [ ! -d "${pathcomp}" ] ; | |
170 then | |
171 $mkdirprog "${pathcomp}" | |
172 else | |
173 true | |
174 fi | |
175 | |
176 pathcomp="${pathcomp}/" | |
177 done | |
178 fi | |
179 | |
180 if [ x"$dir_arg" != x ] | |
181 then | |
182 $doit $instcmd $dst && | |
183 | |
184 if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && | |
185 if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && | |
186 if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && | |
187 if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi | |
188 else | |
189 | |
190 # If we're going to rename the final executable, determine the name now. | |
191 | |
192 if [ x"$transformarg" = x ] | |
193 then | |
194 dstfile=`basename $dst` | |
195 else | |
196 dstfile=`basename $dst $transformbasename | | |
197 sed $transformarg`$transformbasename | |
198 fi | |
199 | |
200 # don't allow the sed command to completely eliminate the filename | |
201 | |
202 if [ x"$dstfile" = x ] | |
203 then | |
204 dstfile=`basename $dst` | |
205 else | |
206 true | |
207 fi | |
208 | |
209 # Make a temp file name in the proper directory. | |
210 | |
211 dsttmp=$dstdir/#inst.$$# | |
212 | |
213 # Move or copy the file name to the temp name | |
214 | |
215 $doit $instcmd $src $dsttmp && | |
216 | |
217 trap "rm -f ${dsttmp}" 0 && | |
218 | |
219 # and set any options; do chmod last to preserve setuid bits | |
220 | |
221 # If any of these fail, we abort the whole thing. If we want to | |
222 # ignore errors from any of these, just make sure not to ignore | |
223 # errors from the above "$doit $instcmd $src $dsttmp" command. | |
224 | |
225 if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && | |
226 if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && | |
227 if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && | |
228 if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && | |
229 | |
230 # Now rename the file to the real destination. | |
231 | |
232 $doit $rmcmd -f $dstdir/$dstfile && | |
233 $doit $mvcmd $dsttmp $dstdir/$dstfile | |
234 | |
235 fi && | |
236 | |
237 | |
238 exit 0 |