123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- MAKE=Makefile # default makefile name is "Makefile"
- CC=cc # default C compiler is "cc"
- DEPENDENCY_CFLAG=-M # default dependency-generation flag is -M
- while :
- do case "$1" in
- # -c allows you to specify the C compiler
- -c)
- CC=$2
- shift; shift ;;
- # -f allows you to select a makefile name
- -f)
- MAKE=$2
- shift; shift ;;
- # -m allows you to specify the dependency-generation flag
- -m)
- DEPENDENCY_CFLAG=$2
- shift; shift ;;
- # the -p flag produces "program: program.c" style dependencies
- # so .o's don't get produced
- -p)
- SED='s;\.o;;'
- shift ;;
- *)
- break ;;
- esac
- done
- if [ $# = 0 ] ; then
- echo 'usage: mkdep [-p] [-c cc] [-f makefile] [-m dependency-cflag] [flags] file ...'
- exit 1
- fi
- if [ ! -w $MAKE ]; then
- echo "mkdep: no writeable file \"$MAKE\""
- exit 1
- fi
- TMP=/tmp/mkdep$$
- trap 'rm -f $TMP ; exit 1' 1 2 3 13 15
- cp $MAKE ${MAKE}.bak
- sed -e '/DO NOT DELETE THIS LINE/,$d' < $MAKE > $TMP
- cat << _EOF_ >> $TMP
- _EOF_
- $CC $DEPENDENCY_CFLAG $* |
- sed "
- s; \./; ;g
- $SED" |
- awk '{
- if ($1 != prev) {
- if (rec != "")
- print rec;
- rec = $0;
- prev = $1;
- }
- else {
- if (length(rec $2) > 78) {
- print rec;
- rec = $0;
- }
- else
- rec = rec " " $2
- }
- }
- END {
- print rec
- }' >> $TMP
- cat << _EOF_ >> $TMP
- _EOF_
- cp $TMP $MAKE
- rm -f ${MAKE}.bak $TMP
- exit 0
|