[xiph-cvs] cvs commit: w3d/tools makedepend

Holger Waechtler holger at xiph.org
Fri Jun 29 08:15:55 PDT 2001



holger      01/06/29 08:15:55

  Modified:    .        Makefile
  Added:       tools    makedepend
  Log:
   - moved makedepend into the tools directory; measurement programs will go
      into this directory, too

Revision  Changes    Path
1.6       +1 -1      w3d/Makefile

Index: Makefile
===================================================================
RCS file: /usr/local/cvsroot/w3d/Makefile,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Makefile	2001/06/29 15:13:07	1.5
+++ Makefile	2001/06/29 15:15:54	1.6
@@ -39,6 +39,6 @@
 .depend: $(SRCS) $(TEST_SRCS)
         $(RM) .depend
         touch .depend
-	sh makedepend -f.depend -- $(CFLAGS) -- $(SRCS) $(TEST_SRCS) tarkin_enc.c tarkin_dec.c
+	sh tools/makedepend -f.depend -- $(CFLAGS) -- $(SRCS) $(TEST_SRCS) tarkin_enc.c tarkin_dec.c
 
 -include .depend

1.1                  w3d/tools/makedepend

Index: makedepend
===================================================================
#!/bin/sh
#
# $TOG: mdepend.cpp /main/13 1997/06/20 21:12:18 kaleb $
#
#       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]
#
#       Notes:
#
#       The C compiler used can be overridden with the environment
#       variable "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.3.2.3 2001/03/15 21:16:08 tsi Exp $
#

CC="gcc -E -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE  -D_GNU_SOURCE  "

ilent='-'

TMP=`pwd`/.mdep$$
CPPCMD=${TMP}a
DEPENDLINES=${TMP}b
TMPMAKEFILE=${TMP}c
MAGICLINE=${TMP}d
ARGS=${TMP}e

trap "rm -f ${TMP}*; exit 1" 1 2 15
trap "rm -f ${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

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
                            ;;

                        -*)
                            echo "Unknown option '$1' ignored" 1>&2
                            ;;
                        *)
                            files="$files $1"
                            ;;
                    esac
                fi
                ;;
        esac
    fi
    shift
done
echo ' $*' >> $ARGS

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
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")

            {
            ofile = substr ($1, 1, length ($1) - 2) "'"$objsuffix"'"
            print ofile, $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

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 -f ${TMP}*
exit 0

--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'cvs-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the commits mailing list