|
|
1.1 ! root 1: #!/bin/sh - ! 2: # ! 3: # Copyright (c) 1987 Regents of the University of California. ! 4: # All rights reserved. ! 5: # ! 6: # Redistribution and use in source and binary forms are permitted ! 7: # provided that the above copyright notice and this paragraph are ! 8: # duplicated in all such forms and that any documentation, ! 9: # advertising materials, and other materials related to such ! 10: # distribution and use acknowledge that the software was developed ! 11: # by the University of California, Berkeley. The name of the ! 12: # University may not be used to endorse or promote products derived ! 13: # from this software without specific prior written permission. ! 14: # THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR ! 15: # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED ! 16: # WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 17: # ! 18: # @(#)mkdep.sh 5.12 (Berkeley) 6/30/88 ! 19: # ! 20: PATH=/bin:/usr/bin:/usr/ucb ! 21: export PATH ! 22: ! 23: MAKE=Makefile # default makefile name is "Makefile" ! 24: ! 25: while : ! 26: do case "$1" in ! 27: # -f allows you to select a makefile name ! 28: -f) ! 29: MAKE=$2 ! 30: shift; shift ;; ! 31: ! 32: # the -p flag produces "program: program.c" style dependencies ! 33: # so .o's don't get produced ! 34: -p) ! 35: SED='s;\.o;;' ! 36: shift ;; ! 37: *) ! 38: break ;; ! 39: esac ! 40: done ! 41: ! 42: if [ $# = 0 ] ; then ! 43: echo 'usage: mkdep [-p] [-f makefile] [flags] file ...' ! 44: exit 1 ! 45: fi ! 46: ! 47: if [ ! -w $MAKE ]; then ! 48: echo "mkdep: no writeable file \"$MAKE\"" ! 49: exit 1 ! 50: fi ! 51: ! 52: TMP=/tmp/mkdep$$ ! 53: ! 54: trap 'rm -f $TMP ; exit 1' 1 2 3 13 15 ! 55: ! 56: cp $MAKE ${MAKE}.bak ! 57: ! 58: sed -e '/DO NOT DELETE THIS LINE/,$d' < $MAKE > $TMP ! 59: ! 60: cat << _EOF_ >> $TMP ! 61: # DO NOT DELETE THIS LINE -- mkdep uses it. ! 62: # DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. ! 63: ! 64: _EOF_ ! 65: ! 66: # If your compiler doesn't have -M, add it. If you can't, the next two ! 67: # lines will try and replace the "cc -M". The real problem is that this ! 68: # hack can't deal with anything that requires a search path, and doesn't ! 69: # even try for anything using bracket (<>) syntax. ! 70: # ! 71: # egrep '^#include[ ]*".*"' /dev/null $* | ! 72: # sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' -e 's/\.c/.o/' | ! 73: ! 74: cc -M $* | ! 75: sed " ! 76: s; \./; ;g ! 77: $SED" | ! 78: awk '{ ! 79: if ($1 != prev) { ! 80: if (rec != "") ! 81: print rec; ! 82: rec = $0; ! 83: prev = $1; ! 84: } ! 85: else { ! 86: if (length(rec $2) > 78) { ! 87: print rec; ! 88: rec = $0; ! 89: } ! 90: else ! 91: rec = rec " " $2 ! 92: } ! 93: } ! 94: END { ! 95: print rec ! 96: }' >> $TMP ! 97: ! 98: cat << _EOF_ >> $TMP ! 99: ! 100: # IF YOU PUT ANYTHING HERE IT WILL GO AWAY ! 101: _EOF_ ! 102: ! 103: # copy to preserve permissions ! 104: cp $TMP $MAKE ! 105: rm -f ${MAKE}.bak $TMP ! 106: exit 0
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.