Annotation of 43BSDReno/pgrm/mkdep/mkdep.old.compiler, revision 1.1.1.1

1.1       root        1: #!/bin/sh -
                      2: #
                      3: # Copyright (c) 1988 The 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.old.compiler       5.2 (Berkeley) 10/24/88
                     19: #
                     20: 
                     21: # This is a version of mkdep that works pretty well
                     22: # with compilers that don't have -M.
                     23: 
                     24: PATH=/bin:/usr/bin:/usr/ucb:/lib:/usr/lib
                     25: 
                     26: INCL=
                     27: D=.depend
                     28: append=0
                     29: 
                     30: while :
                     31:        do case "$1" in
                     32:                # -a appends to the depend file
                     33:                -a)
                     34:                        append=1
                     35:                        shift ;;
                     36: 
                     37:                # -f allows you to select a makefile name
                     38:                -f)
                     39:                        D=$2
                     40:                        shift; shift ;;
                     41: 
                     42:                # the -p flag produces "program: program.c" style dependencies
                     43:                # so .o's don't get produced
                     44:                -p)
                     45:                        SED='s;\.o;;'
                     46:                        shift ;;
                     47:                *)
                     48:                        break ;;
                     49:        esac
                     50: done
                     51: 
                     52: if [ $# = 0 ] ; then
                     53:        echo 'usage: mkdep [-f depend_file] [cc_flags] file ...'
                     54:        exit 1
                     55: fi
                     56: 
                     57: TMP=/tmp/mkdep$$
                     58: trap 'rm -f $TMP ; exit 1' 1 2 3 13 15
                     59: 
                     60: for i do
                     61:        case "$i" in
                     62:        -c|-M)
                     63:                ;;
                     64:        -I*)
                     65:                INCL="$INCL $i";;
                     66:        -D*|-O|-U*)
                     67:                FLAGS="$FLAGS $i";;
                     68:        *)
                     69:                # assume source file
                     70:                # put '$dep' in front of dependencies
                     71:                dep=`echo "$i" | sed -e 's,/,\\\\/,g' -e 's/\.c$/.o/'`
                     72: 
                     73:                # Find includes, remove leading numerics, remove ./,
                     74:                # remove double quotes, and remove trailing numerics.
                     75:                # Sort that, discarding duplicates, and add '$dep'.
                     76:                cpp $INCL $FLAGS "$i" | sed -e '
                     77:                        /^#/!d
                     78:                        s/# [0-9]* //
                     79:                        s,"./,",
                     80:                        s/"\(.*\)"/\1/
                     81:                        s/ [ 0-9]*$//' |
                     82:                sort -u | sed -e "s/^/$dep: /";;
                     83:        esac
                     84: done |
                     85: sed "
                     86:        s; \./; ;g
                     87:        /\.c:$/d
                     88:        $SED" |
                     89: awk '{
                     90:        if ($1 != prev) {
                     91:                if (rec != "")
                     92:                        print rec;
                     93:                rec = $0;
                     94:                prev = $1;
                     95:        }
                     96:        else {
                     97:                if (length(rec $2) > 78) {
                     98:                        print rec;
                     99:                        rec = $0;
                    100:                }
                    101:                else
                    102:                        rec = rec " " $2
                    103:        }
                    104: }
                    105: END {
                    106:        print rec
                    107: }' > $TMP
                    108: 
                    109: if [ $append = 1 ]; then
                    110:        cat $TMP >> $D
                    111:        rm -f $TMP
                    112: else
                    113:        mv $TMP $D
                    114: fi
                    115: exit 0

unix.superglobalmegacorp.com

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