Changeset 7f1d3e for util/depcomp
- Timestamp:
- Oct 16, 2008, 9:27:59 AM (17 years ago)
- Children:
- 626e8a
- Parents:
- 136e89
- File:
-
- 1 edited
-
util/depcomp (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
util/depcomp
r136e89 r7f1d3e 2 2 # depcomp - compile a program generating dependencies as side-effects 3 3 4 scriptversion=2005-07-09.11 5 6 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. 4 scriptversion=2007-03-29.01 5 6 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software 7 # Foundation, Inc. 7 8 8 9 # This program is free software; you can redistribute it and/or modify … … 92 93 ## we want. Yay! Note: for some reason libtool 1.4 doesn't like 93 94 ## it if -MD -MP comes after the -MF stuff. Hmm. 94 "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" 95 ## Unfortunately, FreeBSD c89 acceptance of flags depends upon 96 ## the command line argument order; so add the flags where they 97 ## appear in depend2.am. Note that the slowdown incurred here 98 ## affects only configure: in makefiles, %FASTDEP% shortcuts this. 99 for arg 100 do 101 case $arg in 102 -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; 103 *) set fnord "$@" "$arg" ;; 104 esac 105 shift # fnord 106 shift # $arg 107 done 108 "$@" 95 109 stat=$? 96 110 if test $stat -eq 0; then : … … 202 216 # start of each line; $object doesn't have directory information. 203 217 # Version 6 uses the directory in both cases. 204 stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` 205 tmpdepfile="$stripped.u" 218 dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` 219 test "x$dir" = "x$object" && dir= 220 base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` 206 221 if test "$libtool" = yes; then 222 tmpdepfile1=$dir$base.u 223 tmpdepfile2=$base.u 224 tmpdepfile3=$dir.libs/$base.u 207 225 "$@" -Wc,-M 208 226 else 227 tmpdepfile1=$dir$base.u 228 tmpdepfile2=$dir$base.u 229 tmpdepfile3=$dir$base.u 209 230 "$@" -M 210 231 fi 211 232 stat=$? 212 233 213 if test -f "$tmpdepfile"; then :214 else215 stripped=`echo "$stripped" | sed 's,^.*/,,'`216 tmpdepfile="$stripped.u"217 fi218 219 234 if test $stat -eq 0; then : 220 235 else 221 rm -f "$tmpdepfile "236 rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" 222 237 exit $stat 223 238 fi 224 239 240 for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" 241 do 242 test -f "$tmpdepfile" && break 243 done 225 244 if test -f "$tmpdepfile"; then 226 outname="$stripped.o"227 245 # Each line is of the form `foo.o: dependent.h'. 228 246 # Do two passes, one to just change these to 229 247 # `$object: dependent.h' and one to simply `dependent.h:'. 230 sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" 231 sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" 248 sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" 249 # That's a tab and a space in the []. 250 sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" 232 251 else 233 252 # The sourcefile does not contain any dependencies, so just … … 277 296 ;; 278 297 298 hp2) 299 # The "hp" stanza above does not work with aCC (C++) and HP's ia64 300 # compilers, which have integrated preprocessors. The correct option 301 # to use with these is +Maked; it writes dependencies to a file named 302 # 'foo.d', which lands next to the object file, wherever that 303 # happens to be. 304 # Much of this is similar to the tru64 case; see comments there. 305 dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` 306 test "x$dir" = "x$object" && dir= 307 base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` 308 if test "$libtool" = yes; then 309 tmpdepfile1=$dir$base.d 310 tmpdepfile2=$dir.libs/$base.d 311 "$@" -Wc,+Maked 312 else 313 tmpdepfile1=$dir$base.d 314 tmpdepfile2=$dir$base.d 315 "$@" +Maked 316 fi 317 stat=$? 318 if test $stat -eq 0; then : 319 else 320 rm -f "$tmpdepfile1" "$tmpdepfile2" 321 exit $stat 322 fi 323 324 for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" 325 do 326 test -f "$tmpdepfile" && break 327 done 328 if test -f "$tmpdepfile"; then 329 sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" 330 # Add `dependent.h:' lines. 331 sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" 332 else 333 echo "#dummy" > "$depfile" 334 fi 335 rm -f "$tmpdepfile" "$tmpdepfile2" 336 ;; 337 279 338 tru64) 280 339 # The Tru64 compiler uses -MD to generate dependencies as a side … … 289 348 if test "$libtool" = yes; then 290 349 # With Tru64 cc, shared objects can also be used to make a 291 # static library. This mec anism is used in libtool 1.4 series to350 # static library. This mechanism is used in libtool 1.4 series to 292 351 # handle both shared and static libraries in a single compilation. 293 352 # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. … … 295 354 # With libtool 1.5 this exception was removed, and libtool now 296 355 # generates 2 separate objects for the 2 libraries. These two 297 # compilations output dependencies in in$dir.libs/$base.o.d and356 # compilations output dependencies in $dir.libs/$base.o.d and 298 357 # in $dir$base.o.d. We have to check for both files, because 299 358 # one of the two compilations can be disabled. We should prefer
Note:
See TracChangeset
for help on using the changeset viewer.
