|
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17 System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64 User : nobody ( 99) PHP Version : 5.2.17 Disable Function : NONE Directory : /proc/21572/root/usr/bin/ |
Upload File : |
#!/bin/sh
#
# $Xorg: mdepend.cpp,v 1.3 2000/08/17 19:41:52 cpqbld Exp $
# $XdotOrg: util/imake/mdepend.cpp,v 1.4 2005/08/26 05:01:37 daniels Exp $
#
# Do the equivalent of the 'makedepend' program, but do it right.
#
# Usage:
#
# makedepend [cpp-flags] [-w width] [-s magic-string] [-f makefile]
# [-o object-suffix] [-v] [-a] [-cc compiler] [-d dependencyflag]
#
# Notes:
#
# The C compiler used can be overridden with the environment
# variable "CC" or the command line flag -cc.
#
# The "-v" switch of the "makedepend" program is not supported.
#
#
# This script should
# work on both USG and BSD systems. However, when System V.4 comes out,
# USG users will probably have to change "silent" to "-s" instead of
# "-" (at least, that is what the documentation implies).
#
# $XFree86: xc/config/util/mdepend.cpp,v 3.9 2001/04/26 20:55:10 dawes Exp $
#
CC="gcc -E"
silent='-'
TMP=`pwd`/.mdep$$
rm -rf ${TMP}
if ! mkdir -p ${TMP}; then
echo "$0: cannot create ${TMP}, exit." >&2
fi
CPPCMD=${TMP}/a
DEPENDLINES=${TMP}/b
TMPMAKEFILE=${TMP}/c
MAGICLINE=${TMP}/d
ARGS=${TMP}/e
trap "rm -rf ${TMP}; exit 1" 1 2 15
trap "rm -rf ${TMP}; exit 0" 1 2 13
echo " \c" > $CPPCMD
if [ `wc -c < $CPPCMD` -eq 1 ]
then
c="\c"
n=
else
c=
n="-n"
fi
echo $n "$c" >$ARGS
files=
makefile=
magic_string='# DO NOT DELETE'
objsuffix='.o'
width=78
endmarker=""
verbose=n
append=n
compilerlistsdepends=n
while [ $# != 0 ]
do
if [ "$endmarker"x != x ] && [ "$endmarker" = "$1" ]; then
endmarker=""
else
case "$1" in
-D*|-I*|-U*)
echo $n " '$1'$c" >> $ARGS
;;
-g|-O) # ignore so we can just pass $(CFLAGS) in
;;
*)
if [ "$endmarker"x = x ]; then
case "$1" in
-w)
width="$2"
shift
;;
-s)
magic_string="$2"
shift
;;
-f*)
if [ "$1" = "-f-" ]; then
makefile="-"
elif [ "$1" = "-f" ]; then
makefile="$2"
shift
else
echo "$1" | sed 's/^\-f//' >${TMP}arg
makefile="`cat ${TMP}arg`"
rm -f ${TMP}arg
fi
;;
-o)
objsuffix="$2"
shift
;;
--*)
echo "$1" | sed 's/^\-\-//' >${TMP}end
endmarker="`cat ${TMP}end`"
rm -f ${TMP}end
if [ "$endmarker"x = x ]; then
endmarker="--"
fi
;;
-v)
verbose="y"
;;
-a)
append="y"
;;
-cc)
CC="$2"
shift
;;
# Flag to tell compiler to output dependencies directly
# For example, with Sun compilers, -xM or -xM1 or
# with gcc, -M
-d)
compilerlistsdepends="y"
compilerlistdependsflag="$2"
shift
;;
-*)
echo "Unknown option '$1' ignored" 1>&2
;;
*)
files="$files $1"
;;
esac
fi
;;
esac
fi
shift
done
echo ' $*' >> $ARGS
if [ "$compilerlistsdepends"x = "y"x ] ; then
CC="$CC $compilerlistdependsflag"
fi
echo "#!/bin/sh" > $CPPCMD
echo "exec $CC `cat $ARGS`" >> $CPPCMD
chmod +x $CPPCMD
rm $ARGS
case "$makefile" in
'')
if [ -r makefile ]
then
makefile=makefile
elif [ -r Makefile ]
then
makefile=Makefile
else
echo 'no makefile or Makefile found' 1>&2
exit 1
fi
;;
-)
makefile=$TMPMAKEFILE
;;
esac
if [ "$verbose"x = "y"x ]; then
cat $CPPCMD
fi
echo '' > $DEPENDLINES
if [ "$compilerlistsdepends"x = "y"x ] ; then
for i in $files
do
$CPPCMD $i >> $DEPENDLINES
done
else
for i in $files
do
$CPPCMD $i | sed -n "/^#/s;^;$i ;p"
done | sed -e 's|/[^/.][^/]*/\.\.||g' -e 's|/\.[^.][^/]*/\.\.||g' -e 's|"||g' -e 's| \./| |' | awk '{
if ($1 != $4 && $2 != "#ident" && $2 != "#pragma")
{
numparts = split( $1, ofileparts, "\." )
ofile = ""
for ( i = 1; i < numparts; i = i+1 )
{
if (i != 1 )
ofile = ofile "."
ofile = ofile ofileparts[i]
}
print ofile "'"$objsuffix"'", $4
}
}' | sort -u | awk '
{
newrec = rec " " $2
if ($1 != old1)
{
old1 = $1
if (rec != "")
print rec
rec = $1 ": " $2
}
else if (length (newrec) > '"$width"')
{
print rec
rec = $1 ": " $2
}
else
rec = newrec
}
END {
if (rec != "")
print rec
}' | egrep -v '^[^:]*:[ ]*$' >> $DEPENDLINES
fi
trap "" 1 2 13 15 # Now we are committed
case "$makefile" in
$TMPMAKEFILE)
;;
*)
rm -f $makefile.bak
cp $makefile $makefile.bak
echo "Appending dependencies to $makefile"
;;
esac
#
# If not -a, append the magic string and a blank line so that
# /^$magic_string/+1,\$d can be used to delete everything from after
# the magic string to the end of the file. Then, append a blank
# line again and then the dependencies.
#
if [ "$append" = "n" ]
then
cat >> $makefile << END_OF_APPEND
$magic_string
END_OF_APPEND
ed $silent $makefile << END_OF_ED_SCRIPT
/^$magic_string/+1,\$d
w
q
END_OF_ED_SCRIPT
echo '' >>$makefile
fi
cat $DEPENDLINES >>$makefile
case "$makefile" in
$TMPMAKEFILE)
cat $TMPMAKEFILE
;;
esac
rm -rf ${TMP}*
exit 0