1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
#!/bin/sh
#
# makedepend which uses 'gcc -M'
#
# $XFree86: xc/config/util/gccmdep.cpp,v 3.0 1994/11/22 02:34:17 dawes Exp $
#
# Based on mdepend.cpp and code supplied by Hongjiu Lu <hjl@nynexst.com>
#
TMP=/tmp/mdep$$
CC="gcc"
RM="rm -f"
LN="ln -s"
MV="mv"
trap "$RM ${TMP}*; exit 1" 1 2 15
trap "$RM ${TMP}*; exit 0" 1 2 13
files=
makefile=
endmarker=
magic_string='# DO NOT DELETE'
append=n
args=
asmfiles=
while [ $# != 0 ]; do
if [ "$endmarker"x != x -a "$endmarker" = "$1" ]; then
endmarker=
else
case "$1" in
-D*|-I*)
args="$args '$1'"
;;
-g|-o)
;;
*)
if [ "$endmarker"x = x ]; then
case $1 in
# ignore these flags
-w|-o|-cc)
shift
;;
-v)
;;
-s)
magic_string="$2"
shift
;;
-f)
makefile="$2"
shift
;;
--*)
endmarker=`echo $1 | sed 's/^\-\-//'`
if [ "$endmarker"x = x ]; then
endmarker="--"
fi
;;
-a)
append=y
;;
-*)
echo "Unknown option '$1' ignored" 1>&2
;;
*)
files="$files $1"
;;
esac
fi
;;
esac
fi
shift
done
if [ x"$files" = x ]; then
# Nothing to do
exit 0
fi
case "$makefile" in
'')
if [ -r makefile ]; then
makmefile=makefile
elif [ -r Makefile ]; then
makefile=Makefile
else
echo 'no makefile or Makefile found' 1>&2
exit 1
fi
;;
esac
if [ x"$append" = xn ]; then
sed -e "/^$magic_string/,\$d" < $makefile > $TMP
echo "$magic_string" >> $TMP
else
cp $makefile $TMP
fi
# need to link .s files to .S
for i in $files; do
case $i in
*.s)
dir=`dirname $i`
base=`basename $i .s`
(cd $dir; $RM ${base}.S; $LN ${base}.s ${base}.S)
asmfiles="$asmfiles ${base}.S"
;;
esac
done
CMD="$CC -M $args `echo $files`"
CMD="$CMD >> $TMP"
eval $CMD
$RM ${makefile}.bak
$MV $makefile ${makefile}.bak
$MV $TMP $makefile
if [ x"$asmfiles" != x ]; then
$RM $asmfiles
fi
$RM ${TMP}*
exit 0
|