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