Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(67)

Side by Side Diff: depcomp

Issue 2345493002: Uprev libmtp to 1.1.12 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/libmtp@master
Patch Set: Re-upload cl Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « configure.ac ('k') | doc/Makefile.in » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #! /bin/sh 1 #! /bin/sh
2 # depcomp - compile a program generating dependencies as side-effects 2 # depcomp - compile a program generating dependencies as side-effects
3 3
4 scriptversion=2011-12-04.11; # UTC 4 scriptversion=2013-05-30.07; # UTC
5 5
6 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, 6 # Copyright (C) 1999-2014 Free Software Foundation, Inc.
7 # 2011 Free Software Foundation, Inc.
8 7
9 # This program is free software; you can redistribute it and/or modify 8 # This program is free software; you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License as published by 9 # it under the terms of the GNU General Public License as published by
11 # the Free Software Foundation; either version 2, or (at your option) 10 # the Free Software Foundation; either version 2, or (at your option)
12 # any later version. 11 # any later version.
13 12
14 # This program is distributed in the hope that it will be useful, 13 # This program is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of 14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 # GNU General Public License for more details. 16 # GNU General Public License for more details.
18 17
19 # You should have received a copy of the GNU General Public License 18 # You should have received a copy of the GNU General Public License
20 # along with this program. If not, see <http://www.gnu.org/licenses/>. 19 # along with this program. If not, see <http://www.gnu.org/licenses/>.
21 20
22 # As a special exception to the GNU General Public License, if you 21 # As a special exception to the GNU General Public License, if you
23 # distribute this file as part of a program that contains a 22 # distribute this file as part of a program that contains a
24 # configuration script generated by Autoconf, you may include it under 23 # configuration script generated by Autoconf, you may include it under
25 # the same distribution terms that you use for the rest of that program. 24 # the same distribution terms that you use for the rest of that program.
26 25
27 # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. 26 # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
28 27
29 case $1 in 28 case $1 in
30 '') 29 '')
31 echo "$0: No command. Try \`$0 --help' for more information." 1>&2 30 echo "$0: No command. Try '$0 --help' for more information." 1>&2
32 exit 1; 31 exit 1;
33 ;; 32 ;;
34 -h | --h*) 33 -h | --h*)
35 cat <<\EOF 34 cat <<\EOF
36 Usage: depcomp [--help] [--version] PROGRAM [ARGS] 35 Usage: depcomp [--help] [--version] PROGRAM [ARGS]
37 36
38 Run PROGRAMS ARGS to compile a file, generating dependencies 37 Run PROGRAMS ARGS to compile a file, generating dependencies
39 as side-effects. 38 as side-effects.
40 39
41 Environment variables: 40 Environment variables:
42 depmode Dependency tracking mode. 41 depmode Dependency tracking mode.
43 source Source file read by `PROGRAMS ARGS'. 42 source Source file read by 'PROGRAMS ARGS'.
44 object Object file output by `PROGRAMS ARGS'. 43 object Object file output by 'PROGRAMS ARGS'.
45 DEPDIR directory where to store dependencies. 44 DEPDIR directory where to store dependencies.
46 depfile Dependency file to output. 45 depfile Dependency file to output.
47 tmpdepfile Temporary file to use when outputting dependencies. 46 tmpdepfile Temporary file to use when outputting dependencies.
48 libtool Whether libtool is used (yes/no). 47 libtool Whether libtool is used (yes/no).
49 48
50 Report bugs to <bug-automake@gnu.org>. 49 Report bugs to <bug-automake@gnu.org>.
51 EOF 50 EOF
52 exit $? 51 exit $?
53 ;; 52 ;;
54 -v | --v*) 53 -v | --v*)
55 echo "depcomp $scriptversion" 54 echo "depcomp $scriptversion"
56 exit $? 55 exit $?
57 ;; 56 ;;
58 esac 57 esac
59 58
59 # Get the directory component of the given path, and save it in the
60 # global variables '$dir'. Note that this directory component will
61 # be either empty or ending with a '/' character. This is deliberate.
62 set_dir_from ()
63 {
64 case $1 in
65 */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
66 *) dir=;;
67 esac
68 }
69
70 # Get the suffix-stripped basename of the given path, and save it the
71 # global variable '$base'.
72 set_base_from ()
73 {
74 base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
75 }
76
77 # If no dependency file was actually created by the compiler invocation,
78 # we still have to create a dummy depfile, to avoid errors with the
79 # Makefile "include basename.Plo" scheme.
80 make_dummy_depfile ()
81 {
82 echo "#dummy" > "$depfile"
83 }
84
85 # Factor out some common post-processing of the generated depfile.
86 # Requires the auxiliary global variable '$tmpdepfile' to be set.
87 aix_post_process_depfile ()
88 {
89 # If the compiler actually managed to produce a dependency file,
90 # post-process it.
91 if test -f "$tmpdepfile"; then
92 # Each line is of the form 'foo.o: dependency.h'.
93 # Do two passes, one to just change these to
94 # $object: dependency.h
95 # and one to simply output
96 # dependency.h:
97 # which is needed to avoid the deleted-header problem.
98 { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
99 sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
100 } > "$depfile"
101 rm -f "$tmpdepfile"
102 else
103 make_dummy_depfile
104 fi
105 }
106
107 # A tabulation character.
108 tab=' '
109 # A newline character.
110 nl='
111 '
112 # Character ranges might be problematic outside the C locale.
113 # These definitions help.
114 upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
115 lower=abcdefghijklmnopqrstuvwxyz
116 digits=0123456789
117 alpha=${upper}${lower}
118
60 if test -z "$depmode" || test -z "$source" || test -z "$object"; then 119 if test -z "$depmode" || test -z "$source" || test -z "$object"; then
61 echo "depcomp: Variables source, object and depmode must be set" 1>&2 120 echo "depcomp: Variables source, object and depmode must be set" 1>&2
62 exit 1 121 exit 1
63 fi 122 fi
64 123
65 # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. 124 # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
66 depfile=${depfile-`echo "$object" | 125 depfile=${depfile-`echo "$object" |
67 sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} 126 sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
68 tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} 127 tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
69 128
70 rm -f "$tmpdepfile" 129 rm -f "$tmpdepfile"
71 130
131 # Avoid interferences from the environment.
132 gccflag= dashmflag=
133
72 # Some modes work just like other modes, but use different flags. We 134 # Some modes work just like other modes, but use different flags. We
73 # parameterize here, but still list the modes in the big case below, 135 # parameterize here, but still list the modes in the big case below,
74 # to make depend.m4 easier to write. Note that we *cannot* use a case 136 # to make depend.m4 easier to write. Note that we *cannot* use a case
75 # here, because this file can only contain one case statement. 137 # here, because this file can only contain one case statement.
76 if test "$depmode" = hp; then 138 if test "$depmode" = hp; then
77 # HP compiler uses -M and no extra arg. 139 # HP compiler uses -M and no extra arg.
78 gccflag=-M 140 gccflag=-M
79 depmode=gcc 141 depmode=gcc
80 fi 142 fi
81 143
82 if test "$depmode" = dashXmstdout; then 144 if test "$depmode" = dashXmstdout; then
83 # This is just like dashmstdout with a different argument. 145 # This is just like dashmstdout with a different argument.
84 dashmflag=-xM 146 dashmflag=-xM
85 depmode=dashmstdout 147 depmode=dashmstdout
86 fi 148 fi
87 149
88 cygpath_u="cygpath -u -f -" 150 cygpath_u="cygpath -u -f -"
89 if test "$depmode" = msvcmsys; then 151 if test "$depmode" = msvcmsys; then
90 # This is just like msvisualcpp but w/o cygpath translation. 152 # This is just like msvisualcpp but w/o cygpath translation.
91 # Just convert the backslash-escaped backslashes to single forward 153 # Just convert the backslash-escaped backslashes to single forward
92 # slashes to satisfy depend.m4 154 # slashes to satisfy depend.m4
93 cygpath_u='sed s,\\\\,/,g' 155 cygpath_u='sed s,\\\\,/,g'
94 depmode=msvisualcpp 156 depmode=msvisualcpp
95 fi 157 fi
96 158
97 if test "$depmode" = msvc7msys; then 159 if test "$depmode" = msvc7msys; then
98 # This is just like msvc7 but w/o cygpath translation. 160 # This is just like msvc7 but w/o cygpath translation.
99 # Just convert the backslash-escaped backslashes to single forward 161 # Just convert the backslash-escaped backslashes to single forward
100 # slashes to satisfy depend.m4 162 # slashes to satisfy depend.m4
101 cygpath_u='sed s,\\\\,/,g' 163 cygpath_u='sed s,\\\\,/,g'
102 depmode=msvc7 164 depmode=msvc7
165 fi
166
167 if test "$depmode" = xlc; then
168 # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
169 gccflag=-qmakedep=gcc,-MF
170 depmode=gcc
103 fi 171 fi
104 172
105 case "$depmode" in 173 case "$depmode" in
106 gcc3) 174 gcc3)
107 ## gcc 3 implements dependency tracking that does exactly what 175 ## gcc 3 implements dependency tracking that does exactly what
108 ## we want. Yay! Note: for some reason libtool 1.4 doesn't like 176 ## we want. Yay! Note: for some reason libtool 1.4 doesn't like
109 ## it if -MD -MP comes after the -MF stuff. Hmm. 177 ## it if -MD -MP comes after the -MF stuff. Hmm.
110 ## Unfortunately, FreeBSD c89 acceptance of flags depends upon 178 ## Unfortunately, FreeBSD c89 acceptance of flags depends upon
111 ## the command line argument order; so add the flags where they 179 ## the command line argument order; so add the flags where they
112 ## appear in depend2.am. Note that the slowdown incurred here 180 ## appear in depend2.am. Note that the slowdown incurred here
113 ## affects only configure: in makefiles, %FASTDEP% shortcuts this. 181 ## affects only configure: in makefiles, %FASTDEP% shortcuts this.
114 for arg 182 for arg
115 do 183 do
116 case $arg in 184 case $arg in
117 -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; 185 -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
118 *) set fnord "$@" "$arg" ;; 186 *) set fnord "$@" "$arg" ;;
119 esac 187 esac
120 shift # fnord 188 shift # fnord
121 shift # $arg 189 shift # $arg
122 done 190 done
123 "$@" 191 "$@"
124 stat=$? 192 stat=$?
125 if test $stat -eq 0; then : 193 if test $stat -ne 0; then
126 else
127 rm -f "$tmpdepfile" 194 rm -f "$tmpdepfile"
128 exit $stat 195 exit $stat
129 fi 196 fi
130 mv "$tmpdepfile" "$depfile" 197 mv "$tmpdepfile" "$depfile"
131 ;; 198 ;;
132 199
133 gcc) 200 gcc)
201 ## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
202 ## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
203 ## (see the conditional assignment to $gccflag above).
134 ## There are various ways to get dependency output from gcc. Here's 204 ## There are various ways to get dependency output from gcc. Here's
135 ## why we pick this rather obscure method: 205 ## why we pick this rather obscure method:
136 ## - Don't want to use -MD because we'd like the dependencies to end 206 ## - Don't want to use -MD because we'd like the dependencies to end
137 ## up in a subdir. Having to rename by hand is ugly. 207 ## up in a subdir. Having to rename by hand is ugly.
138 ## (We might end up doing this anyway to support other compilers.) 208 ## (We might end up doing this anyway to support other compilers.)
139 ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like 209 ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
140 ## -MM, not -M (despite what the docs say). 210 ## -MM, not -M (despite what the docs say). Also, it might not be
211 ## supported by the other compilers which use the 'gcc' depmode.
141 ## - Using -M directly means running the compiler twice (even worse 212 ## - Using -M directly means running the compiler twice (even worse
142 ## than renaming). 213 ## than renaming).
143 if test -z "$gccflag"; then 214 if test -z "$gccflag"; then
144 gccflag=-MD, 215 gccflag=-MD,
145 fi 216 fi
146 "$@" -Wp,"$gccflag$tmpdepfile" 217 "$@" -Wp,"$gccflag$tmpdepfile"
147 stat=$? 218 stat=$?
148 if test $stat -eq 0; then : 219 if test $stat -ne 0; then
149 else
150 rm -f "$tmpdepfile" 220 rm -f "$tmpdepfile"
151 exit $stat 221 exit $stat
152 fi 222 fi
153 rm -f "$depfile" 223 rm -f "$depfile"
154 echo "$object : \\" > "$depfile" 224 echo "$object : \\" > "$depfile"
155 alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 225 # The second -e expression handles DOS-style file names with drive
156 ## The second -e expression handles DOS-style file names with drive letters. 226 # letters.
157 sed -e 's/^[^:]*: / /' \ 227 sed -e 's/^[^:]*: / /' \
158 -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" 228 -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
159 ## This next piece of magic avoids the `deleted header file' problem. 229 ## This next piece of magic avoids the "deleted header file" problem.
160 ## The problem is that when a header file which appears in a .P file 230 ## The problem is that when a header file which appears in a .P file
161 ## is deleted, the dependency causes make to die (because there is 231 ## is deleted, the dependency causes make to die (because there is
162 ## typically no way to rebuild the header). We avoid this by adding 232 ## typically no way to rebuild the header). We avoid this by adding
163 ## dummy dependencies for each header file. Too bad gcc doesn't do 233 ## dummy dependencies for each header file. Too bad gcc doesn't do
164 ## this for us directly. 234 ## this for us directly.
165 tr ' ' ' 235 ## Some versions of gcc put a space before the ':'. On the theory
166 ' < "$tmpdepfile" |
167 ## Some versions of gcc put a space before the `:'. On the theory
168 ## that the space means something, we add a space to the output as 236 ## that the space means something, we add a space to the output as
169 ## well. hp depmode also adds that space, but also prefixes the VPATH 237 ## well. hp depmode also adds that space, but also prefixes the VPATH
170 ## to the object. Take care to not repeat it in the output. 238 ## to the object. Take care to not repeat it in the output.
171 ## Some versions of the HPUX 10.20 sed can't process this invocation 239 ## Some versions of the HPUX 10.20 sed can't process this invocation
172 ## correctly. Breaking it into two sed invocations is a workaround. 240 ## correctly. Breaking it into two sed invocations is a workaround.
173 sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ 241 tr ' ' "$nl" < "$tmpdepfile" \
174 | sed -e 's/$/ :/' >> "$depfile" 242 | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
243 | sed -e 's/$/ :/' >> "$depfile"
175 rm -f "$tmpdepfile" 244 rm -f "$tmpdepfile"
176 ;; 245 ;;
177 246
178 hp) 247 hp)
179 # This case exists only to let depend.m4 do its work. It works by 248 # This case exists only to let depend.m4 do its work. It works by
180 # looking at the text of this script. This case will never be run, 249 # looking at the text of this script. This case will never be run,
181 # since it is checked for above. 250 # since it is checked for above.
182 exit 1 251 exit 1
183 ;; 252 ;;
184 253
185 sgi) 254 sgi)
186 if test "$libtool" = yes; then 255 if test "$libtool" = yes; then
187 "$@" "-Wp,-MDupdate,$tmpdepfile" 256 "$@" "-Wp,-MDupdate,$tmpdepfile"
188 else 257 else
189 "$@" -MDupdate "$tmpdepfile" 258 "$@" -MDupdate "$tmpdepfile"
190 fi 259 fi
191 stat=$? 260 stat=$?
192 if test $stat -eq 0; then : 261 if test $stat -ne 0; then
193 else
194 rm -f "$tmpdepfile" 262 rm -f "$tmpdepfile"
195 exit $stat 263 exit $stat
196 fi 264 fi
197 rm -f "$depfile" 265 rm -f "$depfile"
198 266
199 if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files 267 if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
200 echo "$object : \\" > "$depfile" 268 echo "$object : \\" > "$depfile"
201
202 # Clip off the initial element (the dependent). Don't try to be 269 # Clip off the initial element (the dependent). Don't try to be
203 # clever and replace this with sed code, as IRIX sed won't handle 270 # clever and replace this with sed code, as IRIX sed won't handle
204 # lines with more than a fixed number of characters (4096 in 271 # lines with more than a fixed number of characters (4096 in
205 # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; 272 # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
206 # the IRIX cc adds comments like `#:fec' to the end of the 273 # the IRIX cc adds comments like '#:fec' to the end of the
207 # dependency line. 274 # dependency line.
208 tr ' ' ' 275 tr ' ' "$nl" < "$tmpdepfile" \
209 ' < "$tmpdepfile" \ 276 | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
210 | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ 277 | tr "$nl" ' ' >> "$depfile"
211 tr '
212 ' ' ' >> "$depfile"
213 echo >> "$depfile" 278 echo >> "$depfile"
214
215 # The second pass generates a dummy entry for each header file. 279 # The second pass generates a dummy entry for each header file.
216 tr ' ' ' 280 tr ' ' "$nl" < "$tmpdepfile" \
217 ' < "$tmpdepfile" \ 281 | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
218 | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ 282 >> "$depfile"
219 >> "$depfile"
220 else 283 else
221 # The sourcefile does not contain any dependencies, so just 284 make_dummy_depfile
222 # store a dummy comment line, to avoid errors with the Makefile
223 # "include basename.Plo" scheme.
224 echo "#dummy" > "$depfile"
225 fi 285 fi
226 rm -f "$tmpdepfile" 286 rm -f "$tmpdepfile"
227 ;; 287 ;;
228 288
289 xlc)
290 # This case exists only to let depend.m4 do its work. It works by
291 # looking at the text of this script. This case will never be run,
292 # since it is checked for above.
293 exit 1
294 ;;
295
229 aix) 296 aix)
230 # The C for AIX Compiler uses -M and outputs the dependencies 297 # The C for AIX Compiler uses -M and outputs the dependencies
231 # in a .u file. In older versions, this file always lives in the 298 # in a .u file. In older versions, this file always lives in the
232 # current directory. Also, the AIX compiler puts `$object:' at the 299 # current directory. Also, the AIX compiler puts '$object:' at the
233 # start of each line; $object doesn't have directory information. 300 # start of each line; $object doesn't have directory information.
234 # Version 6 uses the directory in both cases. 301 # Version 6 uses the directory in both cases.
235 dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` 302 set_dir_from "$object"
236 test "x$dir" = "x$object" && dir= 303 set_base_from "$object"
237 base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
238 if test "$libtool" = yes; then 304 if test "$libtool" = yes; then
239 tmpdepfile1=$dir$base.u 305 tmpdepfile1=$dir$base.u
240 tmpdepfile2=$base.u 306 tmpdepfile2=$base.u
241 tmpdepfile3=$dir.libs/$base.u 307 tmpdepfile3=$dir.libs/$base.u
242 "$@" -Wc,-M 308 "$@" -Wc,-M
243 else 309 else
244 tmpdepfile1=$dir$base.u 310 tmpdepfile1=$dir$base.u
245 tmpdepfile2=$dir$base.u 311 tmpdepfile2=$dir$base.u
246 tmpdepfile3=$dir$base.u 312 tmpdepfile3=$dir$base.u
247 "$@" -M 313 "$@" -M
248 fi 314 fi
249 stat=$? 315 stat=$?
250 316 if test $stat -ne 0; then
251 if test $stat -eq 0; then :
252 else
253 rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" 317 rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
254 exit $stat 318 exit $stat
255 fi 319 fi
256 320
257 for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" 321 for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
258 do 322 do
259 test -f "$tmpdepfile" && break 323 test -f "$tmpdepfile" && break
260 done 324 done
261 if test -f "$tmpdepfile"; then 325 aix_post_process_depfile
262 # Each line is of the form `foo.o: dependent.h'. 326 ;;
263 # Do two passes, one to just change these to 327
264 # `$object: dependent.h' and one to simply `dependent.h:'. 328 tcc)
265 sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" 329 # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
266 # That's a tab and a space in the []. 330 # FIXME: That version still under development at the moment of writing.
267 sed -e 's,^.*\.[a-z]*:[» ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" 331 # Make that this statement remains true also for stable, released
268 else 332 # versions.
269 # The sourcefile does not contain any dependencies, so just 333 # It will wrap lines (doesn't matter whether long or short) with a
270 # store a dummy comment line, to avoid errors with the Makefile 334 # trailing '\', as in:
271 # "include basename.Plo" scheme. 335 #
272 echo "#dummy" > "$depfile" 336 # foo.o : \
337 # foo.c \
338 # foo.h \
339 #
340 # It will put a trailing '\' even on the last line, and will use leading
341 # spaces rather than leading tabs (at least since its commit 0394caf7
342 # "Emit spaces for -MD").
343 "$@" -MD -MF "$tmpdepfile"
344 stat=$?
345 if test $stat -ne 0; then
346 rm -f "$tmpdepfile"
347 exit $stat
273 fi 348 fi
349 rm -f "$depfile"
350 # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
351 # We have to change lines of the first kind to '$object: \'.
352 sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
353 # And for each line of the second kind, we have to emit a 'dep.h:'
354 # dummy dependency, to avoid the deleted-header problem.
355 sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
274 rm -f "$tmpdepfile" 356 rm -f "$tmpdepfile"
275 ;; 357 ;;
276 358
277 icc) 359 ## The order of this option in the case statement is important, since the
278 # Intel's C compiler understands `-MD -MF file'. However on 360 ## shell code in configure will try each of these formats in the order
279 # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c 361 ## listed in this file. A plain '-MD' option would be understood by many
280 # ICC 7.0 will fill foo.d with something like 362 ## compilers, so we must ensure this comes after the gcc and icc options.
281 # foo.o: sub/foo.c 363 pgcc)
282 # foo.o: sub/foo.h 364 # Portland's C compiler understands '-MD'.
283 # which is wrong. We want: 365 # Will always output deps to 'file.d' where file is the root name of the
284 # sub/foo.o: sub/foo.c 366 # source file under compilation, even if file resides in a subdirectory.
285 # sub/foo.o: sub/foo.h 367 # The object file name does not affect the name of the '.d' file.
286 # sub/foo.c: 368 # pgcc 10.2 will output
287 # sub/foo.h:
288 # ICC 7.1 will output
289 # foo.o: sub/foo.c sub/foo.h 369 # foo.o: sub/foo.c sub/foo.h
290 # and will wrap long lines using \ : 370 # and will wrap long lines using '\' :
291 # foo.o: sub/foo.c ... \ 371 # foo.o: sub/foo.c ... \
292 # sub/foo.h ... \ 372 # sub/foo.h ... \
293 # ... 373 # ...
374 set_dir_from "$object"
375 # Use the source, not the object, to determine the base name, since
376 # that's sadly what pgcc will do too.
377 set_base_from "$source"
378 tmpdepfile=$base.d
294 379
295 "$@" -MD -MF "$tmpdepfile" 380 # For projects that build the same source file twice into different object
296 stat=$? 381 # files, the pgcc approach of using the *source* file root name can cause
297 if test $stat -eq 0; then : 382 # problems in parallel builds. Use a locking strategy to avoid stomping on
298 else 383 # the same $tmpdepfile.
384 lockdir=$base.d-lock
385 trap "
386 echo '$0: caught signal, cleaning up...' >&2
387 rmdir '$lockdir'
388 exit 1
389 " 1 2 13 15
390 numtries=100
391 i=$numtries
392 while test $i -gt 0; do
393 # mkdir is a portable test-and-set.
394 if mkdir "$lockdir" 2>/dev/null; then
395 # This process acquired the lock.
396 "$@" -MD
397 stat=$?
398 # Release the lock.
399 rmdir "$lockdir"
400 break
401 else
402 # If the lock is being held by a different process, wait
403 # until the winning process is done or we timeout.
404 while test -d "$lockdir" && test $i -gt 0; do
405 sleep 1
406 i=`expr $i - 1`
407 done
408 fi
409 i=`expr $i - 1`
410 done
411 trap - 1 2 13 15
412 if test $i -le 0; then
413 echo "$0: failed to acquire lock after $numtries attempts" >&2
414 echo "$0: check lockdir '$lockdir'" >&2
415 exit 1
416 fi
417
418 if test $stat -ne 0; then
299 rm -f "$tmpdepfile" 419 rm -f "$tmpdepfile"
300 exit $stat 420 exit $stat
301 fi 421 fi
302 rm -f "$depfile" 422 rm -f "$depfile"
303 # Each line is of the form `foo.o: dependent.h', 423 # Each line is of the form `foo.o: dependent.h',
304 # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. 424 # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
305 # Do two passes, one to just change these to 425 # Do two passes, one to just change these to
306 # `$object: dependent.h' and one to simply `dependent.h:'. 426 # `$object: dependent.h' and one to simply `dependent.h:'.
307 sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" 427 sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
308 # Some versions of the HPUX 10.20 sed can't process this invocation 428 # Some versions of the HPUX 10.20 sed can't process this invocation
309 # correctly. Breaking it into two sed invocations is a workaround. 429 # correctly. Breaking it into two sed invocations is a workaround.
310 sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | 430 sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
311 sed -e 's/$/ :/' >> "$depfile" 431 | sed -e 's/$/ :/' >> "$depfile"
312 rm -f "$tmpdepfile" 432 rm -f "$tmpdepfile"
313 ;; 433 ;;
314 434
315 hp2) 435 hp2)
316 # The "hp" stanza above does not work with aCC (C++) and HP's ia64 436 # The "hp" stanza above does not work with aCC (C++) and HP's ia64
317 # compilers, which have integrated preprocessors. The correct option 437 # compilers, which have integrated preprocessors. The correct option
318 # to use with these is +Maked; it writes dependencies to a file named 438 # to use with these is +Maked; it writes dependencies to a file named
319 # 'foo.d', which lands next to the object file, wherever that 439 # 'foo.d', which lands next to the object file, wherever that
320 # happens to be. 440 # happens to be.
321 # Much of this is similar to the tru64 case; see comments there. 441 # Much of this is similar to the tru64 case; see comments there.
322 dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` 442 set_dir_from "$object"
323 test "x$dir" = "x$object" && dir= 443 set_base_from "$object"
324 base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
325 if test "$libtool" = yes; then 444 if test "$libtool" = yes; then
326 tmpdepfile1=$dir$base.d 445 tmpdepfile1=$dir$base.d
327 tmpdepfile2=$dir.libs/$base.d 446 tmpdepfile2=$dir.libs/$base.d
328 "$@" -Wc,+Maked 447 "$@" -Wc,+Maked
329 else 448 else
330 tmpdepfile1=$dir$base.d 449 tmpdepfile1=$dir$base.d
331 tmpdepfile2=$dir$base.d 450 tmpdepfile2=$dir$base.d
332 "$@" +Maked 451 "$@" +Maked
333 fi 452 fi
334 stat=$? 453 stat=$?
335 if test $stat -eq 0; then : 454 if test $stat -ne 0; then
336 else
337 rm -f "$tmpdepfile1" "$tmpdepfile2" 455 rm -f "$tmpdepfile1" "$tmpdepfile2"
338 exit $stat 456 exit $stat
339 fi 457 fi
340 458
341 for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" 459 for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
342 do 460 do
343 test -f "$tmpdepfile" && break 461 test -f "$tmpdepfile" && break
344 done 462 done
345 if test -f "$tmpdepfile"; then 463 if test -f "$tmpdepfile"; then
346 sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" 464 sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
347 # Add `dependent.h:' lines. 465 # Add 'dependent.h:' lines.
348 sed -ne '2,${ 466 sed -ne '2,${
349 » s/^ *// 467 s/^ *//
350 » s/ \\*$// 468 s/ \\*$//
351 » s/$/:/ 469 s/$/:/
352 » p 470 p
353 » }' "$tmpdepfile" >> "$depfile" 471 }' "$tmpdepfile" >> "$depfile"
354 else 472 else
355 echo "#dummy" > "$depfile" 473 make_dummy_depfile
356 fi 474 fi
357 rm -f "$tmpdepfile" "$tmpdepfile2" 475 rm -f "$tmpdepfile" "$tmpdepfile2"
358 ;; 476 ;;
359 477
360 tru64) 478 tru64)
361 # The Tru64 compiler uses -MD to generate dependencies as a side 479 # The Tru64 compiler uses -MD to generate dependencies as a side
362 # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. 480 # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
363 # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put 481 # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
364 # dependencies in `foo.d' instead, so we check for that too. 482 # dependencies in 'foo.d' instead, so we check for that too.
365 # Subdirectories are respected. 483 # Subdirectories are respected.
366 dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` 484 set_dir_from "$object"
367 test "x$dir" = "x$object" && dir= 485 set_base_from "$object"
368 base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
369 486
370 if test "$libtool" = yes; then 487 if test "$libtool" = yes; then
371 # With Tru64 cc, shared objects can also be used to make a 488 # Libtool generates 2 separate objects for the 2 libraries. These
372 # static library. This mechanism is used in libtool 1.4 series to 489 # two compilations output dependencies in $dir.libs/$base.o.d and
373 # handle both shared and static libraries in a single compilation. 490 # in $dir$base.o.d. We have to check for both files, because
374 # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. 491 # one of the two compilations can be disabled. We should prefer
375 # 492 # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
376 # With libtool 1.5 this exception was removed, and libtool now 493 # automatically cleaned when .libs/ is deleted, while ignoring
377 # generates 2 separate objects for the 2 libraries. These two 494 # the former would cause a distcleancheck panic.
378 # compilations output dependencies in $dir.libs/$base.o.d and 495 tmpdepfile1=$dir$base.o.d # libtool 1.5
379 # in $dir$base.o.d. We have to check for both files, because 496 tmpdepfile2=$dir.libs/$base.o.d # Likewise.
380 # one of the two compilations can be disabled. We should prefer 497 tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
381 # $dir$base.o.d over $dir.libs/$base.o.d because the latter is 498 "$@" -Wc,-MD
382 # automatically cleaned when .libs/ is deleted, while ignoring 499 else
383 # the former would cause a distcleancheck panic. 500 tmpdepfile1=$dir$base.d
384 tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 501 tmpdepfile2=$dir$base.d
385 tmpdepfile2=$dir$base.o.d # libtool 1.5 502 tmpdepfile3=$dir$base.d
386 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 503 "$@" -MD
387 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 504 fi
388 "$@" -Wc,-MD
389 else
390 tmpdepfile1=$dir$base.o.d
391 tmpdepfile2=$dir$base.d
392 tmpdepfile3=$dir$base.d
393 tmpdepfile4=$dir$base.d
394 "$@" -MD
395 fi
396 505
397 stat=$? 506 stat=$?
398 if test $stat -eq 0; then : 507 if test $stat -ne 0; then
399 else 508 rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
400 rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" 509 exit $stat
401 exit $stat 510 fi
402 fi
403 511
404 for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" 512 for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
405 do 513 do
406 test -f "$tmpdepfile" && break 514 test -f "$tmpdepfile" && break
407 done 515 done
408 if test -f "$tmpdepfile"; then 516 # Same post-processing that is required for AIX mode.
409 sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" 517 aix_post_process_depfile
410 # That's a tab and a space in the []. 518 ;;
411 sed -e 's,^.*\.[a-z]*:[» ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
412 else
413 echo "#dummy" > "$depfile"
414 fi
415 rm -f "$tmpdepfile"
416 ;;
417 519
418 msvc7) 520 msvc7)
419 if test "$libtool" = yes; then 521 if test "$libtool" = yes; then
420 showIncludes=-Wc,-showIncludes 522 showIncludes=-Wc,-showIncludes
421 else 523 else
422 showIncludes=-showIncludes 524 showIncludes=-showIncludes
423 fi 525 fi
424 "$@" $showIncludes > "$tmpdepfile" 526 "$@" $showIncludes > "$tmpdepfile"
425 stat=$? 527 stat=$?
426 grep -v '^Note: including file: ' "$tmpdepfile" 528 grep -v '^Note: including file: ' "$tmpdepfile"
427 if test "$stat" = 0; then : 529 if test $stat -ne 0; then
428 else
429 rm -f "$tmpdepfile" 530 rm -f "$tmpdepfile"
430 exit $stat 531 exit $stat
431 fi 532 fi
432 rm -f "$depfile" 533 rm -f "$depfile"
433 echo "$object : \\" > "$depfile" 534 echo "$object : \\" > "$depfile"
434 # The first sed program below extracts the file names and escapes 535 # The first sed program below extracts the file names and escapes
435 # backslashes for cygpath. The second sed program outputs the file 536 # backslashes for cygpath. The second sed program outputs the file
436 # name when reading, but also accumulates all include files in the 537 # name when reading, but also accumulates all include files in the
437 # hold buffer in order to output them again at the end. This only 538 # hold buffer in order to output them again at the end. This only
438 # works with sed implementations that can handle large buffers. 539 # works with sed implementations that can handle large buffers.
439 sed < "$tmpdepfile" -n ' 540 sed < "$tmpdepfile" -n '
440 /^Note: including file: *\(.*\)/ { 541 /^Note: including file: *\(.*\)/ {
441 s//\1/ 542 s//\1/
442 s/\\/\\\\/g 543 s/\\/\\\\/g
443 p 544 p
444 }' | $cygpath_u | sort -u | sed -n ' 545 }' | $cygpath_u | sort -u | sed -n '
445 s/ /\\ /g 546 s/ /\\ /g
446 s/\(.*\)/» \1 \\/p 547 s/\(.*\)/'"$tab"'\1 \\/p
447 s/.\(.*\) \\/\1:/ 548 s/.\(.*\) \\/\1:/
448 H 549 H
449 $ { 550 $ {
450 s/.*/»/ 551 s/.*/'"$tab"'/
451 G 552 G
452 p 553 p
453 }' >> "$depfile" 554 }' >> "$depfile"
555 echo >> "$depfile" # make sure the fragment doesn't end with a backslash
454 rm -f "$tmpdepfile" 556 rm -f "$tmpdepfile"
455 ;; 557 ;;
456 558
457 msvc7msys) 559 msvc7msys)
458 # This case exists only to let depend.m4 do its work. It works by 560 # This case exists only to let depend.m4 do its work. It works by
459 # looking at the text of this script. This case will never be run, 561 # looking at the text of this script. This case will never be run,
460 # since it is checked for above. 562 # since it is checked for above.
461 exit 1 563 exit 1
462 ;; 564 ;;
463 565
464 #nosideeffect) 566 #nosideeffect)
465 # This comment above is used by automake to tell side-effect 567 # This comment above is used by automake to tell side-effect
466 # dependency tracking mechanisms from slower ones. 568 # dependency tracking mechanisms from slower ones.
467 569
468 dashmstdout) 570 dashmstdout)
469 # Important note: in order to support this mode, a compiler *must* 571 # Important note: in order to support this mode, a compiler *must*
470 # always write the preprocessed file to stdout, regardless of -o. 572 # always write the preprocessed file to stdout, regardless of -o.
471 "$@" || exit $? 573 "$@" || exit $?
472 574
473 # Remove the call to Libtool. 575 # Remove the call to Libtool.
474 if test "$libtool" = yes; then 576 if test "$libtool" = yes; then
475 while test "X$1" != 'X--mode=compile'; do 577 while test "X$1" != 'X--mode=compile'; do
476 shift 578 shift
477 done 579 done
478 shift 580 shift
479 fi 581 fi
480 582
481 # Remove `-o $object'. 583 # Remove '-o $object'.
482 IFS=" " 584 IFS=" "
483 for arg 585 for arg
484 do 586 do
485 case $arg in 587 case $arg in
486 -o) 588 -o)
487 shift 589 shift
488 ;; 590 ;;
489 $object) 591 $object)
490 shift 592 shift
491 ;; 593 ;;
492 *) 594 *)
493 set fnord "$@" "$arg" 595 set fnord "$@" "$arg"
494 shift # fnord 596 shift # fnord
495 shift # $arg 597 shift # $arg
496 ;; 598 ;;
497 esac 599 esac
498 done 600 done
499 601
500 test -z "$dashmflag" && dashmflag=-M 602 test -z "$dashmflag" && dashmflag=-M
501 # Require at least two characters before searching for `:' 603 # Require at least two characters before searching for ':'
502 # in the target name. This is to cope with DOS-style filenames: 604 # in the target name. This is to cope with DOS-style filenames:
503 # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. 605 # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
504 "$@" $dashmflag | 606 "$@" $dashmflag |
505 sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" 607 sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
506 rm -f "$depfile" 608 rm -f "$depfile"
507 cat < "$tmpdepfile" > "$depfile" 609 cat < "$tmpdepfile" > "$depfile"
508 tr ' ' ' 610 # Some versions of the HPUX 10.20 sed can't process this sed invocation
509 ' < "$tmpdepfile" | \ 611 # correctly. Breaking it into two sed invocations is a workaround.
510 ## Some versions of the HPUX 10.20 sed can't process this invocation 612 tr ' ' "$nl" < "$tmpdepfile" \
511 ## correctly. Breaking it into two sed invocations is a workaround. 613 | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
512 sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" 614 | sed -e 's/$/ :/' >> "$depfile"
513 rm -f "$tmpdepfile" 615 rm -f "$tmpdepfile"
514 ;; 616 ;;
515 617
516 dashXmstdout) 618 dashXmstdout)
517 # This case only exists to satisfy depend.m4. It is never actually 619 # This case only exists to satisfy depend.m4. It is never actually
518 # run, as this mode is specially recognized in the preamble. 620 # run, as this mode is specially recognized in the preamble.
519 exit 1 621 exit 1
520 ;; 622 ;;
521 623
522 makedepend) 624 makedepend)
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
555 set fnord "$@" "$arg"; shift ;; 657 set fnord "$@" "$arg"; shift ;;
556 esac 658 esac
557 done 659 done
558 obj_suffix=`echo "$object" | sed 's/^.*\././'` 660 obj_suffix=`echo "$object" | sed 's/^.*\././'`
559 touch "$tmpdepfile" 661 touch "$tmpdepfile"
560 ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" 662 ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
561 rm -f "$depfile" 663 rm -f "$depfile"
562 # makedepend may prepend the VPATH from the source file name to the object. 664 # makedepend may prepend the VPATH from the source file name to the object.
563 # No need to regex-escape $object, excess matching of '.' is harmless. 665 # No need to regex-escape $object, excess matching of '.' is harmless.
564 sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" 666 sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
565 sed '1,2d' "$tmpdepfile" | tr ' ' ' 667 # Some versions of the HPUX 10.20 sed can't process the last invocation
566 ' | \ 668 # correctly. Breaking it into two sed invocations is a workaround.
567 ## Some versions of the HPUX 10.20 sed can't process this invocation 669 sed '1,2d' "$tmpdepfile" \
568 ## correctly. Breaking it into two sed invocations is a workaround. 670 | tr ' ' "$nl" \
569 sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" 671 | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
672 | sed -e 's/$/ :/' >> "$depfile"
570 rm -f "$tmpdepfile" "$tmpdepfile".bak 673 rm -f "$tmpdepfile" "$tmpdepfile".bak
571 ;; 674 ;;
572 675
573 cpp) 676 cpp)
574 # Important note: in order to support this mode, a compiler *must* 677 # Important note: in order to support this mode, a compiler *must*
575 # always write the preprocessed file to stdout. 678 # always write the preprocessed file to stdout.
576 "$@" || exit $? 679 "$@" || exit $?
577 680
578 # Remove the call to Libtool. 681 # Remove the call to Libtool.
579 if test "$libtool" = yes; then 682 if test "$libtool" = yes; then
580 while test "X$1" != 'X--mode=compile'; do 683 while test "X$1" != 'X--mode=compile'; do
581 shift 684 shift
582 done 685 done
583 shift 686 shift
584 fi 687 fi
585 688
586 # Remove `-o $object'. 689 # Remove '-o $object'.
587 IFS=" " 690 IFS=" "
588 for arg 691 for arg
589 do 692 do
590 case $arg in 693 case $arg in
591 -o) 694 -o)
592 shift 695 shift
593 ;; 696 ;;
594 $object) 697 $object)
595 shift 698 shift
596 ;; 699 ;;
597 *) 700 *)
598 set fnord "$@" "$arg" 701 set fnord "$@" "$arg"
599 shift # fnord 702 shift # fnord
600 shift # $arg 703 shift # $arg
601 ;; 704 ;;
602 esac 705 esac
603 done 706 done
604 707
605 "$@" -E | 708 "$@" -E \
606 sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ 709 | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
607 -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | 710 -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
608 sed '$ s: \\$::' > "$tmpdepfile" 711 | sed '$ s: \\$::' > "$tmpdepfile"
609 rm -f "$depfile" 712 rm -f "$depfile"
610 echo "$object : \\" > "$depfile" 713 echo "$object : \\" > "$depfile"
611 cat < "$tmpdepfile" >> "$depfile" 714 cat < "$tmpdepfile" >> "$depfile"
612 sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" 715 sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
613 rm -f "$tmpdepfile" 716 rm -f "$tmpdepfile"
614 ;; 717 ;;
615 718
616 msvisualcpp) 719 msvisualcpp)
617 # Important note: in order to support this mode, a compiler *must* 720 # Important note: in order to support this mode, a compiler *must*
618 # always write the preprocessed file to stdout. 721 # always write the preprocessed file to stdout.
(...skipping 11 matching lines...) Expand all
630 for arg 733 for arg
631 do 734 do
632 case "$arg" in 735 case "$arg" in
633 -o) 736 -o)
634 shift 737 shift
635 ;; 738 ;;
636 $object) 739 $object)
637 shift 740 shift
638 ;; 741 ;;
639 "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") 742 "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
640 » set fnord "$@" 743 set fnord "$@"
641 » shift 744 shift
642 » shift 745 shift
643 » ;; 746 ;;
644 *) 747 *)
645 » set fnord "$@" "$arg" 748 set fnord "$@" "$arg"
646 » shift 749 shift
647 » shift 750 shift
648 » ;; 751 ;;
649 esac 752 esac
650 done 753 done
651 "$@" -E 2>/dev/null | 754 "$@" -E 2>/dev/null |
652 sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$t mpdepfile" 755 sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$t mpdepfile"
653 rm -f "$depfile" 756 rm -f "$depfile"
654 echo "$object : \\" > "$depfile" 757 echo "$object : \\" > "$depfile"
655 sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::» \1 \\:p' >> "$de pfile" 758 sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$ depfile"
656 echo "» " >> "$depfile" 759 echo "$tab" >> "$depfile"
657 sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" 760 sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
658 rm -f "$tmpdepfile" 761 rm -f "$tmpdepfile"
659 ;; 762 ;;
660 763
661 msvcmsys) 764 msvcmsys)
662 # This case exists only to let depend.m4 do its work. It works by 765 # This case exists only to let depend.m4 do its work. It works by
663 # looking at the text of this script. This case will never be run, 766 # looking at the text of this script. This case will never be run,
664 # since it is checked for above. 767 # since it is checked for above.
665 exit 1 768 exit 1
666 ;; 769 ;;
(...skipping 12 matching lines...) Expand all
679 782
680 # Local Variables: 783 # Local Variables:
681 # mode: shell-script 784 # mode: shell-script
682 # sh-indentation: 2 785 # sh-indentation: 2
683 # eval: (add-hook 'write-file-hooks 'time-stamp) 786 # eval: (add-hook 'write-file-hooks 'time-stamp)
684 # time-stamp-start: "scriptversion=" 787 # time-stamp-start: "scriptversion="
685 # time-stamp-format: "%:y-%02m-%02d.%02H" 788 # time-stamp-format: "%:y-%02m-%02d.%02H"
686 # time-stamp-time-zone: "UTC" 789 # time-stamp-time-zone: "UTC"
687 # time-stamp-end: "; # UTC" 790 # time-stamp-end: "; # UTC"
688 # End: 791 # End:
OLDNEW
« no previous file with comments | « configure.ac ('k') | doc/Makefile.in » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698