xref: /minix3/external/bsd/libevent/dist/depcomp (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
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