X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/blobdiff_plain/043ab8c85fed7014e096f525e3a1de7464e3a55e..bc246bd5a9764b1260213d13949e2186bb590dd7:/usr/src/usr.bin/mkdep/mkdep.sh diff --git a/usr/src/usr.bin/mkdep/mkdep.sh b/usr/src/usr.bin/mkdep/mkdep.sh index acd6192b35..295e444f77 100644 --- a/usr/src/usr.bin/mkdep/mkdep.sh +++ b/usr/src/usr.bin/mkdep/mkdep.sh @@ -4,39 +4,43 @@ # All rights reserved. # # Redistribution and use in source and binary forms are permitted -# provided that this notice is preserved and that due credit is given -# to the University of California at Berkeley. The name of the University -# may not be used to endorse or promote products derived from this -# software without specific prior written permission. This software -# is provided ``as is'' without express or implied warranty. +# provided that the above copyright notice and this paragraph are +# duplicated in all such forms and that any documentation, +# advertising materials, and other materials related to such +# distribution and use acknowledge that the software was developed +# by the University of California, Berkeley. The name of the +# University may not be used to endorse or promote products derived +# from this software without specific prior written permission. +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. # -# @(#)mkdep.sh 5.8 (Berkeley) %G% +# @(#)mkdep.sh 5.14 (Berkeley) %G% # - PATH=/bin:/usr/bin:/usr/ucb export PATH -if [ $# = 0 ] ; then - echo 'usage: mkdep [-p] [-f makefile] [flags] file ...' - exit 1 -fi +D=.depend # default dependency file is .depend -MAKE=Makefile # default makefile name is "Makefile" -case $1 in - # -f allows you to select a makefile name - -f) - MAKE=$2 - shift; shift ;; +while : + do case "$1" in + # -f allows you to select a makefile name + -f) + D=$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 ;; -esac + # the -p flag produces "program: program.c" style dependencies + # so .o's don't get produced + -p) + SED='s;\.o;;' + shift ;; + *) + break ;; + esac +done -if [ ! -w $MAKE ]; then - echo "mkdep: no writeable file \"$MAKE\"" +if [ $# = 0 ] ; then + echo 'usage: mkdep [-p] [-f depend_file] [cc_flags] file ...' exit 1 fi @@ -44,39 +48,37 @@ TMP=/tmp/mkdep$$ 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 -- mkdep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -_EOF_ - -cc -M $* | /bin/sed -e "s; \./; ;g" $SED | \ - 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 your compiler doesn't have -M, add it. If you can't, the next two +# lines will try and replace the "cc -M". The real problem is that this +# hack can't deal with anything that requires a search path, and doesn't +# even try for anything using bracket (<>) syntax. +# +# egrep '^#include[ ]*".*"' /dev/null $* | +# sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' -e 's/\.c/.o/' | -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY -_EOF_ +cc -M $* | +sed " + s; \./; ;g + $SED" | +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 -# copy to preserve permissions -cp $TMP $MAKE -rm -f ${MAKE}.bak $TMP +mv $TMP $D exit 0