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