#! /bin/sh # $Id$ # This utility is a lightly editted version of the freed Berkeley # script `mkdep'. The current script is intended to work for GNU G++. # Here is the original BSD header: # @(#)mkdep.sh 1.7 (Berkeley) 10/13/87 # PATH=/usr/local/bin:/project/doc/pkg/gnu/bin:/bin:/usr/bin:/usr/ucb:\ /usr/gnu:/usr/gnu/bin:/opt/gnu/bin:/pkg/gnu/bin:$PATH export PATH if [ $# = 0 ] ; then echo 'usage: g++dep [-p] [-f makefile] [flags] file ...' exit 1 fi MAKE=Makefile case $1 in # -f allows you to select a makefile name -f) MAKE=$2 shift; shift ;; # the -p flag produces "program: program.c" style dependencies # so .o's don't get produced -p) SED='-e s;\.o;;' shift ;; # -r allows the use of relative pathnames... -r) REL="-e s;$ACE_ROOT;\$(ACE_ROOT);g " if [ ${TAO_ROOT:-no_tao_root} = "no_tao_root" ]; then echo no TAO_ROOT else REL="-e s;$TAO_ROOT;\$(TAO_ROOT);g "$REL echo REL=$REL fi shift ;; esac if [ ! -w $MAKE ]; then echo "g++dep: no writeable file \"$MAKE\"" exit 1 fi TMP=/tmp/g++dep$$ trap 'rm -f $TMP; exit 1' 1 2 3 13 15 cp $MAKE ${MAKE}.bak sed -e '/DO NOT DELETE THIS LINE/,$d' < $MAKE > $TMP cat << _EOF_ >> $TMP # DO NOT DELETE THIS LINE -- g++dep uses it. # DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. _EOF_ g++ -MM $* | \ sed -e "s; \./; ;g" $SED $REL | \ awk '{ if ($1 != prev) \ { if (rec != "") print rec; rec = $0; prev = $1; } \ else \ { if (length(rec $2) > 78) { print rec; rec = $0; } \ else rec = rec " " $2 } } \ END { print rec }' >> $TMP cat << _EOF_ >> $TMP # IF YOU PUT ANYTHING HERE IT WILL GO AWAY _EOF_ # copy to preserve permissions cp $TMP $MAKE rm -f ${MAKE}.bak $TMP exit 0