Mercurial > hg > CbC > CbC_gcc
comparison mkdep @ 0:a06113de4d67
first commit
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 17 Jul 2009 14:47:48 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:a06113de4d67 |
---|---|
1 #!/bin/sh - | |
2 # | |
3 # Copyright (c) 1987 Regents of the University of California. | |
4 # All rights reserved. | |
5 # | |
6 # Redistribution and use in source and binary forms are permitted | |
7 # provided that the above copyright notice and this paragraph are | |
8 # duplicated in all such forms and that any documentation, | |
9 # advertising materials, and other materials related to such | |
10 # distribution and use acknowledge that the software was developed | |
11 # by the University of California, Berkeley. The name of the | |
12 # University may not be used to endorse or promote products derived | |
13 # from this software without specific prior written permission. | |
14 # THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR | |
15 # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED | |
16 # WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. | |
17 # | |
18 # @(#)mkdep.sh 5.12 (Berkeley) 6/30/88 | |
19 # | |
20 | |
21 MAKE=Makefile # default makefile name is "Makefile" | |
22 | |
23 while : | |
24 do case "$1" in | |
25 # -f allows you to select a makefile name | |
26 -f) | |
27 MAKE=$2 | |
28 shift; shift ;; | |
29 | |
30 # the -p flag produces "program: program.c" style dependencies | |
31 # so .o's don't get produced | |
32 -p) | |
33 SED='s;\.o;;' | |
34 shift ;; | |
35 *) | |
36 break ;; | |
37 esac | |
38 done | |
39 | |
40 if [ $# = 0 ] ; then | |
41 echo 'usage: mkdep [-p] [-f makefile] [flags] file ...' | |
42 exit 1 | |
43 fi | |
44 | |
45 if [ ! -w $MAKE ]; then | |
46 echo "mkdep: no writeable file \"$MAKE\"" | |
47 exit 1 | |
48 fi | |
49 | |
50 TMP=/tmp/mkdep$$ | |
51 | |
52 trap 'rm -f $TMP ; exit 1' 1 2 3 13 15 | |
53 | |
54 cp $MAKE ${MAKE}.bak | |
55 | |
56 sed -e '/DO NOT DELETE THIS LINE/,$d' < $MAKE > $TMP | |
57 | |
58 cat << _EOF_ >> $TMP | |
59 # DO NOT DELETE THIS LINE -- mkdep uses it. | |
60 # DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. | |
61 | |
62 _EOF_ | |
63 | |
64 # If your compiler doesn't have -M, add it. If you can't, the next two | |
65 # lines will try and replace the "cc -M". The real problem is that this | |
66 # hack can't deal with anything that requires a search path, and doesn't | |
67 # even try for anything using bracket (<>) syntax. | |
68 # | |
69 # egrep '^#include[ ]*".*"' /dev/null $* | | |
70 # sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' -e 's/\.c/.o/' | | |
71 | |
72 gcc -MM $* | | |
73 sed " | |
74 s; \./; ;g | |
75 $SED" >> $TMP | |
76 | |
77 cat << _EOF_ >> $TMP | |
78 | |
79 # IF YOU PUT ANYTHING HERE IT WILL GO AWAY | |
80 _EOF_ | |
81 | |
82 # copy to preserve permissions | |
83 cp $TMP $MAKE | |
84 rm -f ${MAKE}.bak $TMP | |
85 exit 0 | |
86 | |
87 |