Make mkdep throw away stderr since people think the error messages printed are seriou...
[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 if ! mkdir $DTMP ; then
77         echo failed to create tmp dir $DTMP
78         exit 1
79 fi
80
81 umask $um
82 trap 'rm -rf $DTMP ; trap 2 ; kill -2 $$' 1 2 3 13 15
83
84 if [ x$pflag = x ]; then
85         ${CC:-cc} -M "$@" 2>/dev/null | sed -e 's; \./; ;g' > $TMP
86 else
87         ${CC:-cc} -M "$@" 2>/dev/null | sed -e 's;\.o :; :;' -e 's; \./; ;g' > $TMP
88 fi
89
90 if [ $? != 0 ]; then
91         echo 'mkdep: compile failed.'
92         rm -rf $DTMP
93         exit 1
94 fi
95
96 if [ $append = 1 ]; then
97         cat $TMP >> $D
98         if [ $? != 0 ]; then
99                 echo 'mkdep: append failed.'
100                 rm -rf $DTMP
101                 exit 1
102         fi
103 else
104         mv $TMP $D
105         if [ $? != 0 ]; then
106                 echo 'mkdep: rename failed.'
107                 rm -rf $DTMP
108                 exit 1
109         fi
110 fi
111
112 rm -rf $DTMP
113 exit 0