Error Buddy
Do you have an error message from your application? Then find the answer with Error Buddy. You can search over 40000 source code files and troubleshooting documents using our beta lucene/nutch search interface or if you prefer, search as normal using google. With LXR technology you can drill right down into the line of source code where it came from with full cross-referencing.
If after searching you didn't get your ideal answer, or you are still unclear what the error means, you can choose to post that question to the community forums following the link included in the search results.
[1.6]001 #! /bin/sh 002 003 # depcomp - compile a program generating dependencies as side-effects 004 # Copyright 1999, 2000 Free Software Foundation, Inc. 005 006 # This program is free software; you can redistribute it and/or modify 007 # it under the terms of the GNU General Public License as published by 008 # the Free Software Foundation; either version 2, or (at your option) 009 # any later version. 010 011 # This program is distributed in the hope that it will be useful, 012 # but WITHOUT ANY WARRANTY; without even the implied warranty of 013 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 014 # GNU General Public License for more details. 015 016 # You should have received a copy of the GNU General Public License 017 # along with this program; if not, write to the Free Software 018 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 019 # 02111-1307, USA. 020 021 # As a special exception to the GNU General Public License, if you 022 # distribute this file as part of a program that contains a 023 # configuration script generated by Autoconf, you may include it under 024 # the same distribution terms that you use for the rest of that program. 025 026 # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. 027 028 if test -z "$depmode" || test -z "$source" || test -z "$object"; then 029 echo "depcomp: Variables source, object and depmode must be set" 1>&2 030 exit 1 031 fi 032 # `libtool' can also be set to `yes' or `no'. 033 034 if test -z "$depfile"; then 035 base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'` 036 dir=`echo "$object" | sed 's,/.*$,/,'` 037 if test "$dir" = "$object"; then 038 dir= 039 fi 040 # FIXME: should be _deps on DOS. 041 depfile="$dir.deps/$base" 042 fi 043 044 tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} 045 046 rm -f "$tmpdepfile" 047 048 # Some modes work just like other modes, but use different flags. We 049 # parameterize here, but still list the modes in the big case below, 050 # to make depend.m4 easier to write. Note that we *cannot* use a case 051 # here, because this file can only contain one case statement. 052 if test "$depmode" = hp; then 053 # HP compiler uses -M and no extra arg. 054 gccflag=-M 055 depmode=gcc 056 fi 057 058 if test "$depmode" = dashXmstdout; then 059 # This is just like dashmstdout with a different argument. 060 dashmflag=-xM 061 depmode=dashmstdout 062 fi 063 064 case "$depmode" in 065 gcc3) 066 ## gcc 3 implements dependency tracking that does exactly what 067 ## we want. Yay! Note: for some reason libtool 1.4 doesn't like 068 ## it if -MD -MP comes after the -MF stuff. Hmm. 069 "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" 070 stat=$? 071 if test $stat -eq 0; then : 072 else 073 rm -f "$tmpdepfile" 074 exit $stat 075 fi 076 mv "$tmpdepfile" "$depfile" 077 ;; 078 079 gcc) 080 ## There are various ways to get dependency output from gcc. Here's 081 ## why we pick this rather obscure method: 082 ## - Don't want to use -MD because we'd like the dependencies to end 083 ## up in a subdir. Having to rename by hand is ugly. 084 ## (We might end up doing this anyway to support other compilers.) 085 ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like 086 ## -MM, not -M (despite what the docs say). 087 ## - Using -M directly means running the compiler twice (even worse 088 ## than renaming). 089 if test -z "$gccflag"; then 090 gccflag=-MD, 091 fi 092 "$@" -Wp,"$gccflag$tmpdepfile" 093 stat=$? 094 if test $stat -eq 0; then : 095 else 096 rm -f "$tmpdepfile" 097 exit $stat 098 fi 099 rm -f "$depfile" 100 echo "$object : \\" > "$depfile" 101 alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 102 ## The second -e expression handles DOS-style file names with drive letters. 103 sed -e 's/^[^:]*: / /' \ 104 -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" 105 ## This next piece of magic avoids the `deleted header file' problem. 106 ## The problem is that when a header file which appears in a .P file 107 ## is deleted, the dependency causes make to die (because there is 108 ## typically no way to rebuild the header). We avoid this by adding 109 ## dummy dependencies for each header file. Too bad gcc doesn't do 110 ## this for us directly. 111 tr ' ' ' 112 ' < "$tmpdepfile" | 113 ## Some versions of gcc put a space before the `:'. On the theory 114 ## that the space means something, we add a space to the output as 115 ## well. 116 ## Some versions of the HPUX 10.20 sed can't process this invocation 117 ## correctly. Breaking it into two sed invocations is a workaround. 118 sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" 119 rm -f "$tmpdepfile" 120 ;; 121 122 hp) 123 # This case exists only to let depend.m4 do its work. It works by 124 # looking at the text of this script. This case will never be run, 125 # since it is checked for above. 126 exit 1 127 ;; 128 129 sgi) 130 if test "$libtool" = yes; then 131 "$@" "-Wp,-MDupdate,$tmpdepfile" 132 else 133 "$@" -MDupdate "$tmpdepfile" 134 fi 135 stat=$? 136 if test $stat -eq 0; then : 137 else 138 rm -f "$tmpdepfile" 139 exit $stat 140 fi 141 rm -f "$depfile" 142 143 if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files 144 echo "$object : \\" > "$depfile" 145 146 # Clip off the initial element (the dependent). Don't try to be 147 # clever and replace this with sed code, as IRIX sed won't handle 148 # lines with more than a fixed number of characters (4096 in 149 # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; 150 # the IRIX cc adds comments like `#:fec' to the end of the 151 # dependency line. 152 tr ' ' ' 153 ' < "$tmpdepfile" \ 154 | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ 155 tr ' 156 ' ' ' >> $depfile 157 echo >> $depfile 158 159 # The second pass generates a dummy entry for each header file. 160 tr ' ' ' 161 ' < "$tmpdepfile" \ 162 | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ 163 >> $depfile 164 else 165 # The sourcefile does not contain any dependencies, so just 166 # store a dummy comment line, to avoid errors with the Makefile 167 # "include basename.Plo" scheme. 168 echo "#dummy" > "$depfile" 169 fi 170 rm -f "$tmpdepfile" 171 ;; 172 173 aix) 174 # The C for AIX Compiler uses -M and outputs the dependencies 175 # in a .u file. This file always lives in the current directory. 176 # Also, the AIX compiler puts `$object:' at the start of each line; 177 # $object doesn't have directory information. 178 stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'` 179 tmpdepfile="$stripped.u" 180 outname="$stripped.o" 181 if test "$libtool" = yes; then 182 "$@" -Wc,-M 183 else 184 "$@" -M 185 fi 186 187 stat=$? 188 if test $stat -eq 0; then : 189 else 190 rm -f "$tmpdepfile" 191 exit $stat 192 fi 193 194 if test -f "$tmpdepfile"; then 195 # Each line is of the form `foo.o: dependent.h'. 196 # Do two passes, one to just change these to 197 # `$object: dependent.h' and one to simply `dependent.h:'. 198 sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" 199 sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" 200 else 201 # The sourcefile does not contain any dependencies, so just 202 # store a dummy comment line, to avoid errors with the Makefile 203 # "include basename.Plo" scheme. 204 echo "#dummy" > "$depfile" 205 fi 206 rm -f "$tmpdepfile" 207 ;; 208 209 icc) 210 # Intel's C compiler understands `-MD -MF file'. However on 211 # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c 212 # ICC 7.0 will fill foo.d with something like 213 # foo.o: sub/foo.c 214 # foo.o: sub/foo.h 215 # which is wrong. We want: 216 # sub/foo.o: sub/foo.c 217 # sub/foo.o: sub/foo.h 218 # sub/foo.c: 219 # sub/foo.h: 220 # ICC 7.1 will output 221 # foo.o: sub/foo.c sub/foo.h 222 # and will wrap long lines using \ : 223 # foo.o: sub/foo.c ... \ 224 # sub/foo.h ... \ 225 # ... 226 227 "$@" -MD -MF "$tmpdepfile" 228 stat=$? 229 if test $stat -eq 0; then : 230 else 231 rm -f "$tmpdepfile" 232 exit $stat 233 fi 234 rm -f "$depfile" 235 # Each line is of the form `foo.o: dependent.h', 236 # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. 237 # Do two passes, one to just change these to 238 # `$object: dependent.h' and one to simply `dependent.h:'. 239 sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" 240 # Some versions of the HPUX 10.20 sed can't process this invocation 241 # correctly. Breaking it into two sed invocations is a workaround. 242 sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | 243 sed -e 's/$/ :/' >> "$depfile" 244 rm -f "$tmpdepfile" 245 ;; 246 247 tru64) 248 # The Tru64 compiler uses -MD to generate dependencies as a side 249 # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. 250 # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put 251 # dependencies in `foo.d' instead, so we check for that too. 252 # Subdirectories are respected. 253 dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` 254 test "x$dir" = "x$object" && dir= 255 base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` 256 257 if test "$libtool" = yes; then 258 tmpdepfile1="$dir.libs/$base.lo.d" 259 tmpdepfile2="$dir.libs/$base.d" 260 "$@" -Wc,-MD 261 else 262 tmpdepfile1="$dir$base.o.d" 263 tmpdepfile2="$dir$base.d" 264 "$@" -MD 265 fi 266 267 stat=$? 268 if test $stat -eq 0; then : 269 else 270 rm -f "$tmpdepfile1" "$tmpdepfile2" 271 exit $stat 272 fi 273 274 if test -f "$tmpdepfile1"; then 275 tmpdepfile="$tmpdepfile1" 276 else 277 tmpdepfile="$tmpdepfile2" 278 fi 279 if test -f "$tmpdepfile"; then 280 sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" 281 # That's a space and a tab in the []. 282 sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" 283 else 284 echo "#dummy" > "$depfile" 285 fi 286 rm -f "$tmpdepfile" 287 ;; 288 289 #nosideeffect) 290 # This comment above is used by automake to tell side-effect 291 # dependency tracking mechanisms from slower ones. 292 293 dashmstdout) 294 # Important note: in order to support this mode, a compiler *must* 295 # always write the proprocessed file to stdout, regardless of -o. 296 "$@" || exit $? 297 298 # Remove the call to Libtool. 299 if test "$libtool" = yes; then 300 while test $1 != '--mode=compile'; do 301 shift 302 done 303 shift 304 fi 305 306 # Remove `-o $object'. 307 IFS=" " 308 for arg 309 do 310 case $arg in 311 -o) 312 shift 313 ;; 314 $object) 315 shift 316 ;; 317 *) 318 set fnord "$@" "$arg" 319 shift # fnord 320 shift # $arg 321 ;; 322 esac 323 done 324 325 test -z "$dashmflag" && dashmflag=-M 326 # Require at least two characters before searching for `:' 327 # in the target name. This is to cope with DOS-style filenames: 328 # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. 329 "$@" $dashmflag | 330 sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" 331 rm -f "$depfile" 332 cat < "$tmpdepfile" > "$depfile" 333 tr ' ' ' 334 ' < "$tmpdepfile" | \ 335 ## Some versions of the HPUX 10.20 sed can't process this invocation 336 ## correctly. Breaking it into two sed invocations is a workaround. 337 sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" 338 rm -f "$tmpdepfile" 339 ;; 340 341 dashXmstdout) 342 # This case only exists to satisfy depend.m4. It is never actually 343 # run, as this mode is specially recognized in the preamble. 344 exit 1 345 ;; 346 347 makedepend) 348 "$@" || exit $? 349 # Remove any Libtool call 350 if test "$libtool" = yes; then 351 while test $1 != '--mode=compile'; do 352 shift 353 done 354 shift 355 fi 356 # X makedepend 357 shift 358 cleared=no 359 for arg in "$@"; do 360 case $cleared in 361 no) 362 set ""; shift 363 cleared=yes ;; 364 esac 365 case "$arg" in 366 -D*|-I*) 367 set fnord "$@" "$arg"; shift ;; 368 # Strip any option that makedepend may not understand. Remove 369 # the object too, otherwise makedepend will parse it as a source file. 370 -*|$object) 371 ;; 372 *) 373 set fnord "$@" "$arg"; shift ;; 374 esac 375 done 376 obj_suffix="`echo $object | sed 's/^.*\././'`" 377 touch "$tmpdepfile" 378 ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" 379 rm -f "$depfile" 380 cat < "$tmpdepfile" > "$depfile" 381 sed '1,2d' "$tmpdepfile" | tr ' ' ' 382 ' | \ 383 ## Some versions of the HPUX 10.20 sed can't process this invocation 384 ## correctly. Breaking it into two sed invocations is a workaround. 385 sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" 386 rm -f "$tmpdepfile" "$tmpdepfile".bak 387 ;; 388 389 cpp) 390 # Important note: in order to support this mode, a compiler *must* 391 # always write the proprocessed file to stdout. 392 "$@" || exit $? 393 394 # Remove the call to Libtool. 395 if test "$libtool" = yes; then 396 while test $1 != '--mode=compile'; do 397 shift 398 done 399 shift 400 fi 401 402 # Remove `-o $object'. 403 IFS=" " 404 for arg 405 do 406 case $arg in 407 -o) 408 shift 409 ;; 410 $object) 411 shift 412 ;; 413 *) 414 set fnord "$@" "$arg" 415 shift # fnord 416 shift # $arg 417 ;; 418 esac 419 done 420 421 "$@" -E | 422 sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | 423 sed '$ s: \\$::' > "$tmpdepfile" 424 rm -f "$depfile" 425 echo "$object : \\" > "$depfile" 426 cat < "$tmpdepfile" >> "$depfile" 427 sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" 428 rm -f "$tmpdepfile" 429 ;; 430 431 msvisualcpp) 432 # Important note: in order to support this mode, a compiler *must* 433 # always write the proprocessed file to stdout, regardless of -o, 434 # because we must use -o when running libtool. 435 "$@" || exit $? 436 IFS=" " 437 for arg 438 do 439 case "$arg" in 440 "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") 441 set fnord "$@" 442 shift 443 shift 444 ;; 445 *) 446 set fnord "$@" "$arg" 447 shift 448 shift 449 ;; 450 esac 451 done 452 "$@" -E | 453 sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" 454 rm -f "$depfile" 455 echo "$object : \\" > "$depfile" 456 . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" 457 echo " " >> "$depfile" 458 . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" 459 rm -f "$tmpdepfile" 460 ;; 461 462 none) 463 exec "$@" 464 ;; 465 466 *) 467 echo "Unknown depmode $depmode" 1>&2 468 exit 1 469 ;; 470 esac 471 472 exit 0
Testing
