give all the versions their on SCCS id's
[unix-history] / usr / src / usr.bin / mkdep / mkdep.sh
index 1743d39..78f1a7f 100644 (file)
@@ -1,45 +1,94 @@
-#! /bin/sh
+#!/bin/sh -
 #
 #
-#      @(#)mkdep.sh    5.1     (Berkeley)      %G%
+# Copyright (c) 1987 Regents of the University of California.
+# All rights reserved.
 #
 #
+# Redistribution and use in source and binary forms are permitted
+# provided that the above copyright notice and this paragraph are
+# duplicated in all such forms and that any documentation,
+# advertising materials, and other materials related to such
+# distribution and use acknowledge that the software was developed
+# by the University of California, Berkeley.  The name of the
+# University may not be used to endorse or promote products derived
+# from this software without specific prior written permission.
+# THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+#
+#      @(#)mkdep.sh    5.18 (Berkeley) %G%
+#
+PATH=/bin:/usr/bin:/usr/ucb
+export PATH
 
 
-CC="/bin/cc -M"
-TMP=/tmp/mkdep$$
+D=.depend                      # default dependency file is .depend
+append=0
 
 
-trap '/bin/rm -f $TMP ; exit 1' 1 2 3 13 15
+while :
+       do case "$1" in
+               # -a appends to the depend file
+               -a)
+                       append=1
+                       shift ;;
 
 
-cp Makefile Makefile.bak
+               # -f allows you to select a makefile name
+               -f)
+                       D=$2
+                       shift; shift ;;
 
 
-sed -e '/DO NOT DELETE THIS LINE/,$d' < Makefile > $TMP
+               # the -p flag produces "program: program.c" style dependencies
+               # so .o's don't get produced
+               -p)
+                       SED='s;\.o;;'
+                       shift ;;
+               *)
+                       break ;;
+       esac
+done
 
 
-cat << _EOF_ >> $TMP
-# DON'T DELETE THIS LINE -- mkdep uses it.
-# DON'T PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
+if [ $# = 0 ] ; then
+       echo 'usage: mkdep [-p] [-f depend_file] [cc_flags] file ...'
+       exit 1
+fi
 
 
-_EOF_
+TMP=/tmp/mkdep$$
 
 
-$CC $* | sed -e 's, ./, ,g' | \
-       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
+trap 'rm -f $TMP ; exit 1' 1 2 3 13 15
 
 
-cat << _EOF_ >> $TMP
+cc -M $* |
+sed "
+       s; \./; ;g
+       /\.c:$/d
+       $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
 
 
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
-_EOF_
+if [ $? != 0 ]; then
+       echo 'mkdep: compile failed.'
+       rm -f $TMP
+       exit 1
+fi
 
 
-mv $TMP Makefile
-rm -f Makefile.bak
+if [ $append = 1 ]; then
+       cat $TMP >> $D
+       rm -f $TMP
+else
+       mv $TMP $D
+fi
 exit 0
 exit 0