Annotation of sbbs/src/build/mkdep, revision 1.1.1.1

1.1       root        1: #!/bin/sh -
                      2: #
                      3: # Copyright (c) 1991, 1993
                      4: #      The Regents of the University of California.  All rights reserved.
                      5: #
                      6: # Redistribution and use in source and binary forms, with or without
                      7: # modification, are permitted provided that the following conditions
                      8: # are met:
                      9: # 1. Redistributions of source code must retain the above copyright
                     10: #    notice, this list of conditions and the following disclaimer.
                     11: # 2. Redistributions in binary form must reproduce the above copyright
                     12: #    notice, this list of conditions and the following disclaimer in the
                     13: #    documentation and/or other materials provided with the distribution.
                     14: # 3. All advertising materials mentioning features or use of this software
                     15: #    must display the following acknowledgement:
                     16: #      This product includes software developed by the University of
                     17: #      California, Berkeley and its contributors.
                     18: # 4. Neither the name of the University nor the names of its contributors
                     19: #    may be used to endorse or promote products derived from this software
                     20: #    without specific prior written permission.
                     21: #
                     22: # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
                     23: # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     24: # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     25: # ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
                     26: # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     27: # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     28: # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     29: # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     30: # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     31: # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     32: # SUCH DAMAGE.
                     33: #
                     34: #      @(#)mkdep.gcc.sh        8.1 (Berkeley) 6/6/93
                     35: # $FreeBSD: src/usr.bin/mkdep/mkdep.gcc.sh,v 1.18 1999/08/28 01:04:04 peter Exp $
                     36: 
                     37: D=.depend                      # default dependency file is .depend
                     38: append=0
                     39: pflag=
                     40: outpath=.
                     41: objfile=
                     42: outfile=
                     43: ALL_ARGS=
                     44: 
                     45: while :
                     46:        do case "$1" in
                     47:                # -a appends to the depend file
                     48:                -a)
                     49:                        append=1
                     50:                        shift ;;
                     51: 
                     52:                # -f allows you to select a makefile name
                     53:                -f)
                     54:                        D=$2
                     55:                        shift; shift ;;
                     56: 
                     57:                # the -p flag produces "program: program.c" style dependencies
                     58:                # so .o's don't get produced
                     59:                -p)
                     60:                        pflag=p
                     61:                        shift ;;
                     62:                -MMD)
                     63:                        shift;;
                     64:                -o)
                     65:                        outfile=$2
                     66:                        objfile=`echo $outfile | sed -e 's;gcc.*/;;g'`
                     67:                        outpath=`echo $outfile | sed -e 's;/[^/]*;;g'`
                     68:                        D=$outpath\/$D
                     69:                        shift; shift ;;
                     70:                        
                     71:                *)
                     72:                        ALL_ARGS="$ALL_ARGS $1"
                     73:                        shift ;;
                     74:        esac
                     75:        test -z "$1" && break
                     76: done
                     77: 
                     78: TMP=_mkdep$$
                     79: trap 'rm -f $TMP ; trap 2 ; kill -2 $$' 1 2 3 13 15
                     80: trap 'rm -f $TMP' 0
                     81: 
                     82: # For C sources, mkdep must use exactly the same cpp and predefined flags
                     83: # as the compiler would.  This is easily arranged by letting the compiler
                     84: # pick the cpp.  mkdep must be told the cpp to use for exceptional cases.
                     85: CC=${CC-"cc"}
                     86: MKDEP_CPP=${MKDEP_CPP-"${CC} -E"}
                     87: MKDEP_CPP_OPTS=${MKDEP_CPP_OPTS-"-M"};
                     88: 
                     89: echo "# $@" > $TMP     # store arguments for debugging
                     90: 
                     91: if $MKDEP_CPP $MKDEP_CPP_OPTS $ALL_ARGS | sed -e "s;$objfile:;$outfile:;g;" >> $TMP; then :
                     92: else
                     93:        echo 'mkdep: compile failed' >&2
                     94:        exit 1
                     95: fi
                     96: 
                     97: case x$pflag in
                     98:        x) case $append in 
                     99:                0) sed -e 's; \./; ;g' < $TMP >  $D;;
                    100:                *) sed -e 's; \./; ;g' < $TMP >> $D;;
                    101:           esac
                    102:        ;;      
                    103:        *) case $append in 
                    104:                0) sed -e 's;\.o:;:;' -e 's; \./; ;g' < $TMP >  $D;;
                    105:                *) sed -e 's;\.o:;:;' -e 's; \./; ;g' < $TMP >> $D;;
                    106:           esac
                    107:        ;;
                    108: esac
                    109: 
                    110: exit $?

unix.superglobalmegacorp.com

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