home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / NETWORK / ISP / bind.4.8.3.lzh / BIND483 / BIN / mkdep.append < prev    next >
Text File  |  1993-08-24  |  2KB  |  107 lines

  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. PATH=/bin:/usr/bin:/usr/ucb
  21. export PATH
  22.  
  23. MAKE=Makefile            # default makefile name is "Makefile"
  24.  
  25. while :
  26.     do case "$1" in
  27.         # -f allows you to select a makefile name
  28.         -f)
  29.             MAKE=$2
  30.             shift; shift ;;
  31.  
  32.         # the -p flag produces "program: program.c" style dependencies
  33.         # so .o's don't get produced
  34.         -p)
  35.             SED='s;\.o;;'
  36.             shift ;;
  37.         *)
  38.             break ;;
  39.     esac
  40. done
  41.  
  42. if [ $# = 0 ] ; then
  43.     echo 'usage: mkdep [-p] [-f makefile] [flags] file ...'
  44.     exit 1
  45. fi
  46.  
  47. if [ ! -w $MAKE ]; then
  48.     echo "mkdep: no writeable file \"$MAKE\""
  49.     exit 1
  50. fi
  51.  
  52. TMP=/tmp/mkdep$$
  53.  
  54. trap 'rm -f $TMP ; exit 1' 1 2 3 13 15
  55.  
  56. cp $MAKE ${MAKE}.bak
  57.  
  58. sed -e '/DO NOT DELETE THIS LINE/,$d' < $MAKE > $TMP
  59.  
  60. cat << _EOF_ >> $TMP
  61. # DO NOT DELETE THIS LINE -- mkdep uses it.
  62. # DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
  63.  
  64. _EOF_
  65.  
  66. # If your compiler doesn't have -M, add it.  If you can't, the next two
  67. # lines will try and replace the "cc -M".  The real problem is that this
  68. # hack can't deal with anything that requires a search path, and doesn't
  69. # even try for anything using bracket (<>) syntax.
  70. #
  71. # egrep '^#include[     ]*".*"' /dev/null $* |
  72. # sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' -e 's/\.c/.o/' |
  73.  
  74. cc -M $* |
  75. sed "
  76.     s; \./; ;g
  77.     $SED" |
  78. awk '{
  79.     if ($1 != prev) {
  80.         if (rec != "")
  81.             print rec;
  82.         rec = $0;
  83.         prev = $1;
  84.     }
  85.     else {
  86.         if (length(rec $2) > 78) {
  87.             print rec;
  88.             rec = $0;
  89.         }
  90.         else
  91.             rec = rec " " $2
  92.     }
  93. }
  94. END {
  95.     print rec
  96. }' >> $TMP
  97.  
  98. cat << _EOF_ >> $TMP
  99.  
  100. # IF YOU PUT ANYTHING HERE IT WILL GO AWAY
  101. _EOF_
  102.  
  103. # copy to preserve permissions
  104. cp $TMP $MAKE
  105. rm -f ${MAKE}.bak $TMP
  106. exit 0
  107.