Annotation of 43BSDTahoe/usr.bin/mkdep.sh, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.