source: trunk/third/traceroute/mkdep @ 10405

Revision 10405, 2.3 KB checked in by ghudson, 27 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r10404, which included commits to RCS files with non-trunk default branches.
  • Property svn:executable set to *
Line 
1#!/bin/sh -
2#
3# Copyright (c) 1994, 1996
4#       The Regents of the University of California.  All rights reserved.
5#
6# Redistribution and use in source and binary forms are permitted
7# provided that this notice is preserved and that due credit is given
8# to the University of California at Berkeley. The name of the University
9# may not be used to endorse or promote products derived from this
10# software without specific prior written permission. This software
11# is provided ``as is'' without express or implied warranty.
12#
13#       @(#)mkdep.sh    5.11 (Berkeley) 5/5/88
14#
15
16PATH=/bin:/usr/bin:/usr/ucb:/usr/local:/usr/local/bin
17export PATH
18
19MAKE=Makefile                   # default makefile name is "Makefile"
20CC=cc                           # default C compiler is "cc"
21
22while :
23        do case "$1" in
24                # -c allows you to specify the C compiler
25                -c)
26                        CC=$2
27                        shift; shift ;;
28
29                # -f allows you to select a makefile name
30                -f)
31                        MAKE=$2
32                        shift; shift ;;
33
34                # the -p flag produces "program: program.c" style dependencies
35                # so .o's don't get produced
36                -p)
37                        SED='s;\.o;;'
38                        shift ;;
39                *)
40                        break ;;
41        esac
42done
43
44if [ $# = 0 ] ; then
45        echo 'usage: mkdep [-p] [-c cc] [-f makefile] [flags] file ...'
46        exit 1
47fi
48
49if [ ! -w $MAKE ]; then
50        echo "mkdep: no writeable file \"$MAKE\""
51        exit 1
52fi
53
54TMP=/tmp/mkdep$$
55
56trap 'rm -f $TMP ; exit 1' 1 2 3 13 15
57
58cp $MAKE ${MAKE}.bak
59
60sed -e '/DO NOT DELETE THIS LINE/,$d' < $MAKE > $TMP
61
62cat << _EOF_ >> $TMP
63# DO NOT DELETE THIS LINE -- mkdep uses it.
64# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
65
66_EOF_
67
68# If your compiler doesn't have -M, add it.  If you can't, the next two
69# lines will try and replace the "cc -M".  The real problem is that this
70# hack can't deal with anything that requires a search path, and doesn't
71# even try for anything using bracket (<>) syntax.
72#
73# egrep '^#include[     ]*".*"' /dev/null $* |
74# sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' -e 's/\.c/.o/' |
75
76# XXX this doesn't work with things like "-DDECLWAITSTATUS=union\ wait"
77$CC -M $* |
78sed "
79        s; \./; ;g
80        $SED" |
81awk '{
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}
97END {
98        print rec
99}' >> $TMP
100
101cat << _EOF_ >> $TMP
102
103# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
104_EOF_
105
106# copy to preserve permissions
107cp $TMP $MAKE
108rm -f ${MAKE}.bak $TMP
109exit 0
Note: See TracBrowser for help on using the repository browser.