/ added parameter to change ec suppresion threshhold from config
[asterisk/asterisk.git] / mkdep
1 #!/bin/sh -
2 #
3 #       $OpenBSD: mkdep.gcc.sh,v 1.8 1998/09/02 06:40:07 deraadt Exp $
4 #       $NetBSD: mkdep.gcc.sh,v 1.9 1994/12/23 07:34:59 jtc Exp $
5 #
6 # Copyright (c) 1991, 1993
7 #       The Regents of the University of California.  All rights reserved.
8 #
9 # Redistribution and use in source and binary forms, with or without
10 # modification, are permitted provided that the following conditions
11 # are met:
12 # 1. Redistributions of source code must retain the above copyright
13 #    notice, this list of conditions and the following disclaimer.
14 # 2. Redistributions in binary form must reproduce the above copyright
15 #    notice, this list of conditions and the following disclaimer in the
16 #    documentation and/or other materials provided with the distribution.
17 # 3. All advertising materials mentioning features or use of this software
18 #    must display the following acknowledgement:
19 #       This product includes software developed by the University of
20 #       California, Berkeley and its contributors.
21 # 4. Neither the name of the University nor the names of its contributors
22 #    may be used to endorse or promote products derived from this software
23 #    without specific prior written permission.
24 #
25 # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
26 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28 # ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
29 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
30 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
31 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
32 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
34 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
35 # SUCH DAMAGE.
36 #
37 #       @(#)mkdep.gcc.sh        8.1 (Berkeley) 6/6/93
38 #
39
40 D=.depend                       # default dependency file is .depend
41 append=0
42 pflag=
43
44 while :
45         do case "$1" in
46                 # -a appends to the depend file
47                 -a)
48                         append=1
49                         shift ;;
50
51                 # -f allows you to select a makefile name
52                 -f)
53                         D=$2
54                         shift; shift ;;
55
56                 # the -p flag produces "program: program.c" style dependencies
57                 # so .o's don't get produced
58                 -p)
59                         pflag=p
60                         shift ;;
61                 *)
62                         break ;;
63         esac
64 done
65
66 if [ $# = 0 ] ; then
67         echo 'usage: mkdep [-p] [-f depend_file] [cc_flags] file ...'
68         exit 1
69 fi
70
71 DTMP=/tmp/mkdep$$
72 TMP=$DTMP/mkdep
73
74 um=`umask`
75 umask 022
76 mkdir $DTMP
77 if [ $? != 0 ] ; then
78         echo failed to create tmp dir $DTMP
79         exit 1
80 fi
81
82 umask $um
83 trap 'rm -rf $DTMP ; trap 2 ; kill -2 $$' 1 2 3 13 15
84
85 if [ x$pflag = x ]; then
86         ${CC:-cc} -M "$@" 2>/dev/null | sed -e 's; \./; ;g' > $TMP
87 else
88         ${CC:-cc} -M "$@" 2>/dev/null | sed -e 's;\.o :; :;' -e 's; \./; ;g' > $TMP
89 fi
90
91 if [ $? != 0 ]; then
92         echo 'mkdep: compile failed.'
93         rm -rf $DTMP
94         exit 1
95 fi
96
97 if [ $append = 1 ]; then
98         cat $TMP >> $D
99         if [ $? != 0 ]; then
100                 echo 'mkdep: append failed.'
101                 rm -rf $DTMP
102                 exit 1
103         fi
104 else
105         mv $TMP $D
106         if [ $? != 0 ]; then
107                 echo 'mkdep: rename failed.'
108                 rm -rf $DTMP
109                 exit 1
110         fi
111 fi
112
113 rm -rf $DTMP
114 exit 0