Remove advertising header from usr.bin/
[dragonfly.git] / usr.bin / mkdep / mkdep.sh
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. Neither the name of the University nor the names of its contributors
15 #    may be used to endorse or promote products derived from this software
16 #    without specific prior written permission.
17 #
18 # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
19 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 # ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
22 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 # SUCH DAMAGE.
29 #
30 #       @(#)mkdep.sh    8.1 (Berkeley) 6/6/93
31 #
32
33 PATH=/bin:/usr/bin:/usr/ucb:/usr/old/bin
34 export PATH
35
36 D=.depend                       # default dependency file is .depend
37 append=0
38
39 while :
40         do case "$1" in
41                 # -a appends to the depend file
42                 -a)
43                         append=1
44                         shift ;;
45
46                 # -f allows you to select a makefile name
47                 -f)
48                         D=$2
49                         shift; shift ;;
50
51                 # the -p flag produces "program: program.c" style dependencies
52                 # so .o's don't get produced
53                 -p)
54                         SED='s;\.o ; ;'
55                         shift ;;
56                 *)
57                         break ;;
58         esac
59 done
60
61 if [ $# = 0 ] ; then
62         echo 'usage: mkdep [-p] [-f depend_file] [cc_flags] file ...'
63         exit 1
64 fi
65
66 TMP=/tmp/mkdep$$
67
68 trap 'rm -f $TMP ; trap 2 ; kill -2 $$' 1 2 3 13 15
69
70 cc -M $* |
71 sed "
72         s; \./; ;g
73         /\.c:$/d
74         $SED" |
75 awk '{
76         if ($1 != prev) {
77                 if (rec != "")
78                         print rec;
79                 rec = $0;
80                 prev = $1;
81         }
82         else {
83                 if (length(rec $2) > 78) {
84                         print rec;
85                         rec = $0;
86                 }
87                 else
88                         rec = rec " " $2
89         }
90 }
91 END {
92         print rec
93 }' > $TMP
94
95 if [ $? != 0 ]; then
96         echo 'mkdep: compile failed.'
97         rm -f $TMP
98         exit 1
99 fi
100
101 if [ $append = 1 ]; then
102         cat $TMP >> $D
103         rm -f $TMP
104 else
105         mv $TMP $D
106 fi
107 exit 0