|
|
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 $?
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.