Annotation of src/usr.bin/mkdep/mkdep.sh, Revision 1.1
1.1 ! deraadt 1: #!/bin/sh -
! 2: #
! 3: # $NetBSD: mkdep.sh,v 1.3 1994/12/23 07:35:02 jtc Exp $
! 4: #
! 5: # Copyright (c) 1991, 1993
! 6: # The Regents of the University of California. All rights reserved.
! 7: #
! 8: # Redistribution and use in source and binary forms, with or without
! 9: # modification, are permitted provided that the following conditions
! 10: # are met:
! 11: # 1. Redistributions of source code must retain the above copyright
! 12: # notice, this list of conditions and the following disclaimer.
! 13: # 2. Redistributions in binary form must reproduce the above copyright
! 14: # notice, this list of conditions and the following disclaimer in the
! 15: # documentation and/or other materials provided with the distribution.
! 16: # 3. All advertising materials mentioning features or use of this software
! 17: # must display the following acknowledgement:
! 18: # This product includes software developed by the University of
! 19: # California, Berkeley and its contributors.
! 20: # 4. Neither the name of the University nor the names of its contributors
! 21: # may be used to endorse or promote products derived from this software
! 22: # without specific prior written permission.
! 23: #
! 24: # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
! 25: # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
! 26: # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
! 27: # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
! 28: # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
! 29: # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
! 30: # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
! 31: # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
! 32: # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
! 33: # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
! 34: # SUCH DAMAGE.
! 35: #
! 36: # @(#)mkdep.sh 8.1 (Berkeley) 6/6/93
! 37: #
! 38:
! 39: PATH=/bin:/usr/bin:/usr/ucb:/usr/old/bin
! 40: export PATH
! 41:
! 42: D=.depend # default dependency file is .depend
! 43: append=0
! 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: SED='s;\.o ; ;'
! 61: shift ;;
! 62: *)
! 63: break ;;
! 64: esac
! 65: done
! 66:
! 67: if [ $# = 0 ] ; then
! 68: echo 'usage: mkdep [-p] [-f depend_file] [cc_flags] file ...'
! 69: exit 1
! 70: fi
! 71:
! 72: TMP=/tmp/mkdep$$
! 73:
! 74: trap 'rm -f $TMP ; exit 1' 1 2 3 13 15
! 75:
! 76: cc -M $* |
! 77: sed "
! 78: s; \./; ;g
! 79: /\.c:$/d
! 80: $SED" |
! 81: awk '{
! 82: if ($1 != prev) {
! 83: if (rec != "")
! 84: print rec;
! 85: rec = $0;
! 86: prev = $1;
! 87: }
! 88: else {
! 89: if (length(rec $2) > 78) {
! 90: print rec;
! 91: rec = $0;
! 92: }
! 93: else
! 94: rec = rec " " $2
! 95: }
! 96: }
! 97: END {
! 98: print rec
! 99: }' > $TMP
! 100:
! 101: if [ $? != 0 ]; then
! 102: echo 'mkdep: compile failed.'
! 103: rm -f $TMP
! 104: exit 1
! 105: fi
! 106:
! 107: if [ $append = 1 ]; then
! 108: cat $TMP >> $D
! 109: rm -f $TMP
! 110: else
! 111: mv $TMP $D
! 112: fi
! 113: exit 0