1251883Speter#! /bin/sh 2251883Speter# depcomp - compile a program generating dependencies as side-effects 3251883Speter 4251883Speterscriptversion=2005-07-09.11 5251883Speter 6251883Speter# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. 7251883Speter 8251883Speter# This program is free software; you can redistribute it and/or modify 9251883Speter# it under the terms of the GNU General Public License as published by 10251883Speter# the Free Software Foundation; either version 2, or (at your option) 11251883Speter# any later version. 12251883Speter 13251883Speter# This program is distributed in the hope that it will be useful, 14251883Speter# but WITHOUT ANY WARRANTY; without even the implied warranty of 15251883Speter# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16251883Speter# GNU General Public License for more details. 17251883Speter 18251883Speter# You should have received a copy of the GNU General Public License 19251883Speter# along with this program; if not, write to the Free Software 20251883Speter# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 21251883Speter# 02110-1301, USA. 22251883Speter 23251883Speter# As a special exception to the GNU General Public License, if you 24251883Speter# distribute this file as part of a program that contains a 25251883Speter# configuration script generated by Autoconf, you may include it under 26251883Speter# the same distribution terms that you use for the rest of that program. 27251883Speter 28251883Speter# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. 29251883Speter 30251883Spetercase $1 in 31251883Speter '') 32251883Speter echo "$0: No command. Try \`$0 --help' for more information." 1>&2 33251883Speter exit 1; 34251883Speter ;; 35251883Speter -h | --h*) 36251883Speter cat <<\EOF 37251883SpeterUsage: depcomp [--help] [--version] PROGRAM [ARGS] 38251883Speter 39251883SpeterRun PROGRAMS ARGS to compile a file, generating dependencies 40251883Speteras side-effects. 41251883Speter 42251883SpeterEnvironment variables: 43251883Speter depmode Dependency tracking mode. 44251883Speter source Source file read by `PROGRAMS ARGS'. 45251883Speter object Object file output by `PROGRAMS ARGS'. 46251883Speter DEPDIR directory where to store dependencies. 47251883Speter depfile Dependency file to output. 48251883Speter tmpdepfile Temporary file to use when outputing dependencies. 49251883Speter libtool Whether libtool is used (yes/no). 50251883Speter 51251883SpeterReport bugs to <bug-automake@gnu.org>. 52251883SpeterEOF 53251883Speter exit $? 54251883Speter ;; 55251883Speter -v | --v*) 56251883Speter echo "depcomp $scriptversion" 57251883Speter exit $? 58251883Speter ;; 59251883Speteresac 60251883Speter 61251883Speterif test -z "$depmode" || test -z "$source" || test -z "$object"; then 62251883Speter echo "depcomp: Variables source, object and depmode must be set" 1>&2 63251883Speter exit 1 64251883Speterfi 65251883Speter 66251883Speter# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. 67251883Speterdepfile=${depfile-`echo "$object" | 68251883Speter sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} 69251883Spetertmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} 70251883Speter 71251883Speterrm -f "$tmpdepfile" 72251883Speter 73251883Speter# Some modes work just like other modes, but use different flags. We 74251883Speter# parameterize here, but still list the modes in the big case below, 75251883Speter# to make depend.m4 easier to write. Note that we *cannot* use a case 76251883Speter# here, because this file can only contain one case statement. 77251883Speterif test "$depmode" = hp; then 78251883Speter # HP compiler uses -M and no extra arg. 79251883Speter gccflag=-M 80251883Speter depmode=gcc 81251883Speterfi 82251883Speter 83251883Speterif test "$depmode" = dashXmstdout; then 84251883Speter # This is just like dashmstdout with a different argument. 85251883Speter dashmflag=-xM 86251883Speter depmode=dashmstdout 87251883Speterfi 88251883Speter 89251883Spetercase "$depmode" in 90251883Spetergcc3) 91251883Speter## gcc 3 implements dependency tracking that does exactly what 92251883Speter## we want. Yay! Note: for some reason libtool 1.4 doesn't like 93251883Speter## it if -MD -MP comes after the -MF stuff. Hmm. 94251883Speter "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" 95251883Speter stat=$? 96251883Speter if test $stat -eq 0; then : 97251883Speter else 98251883Speter rm -f "$tmpdepfile" 99251883Speter exit $stat 100251883Speter fi 101251883Speter mv "$tmpdepfile" "$depfile" 102251883Speter ;; 103251883Speter 104251883Spetergcc) 105251883Speter## There are various ways to get dependency output from gcc. Here's 106251883Speter## why we pick this rather obscure method: 107251883Speter## - Don't want to use -MD because we'd like the dependencies to end 108251883Speter## up in a subdir. Having to rename by hand is ugly. 109251883Speter## (We might end up doing this anyway to support other compilers.) 110251883Speter## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like 111251883Speter## -MM, not -M (despite what the docs say). 112251883Speter## - Using -M directly means running the compiler twice (even worse 113251883Speter## than renaming). 114251883Speter if test -z "$gccflag"; then 115251883Speter gccflag=-MD, 116251883Speter fi 117251883Speter "$@" -Wp,"$gccflag$tmpdepfile" 118251883Speter stat=$? 119251883Speter if test $stat -eq 0; then : 120251883Speter else 121251883Speter rm -f "$tmpdepfile" 122251883Speter exit $stat 123251883Speter fi 124251883Speter rm -f "$depfile" 125251883Speter echo "$object : \\" > "$depfile" 126251883Speter alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 127251883Speter## The second -e expression handles DOS-style file names with drive letters. 128251883Speter sed -e 's/^[^:]*: / /' \ 129251883Speter -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" 130251883Speter## This next piece of magic avoids the `deleted header file' problem. 131251883Speter## The problem is that when a header file which appears in a .P file 132251883Speter## is deleted, the dependency causes make to die (because there is 133251883Speter## typically no way to rebuild the header). We avoid this by adding 134251883Speter## dummy dependencies for each header file. Too bad gcc doesn't do 135251883Speter## this for us directly. 136251883Speter tr ' ' ' 137251883Speter' < "$tmpdepfile" | 138251883Speter## Some versions of gcc put a space before the `:'. On the theory 139251883Speter## that the space means something, we add a space to the output as 140251883Speter## well. 141251883Speter## Some versions of the HPUX 10.20 sed can't process this invocation 142251883Speter## correctly. Breaking it into two sed invocations is a workaround. 143251883Speter sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" 144251883Speter rm -f "$tmpdepfile" 145251883Speter ;; 146251883Speter 147251883Speterhp) 148251883Speter # This case exists only to let depend.m4 do its work. It works by 149251883Speter # looking at the text of this script. This case will never be run, 150251883Speter # since it is checked for above. 151251883Speter exit 1 152251883Speter ;; 153251883Speter 154251883Spetersgi) 155251883Speter if test "$libtool" = yes; then 156251883Speter "$@" "-Wp,-MDupdate,$tmpdepfile" 157251883Speter else 158251883Speter "$@" -MDupdate "$tmpdepfile" 159251883Speter fi 160251883Speter stat=$? 161251883Speter if test $stat -eq 0; then : 162251883Speter else 163251883Speter rm -f "$tmpdepfile" 164251883Speter exit $stat 165251883Speter fi 166251883Speter rm -f "$depfile" 167251883Speter 168251883Speter if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files 169251883Speter echo "$object : \\" > "$depfile" 170251883Speter 171251883Speter # Clip off the initial element (the dependent). Don't try to be 172251883Speter # clever and replace this with sed code, as IRIX sed won't handle 173251883Speter # lines with more than a fixed number of characters (4096 in 174251883Speter # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; 175251883Speter # the IRIX cc adds comments like `#:fec' to the end of the 176251883Speter # dependency line. 177251883Speter tr ' ' ' 178251883Speter' < "$tmpdepfile" \ 179251883Speter | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ 180251883Speter tr ' 181251883Speter' ' ' >> $depfile 182251883Speter echo >> $depfile 183251883Speter 184251883Speter # The second pass generates a dummy entry for each header file. 185251883Speter tr ' ' ' 186251883Speter' < "$tmpdepfile" \ 187251883Speter | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ 188251883Speter >> $depfile 189251883Speter else 190251883Speter # The sourcefile does not contain any dependencies, so just 191251883Speter # store a dummy comment line, to avoid errors with the Makefile 192251883Speter # "include basename.Plo" scheme. 193251883Speter echo "#dummy" > "$depfile" 194251883Speter fi 195251883Speter rm -f "$tmpdepfile" 196251883Speter ;; 197251883Speter 198251883Speteraix) 199251883Speter # The C for AIX Compiler uses -M and outputs the dependencies 200251883Speter # in a .u file. In older versions, this file always lives in the 201251883Speter # current directory. Also, the AIX compiler puts `$object:' at the 202251883Speter # start of each line; $object doesn't have directory information. 203251883Speter # Version 6 uses the directory in both cases. 204251883Speter stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` 205251883Speter tmpdepfile="$stripped.u" 206251883Speter if test "$libtool" = yes; then 207251883Speter "$@" -Wc,-M 208251883Speter else 209251883Speter "$@" -M 210251883Speter fi 211251883Speter stat=$? 212251883Speter 213251883Speter if test -f "$tmpdepfile"; then : 214251883Speter else 215251883Speter stripped=`echo "$stripped" | sed 's,^.*/,,'` 216251883Speter tmpdepfile="$stripped.u" 217251883Speter fi 218251883Speter 219251883Speter if test $stat -eq 0; then : 220251883Speter else 221251883Speter rm -f "$tmpdepfile" 222251883Speter exit $stat 223251883Speter fi 224251883Speter 225251883Speter if test -f "$tmpdepfile"; then 226251883Speter outname="$stripped.o" 227251883Speter # Each line is of the form `foo.o: dependent.h'. 228251883Speter # Do two passes, one to just change these to 229251883Speter # `$object: dependent.h' and one to simply `dependent.h:'. 230251883Speter sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" 231251883Speter sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" 232251883Speter else 233251883Speter # The sourcefile does not contain any dependencies, so just 234251883Speter # store a dummy comment line, to avoid errors with the Makefile 235251883Speter # "include basename.Plo" scheme. 236251883Speter echo "#dummy" > "$depfile" 237251883Speter fi 238251883Speter rm -f "$tmpdepfile" 239251883Speter ;; 240251883Speter 241251883Spetericc) 242251883Speter # Intel's C compiler understands `-MD -MF file'. However on 243251883Speter # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c 244251883Speter # ICC 7.0 will fill foo.d with something like 245251883Speter # foo.o: sub/foo.c 246251883Speter # foo.o: sub/foo.h 247251883Speter # which is wrong. We want: 248251883Speter # sub/foo.o: sub/foo.c 249251883Speter # sub/foo.o: sub/foo.h 250251883Speter # sub/foo.c: 251251883Speter # sub/foo.h: 252251883Speter # ICC 7.1 will output 253251883Speter # foo.o: sub/foo.c sub/foo.h 254251883Speter # and will wrap long lines using \ : 255251883Speter # foo.o: sub/foo.c ... \ 256251883Speter # sub/foo.h ... \ 257251883Speter # ... 258251883Speter 259251883Speter "$@" -MD -MF "$tmpdepfile" 260251883Speter stat=$? 261251883Speter if test $stat -eq 0; then : 262251883Speter else 263251883Speter rm -f "$tmpdepfile" 264251883Speter exit $stat 265251883Speter fi 266251883Speter rm -f "$depfile" 267251883Speter # Each line is of the form `foo.o: dependent.h', 268251883Speter # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. 269251883Speter # Do two passes, one to just change these to 270251883Speter # `$object: dependent.h' and one to simply `dependent.h:'. 271251883Speter sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" 272251883Speter # Some versions of the HPUX 10.20 sed can't process this invocation 273251883Speter # correctly. Breaking it into two sed invocations is a workaround. 274251883Speter sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | 275251883Speter sed -e 's/$/ :/' >> "$depfile" 276251883Speter rm -f "$tmpdepfile" 277251883Speter ;; 278251883Speter 279251883Spetertru64) 280251883Speter # The Tru64 compiler uses -MD to generate dependencies as a side 281251883Speter # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. 282251883Speter # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put 283251883Speter # dependencies in `foo.d' instead, so we check for that too. 284251883Speter # Subdirectories are respected. 285251883Speter dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` 286251883Speter test "x$dir" = "x$object" && dir= 287251883Speter base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` 288251883Speter 289251883Speter if test "$libtool" = yes; then 290251883Speter # With Tru64 cc, shared objects can also be used to make a 291251883Speter # static library. This mecanism is used in libtool 1.4 series to 292251883Speter # handle both shared and static libraries in a single compilation. 293251883Speter # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. 294251883Speter # 295251883Speter # With libtool 1.5 this exception was removed, and libtool now 296251883Speter # generates 2 separate objects for the 2 libraries. These two 297251883Speter # compilations output dependencies in in $dir.libs/$base.o.d and 298251883Speter # in $dir$base.o.d. We have to check for both files, because 299251883Speter # one of the two compilations can be disabled. We should prefer 300251883Speter # $dir$base.o.d over $dir.libs/$base.o.d because the latter is 301251883Speter # automatically cleaned when .libs/ is deleted, while ignoring 302251883Speter # the former would cause a distcleancheck panic. 303251883Speter tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 304251883Speter tmpdepfile2=$dir$base.o.d # libtool 1.5 305251883Speter tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 306251883Speter tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 307251883Speter "$@" -Wc,-MD 308251883Speter else 309251883Speter tmpdepfile1=$dir$base.o.d 310251883Speter tmpdepfile2=$dir$base.d 311251883Speter tmpdepfile3=$dir$base.d 312251883Speter tmpdepfile4=$dir$base.d 313251883Speter "$@" -MD 314251883Speter fi 315251883Speter 316251883Speter stat=$? 317251883Speter if test $stat -eq 0; then : 318251883Speter else 319251883Speter rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" 320251883Speter exit $stat 321251883Speter fi 322251883Speter 323251883Speter for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" 324251883Speter do 325251883Speter test -f "$tmpdepfile" && break 326251883Speter done 327251883Speter if test -f "$tmpdepfile"; then 328251883Speter sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" 329251883Speter # That's a tab and a space in the []. 330251883Speter sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" 331251883Speter else 332251883Speter echo "#dummy" > "$depfile" 333251883Speter fi 334251883Speter rm -f "$tmpdepfile" 335251883Speter ;; 336251883Speter 337251883Speter#nosideeffect) 338251883Speter # This comment above is used by automake to tell side-effect 339251883Speter # dependency tracking mechanisms from slower ones. 340251883Speter 341251883Speterdashmstdout) 342251883Speter # Important note: in order to support this mode, a compiler *must* 343251883Speter # always write the preprocessed file to stdout, regardless of -o. 344251883Speter "$@" || exit $? 345251883Speter 346251883Speter # Remove the call to Libtool. 347251883Speter if test "$libtool" = yes; then 348251883Speter while test $1 != '--mode=compile'; do 349251883Speter shift 350251883Speter done 351251883Speter shift 352251883Speter fi 353251883Speter 354251883Speter # Remove `-o $object'. 355251883Speter IFS=" " 356251883Speter for arg 357251883Speter do 358251883Speter case $arg in 359251883Speter -o) 360251883Speter shift 361251883Speter ;; 362251883Speter $object) 363251883Speter shift 364251883Speter ;; 365251883Speter *) 366251883Speter set fnord "$@" "$arg" 367251883Speter shift # fnord 368251883Speter shift # $arg 369251883Speter ;; 370251883Speter esac 371251883Speter done 372251883Speter 373251883Speter test -z "$dashmflag" && dashmflag=-M 374251883Speter # Require at least two characters before searching for `:' 375251883Speter # in the target name. This is to cope with DOS-style filenames: 376251883Speter # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. 377251883Speter "$@" $dashmflag | 378251883Speter sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" 379251883Speter rm -f "$depfile" 380251883Speter cat < "$tmpdepfile" > "$depfile" 381251883Speter tr ' ' ' 382251883Speter' < "$tmpdepfile" | \ 383251883Speter## Some versions of the HPUX 10.20 sed can't process this invocation 384251883Speter## correctly. Breaking it into two sed invocations is a workaround. 385251883Speter sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" 386251883Speter rm -f "$tmpdepfile" 387251883Speter ;; 388251883Speter 389251883SpeterdashXmstdout) 390251883Speter # This case only exists to satisfy depend.m4. It is never actually 391251883Speter # run, as this mode is specially recognized in the preamble. 392251883Speter exit 1 393251883Speter ;; 394251883Speter 395251883Spetermakedepend) 396251883Speter "$@" || exit $? 397251883Speter # Remove any Libtool call 398251883Speter if test "$libtool" = yes; then 399251883Speter while test $1 != '--mode=compile'; do 400251883Speter shift 401251883Speter done 402251883Speter shift 403251883Speter fi 404251883Speter # X makedepend 405251883Speter shift 406251883Speter cleared=no 407251883Speter for arg in "$@"; do 408251883Speter case $cleared in 409251883Speter no) 410251883Speter set ""; shift 411251883Speter cleared=yes ;; 412251883Speter esac 413251883Speter case "$arg" in 414251883Speter -D*|-I*) 415251883Speter set fnord "$@" "$arg"; shift ;; 416251883Speter # Strip any option that makedepend may not understand. Remove 417251883Speter # the object too, otherwise makedepend will parse it as a source file. 418251883Speter -*|$object) 419251883Speter ;; 420251883Speter *) 421251883Speter set fnord "$@" "$arg"; shift ;; 422251883Speter esac 423251883Speter done 424251883Speter obj_suffix="`echo $object | sed 's/^.*\././'`" 425251883Speter touch "$tmpdepfile" 426251883Speter ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" 427251883Speter rm -f "$depfile" 428251883Speter cat < "$tmpdepfile" > "$depfile" 429251883Speter sed '1,2d' "$tmpdepfile" | tr ' ' ' 430251883Speter' | \ 431251883Speter## Some versions of the HPUX 10.20 sed can't process this invocation 432251883Speter## correctly. Breaking it into two sed invocations is a workaround. 433251883Speter sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" 434251883Speter rm -f "$tmpdepfile" "$tmpdepfile".bak 435251883Speter ;; 436251883Speter 437251883Spetercpp) 438251883Speter # Important note: in order to support this mode, a compiler *must* 439251883Speter # always write the preprocessed file to stdout. 440251883Speter "$@" || exit $? 441251883Speter 442251883Speter # Remove the call to Libtool. 443251883Speter if test "$libtool" = yes; then 444251883Speter while test $1 != '--mode=compile'; do 445251883Speter shift 446251883Speter done 447251883Speter shift 448251883Speter fi 449251883Speter 450251883Speter # Remove `-o $object'. 451251883Speter IFS=" " 452251883Speter for arg 453251883Speter do 454251883Speter case $arg in 455251883Speter -o) 456251883Speter shift 457251883Speter ;; 458251883Speter $object) 459251883Speter shift 460251883Speter ;; 461251883Speter *) 462251883Speter set fnord "$@" "$arg" 463251883Speter shift # fnord 464251883Speter shift # $arg 465251883Speter ;; 466251883Speter esac 467251883Speter done 468251883Speter 469251883Speter "$@" -E | 470251883Speter sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ 471251883Speter -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | 472251883Speter sed '$ s: \\$::' > "$tmpdepfile" 473251883Speter rm -f "$depfile" 474251883Speter echo "$object : \\" > "$depfile" 475251883Speter cat < "$tmpdepfile" >> "$depfile" 476251883Speter sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" 477251883Speter rm -f "$tmpdepfile" 478251883Speter ;; 479251883Speter 480251883Spetermsvisualcpp) 481251883Speter # Important note: in order to support this mode, a compiler *must* 482251883Speter # always write the preprocessed file to stdout, regardless of -o, 483251883Speter # because we must use -o when running libtool. 484251883Speter "$@" || exit $? 485251883Speter IFS=" " 486251883Speter for arg 487251883Speter do 488251883Speter case "$arg" in 489251883Speter "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") 490251883Speter set fnord "$@" 491251883Speter shift 492251883Speter shift 493251883Speter ;; 494251883Speter *) 495251883Speter set fnord "$@" "$arg" 496251883Speter shift 497251883Speter shift 498251883Speter ;; 499251883Speter esac 500251883Speter done 501251883Speter "$@" -E | 502251883Speter sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" 503251883Speter rm -f "$depfile" 504251883Speter echo "$object : \\" > "$depfile" 505251883Speter . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" 506251883Speter echo " " >> "$depfile" 507251883Speter . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" 508251883Speter rm -f "$tmpdepfile" 509251883Speter ;; 510251883Speter 511251883Speternone) 512251883Speter exec "$@" 513251883Speter ;; 514251883Speter 515251883Speter*) 516251883Speter echo "Unknown depmode $depmode" 1>&2 517251883Speter exit 1 518251883Speter ;; 519251883Speteresac 520251883Speter 521251883Speterexit 0 522251883Speter 523251883Speter# Local Variables: 524251883Speter# mode: shell-script 525251883Speter# sh-indentation: 2 526251883Speter# eval: (add-hook 'write-file-hooks 'time-stamp) 527251883Speter# time-stamp-start: "scriptversion=" 528251883Speter# time-stamp-format: "%:y-%02m-%02d.%02H" 529251883Speter# time-stamp-end: "$" 530251883Speter# End: 531