
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: 21: MAKE=Makefile # default makefile name is "Makefile" 22: 23: while : 24: do case "$1" in 25: # -f allows you to select a makefile name 26: -f) 27: MAKE=$2 28: shift; shift ;; 29: 30: # the -p flag produces "program: program.c" style dependencies 31: # so .o's don't get produced 32: -p) 33: SED='s;\.o;;' 34: shift ;; 35: *) 36: break ;; 37: esac 38: done 39: 40: if [ $# = 0 ] ; then 41: echo 'usage: mkdep [-p] [-f makefile] [flags] file ...' 42: exit 1 43: fi 44: 45: if [ ! -w $MAKE ]; then 46: echo "mkdep: no writeable file \"$MAKE\"" 47: exit 1 48: fi 49: 50: TMP=/tmp/mkdep$$ 51: 52: trap 'rm -f $TMP ; exit 1' 1 2 3 13 15 53: 54: cp $MAKE ${MAKE}.bak 55: 56: sed -e '/DO NOT DELETE THIS LINE/,$d' < $MAKE > $TMP 57: 58: cat << _EOF_ >> $TMP 59: # DO NOT DELETE THIS LINE -- mkdep uses it. 60: # DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. 61: 62: _EOF_ 63: 64: # If your compiler doesn't have -M, add it. If you can't, the next two 65: # lines will try and replace the "cc -M". The real problem is that this 66: # hack can't deal with anything that requires a search path, and doesn't 67: # even try for anything using bracket (<>) syntax. 68: # 69: # egrep '^#include[ ]*".*"' /dev/null $* | 70: # sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' -e 's/\.c/.o/' | 71: 72: gcc -MM $* | 73: sed " 74: s; \./; ;g 75: $SED" >> $TMP 76: 77: cat << _EOF_ >> $TMP 78: 79: # IF YOU PUT ANYTHING HERE IT WILL GO AWAY 80: _EOF_ 81: 82: # copy to preserve permissions 83: cp $TMP $MAKE 84: rm -f ${MAKE}.bak $TMP 85: exit 0 86: 87: