Import bind 9.5.2 vendor sources.
[dragonfly.git] / contrib / bind-9.5.2 / lib / bind / make / mkdep.in
1 #!/bin/sh -
2
3 ## ++Copyright++ 1987
4 ## -
5 ## Copyright (c) 1987 Regents of the University of California.
6 ## 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 ## THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
24 ## ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25 ## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26 ## ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27 ## FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 ## DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 ## OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 ## HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 ## LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 ## OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 ## SUCH DAMAGE.
34 ## -
35 ## Portions Copyright (c) 1993 by Digital Equipment Corporation.
36 ##
37 ## Permission to use, copy, modify, and distribute this software for any
38 ## purpose with or without fee is hereby granted, provided that the above
39 ## copyright notice and this permission notice appear in all copies, and that
40 ## the name of Digital Equipment Corporation not be used in advertising or
41 ## publicity pertaining to distribution of the document or software without
42 ## specific, written prior permission.
43 ##
44 ## THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
45 ## WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
46 ## OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT
47 ## CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
48 ## DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
49 ## PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
50 ## ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
51 ## SOFTWARE.
52 ## -
53 ## --Copyright--
54
55 #
56 #       @(#)mkdep.sh    5.12 (Berkeley) 6/30/88
57 #
58
59 MAKE=Makefile                   # default makefile name is "Makefile"
60
61 while :
62         do case "$1" in
63                 # -f allows you to select a makefile name
64                 -f)
65                         MAKE=$2
66                         shift; shift ;;
67
68                 # the -p flag produces "program: program.c" style dependencies
69                 # so .o's don't get produced
70                 -p)
71                         SED='s;\.o;;'
72                         shift ;;
73                 *)
74                         break ;;
75         esac
76 done
77
78 if [ $# = 0 ] ; then
79         echo 'usage: mkdep [-p] [-f makefile] [flags] file ...'
80         exit 1
81 fi
82
83 if [ ! -w $MAKE ]; then
84         echo "mkdep: no writeable file \"$MAKE\""
85         exit 1
86 fi
87
88 TMP=mkdep$$
89
90 trap 'rm -f $TMP ; exit 1' 1 2 3 13 15
91
92 cp $MAKE ${MAKE}.bak
93
94 sed -e '/DO NOT DELETE THIS LINE/,$d' < $MAKE > $TMP
95
96 cat << _EOF_ >> $TMP
97 # DO NOT DELETE THIS LINE -- mkdep uses it.
98 # DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
99
100 _EOF_
101
102 # If your compiler doesn't have -M, add it.  If you can't, the next two
103 # lines will try and replace the "cc -M".  The real problem is that this
104 # hack can't deal with anything that requires a search path, and doesn't
105 # even try for anything using bracket (<>) syntax.
106 #
107 # egrep '^#include[     ]*".*"' /dev/null $* |
108 # sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' -e 's/\.c/.o/' |
109
110 MKDEPPROG="@MKDEPPROG@"
111 if [ X"${MKDEPPROG}" != X ]; then
112     @SHELL@ -c "${MKDEPPROG} $*"
113 else
114     @MKDEPCC@ @MKDEPCFLAGS@ $* |
115     sed "
116         s; \./; ;g
117         $SED" |
118     awk '{
119         if ($1 != prev) {
120                 if (rec != "")
121                         print rec;
122                 rec = $0;
123                 prev = $1;
124         }
125         else {
126                 if (length(rec $2) > 78) {
127                         print rec;
128                         rec = $0;
129                 }
130                 else
131                         rec = rec " " $2
132         }
133     }
134     END {
135         print rec
136     }' >> $TMP
137 fi
138
139 cat << _EOF_ >> $TMP
140
141 # IF YOU PUT ANYTHING HERE IT WILL GO AWAY
142 _EOF_
143
144 # copy to preserve permissions
145 cp $TMP $MAKE
146 rm -f ${MAKE}.bak $TMP
147 exit 0