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