add Berkeley copyright notice
[unix-history] / usr / src / usr.bin / mkdep / mkdep.sh
index acd6192..295e444 100644 (file)
@@ -4,39 +4,43 @@
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms are permitted
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms are permitted
-# provided that this notice is preserved and that due credit is given
-# to the University of California at 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'' without express or implied warranty.
+# 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.8 (Berkeley) %G%
+#      @(#)mkdep.sh    5.14 (Berkeley) %G%
 #
 #
-
 PATH=/bin:/usr/bin:/usr/ucb
 export PATH
 
 PATH=/bin:/usr/bin:/usr/ucb
 export PATH
 
-if [ $# = 0 ] ; then
-       echo 'usage: mkdep [-p] [-f makefile] [flags] file ...'
-       exit 1
-fi
+D=.depend                      # default dependency file is .depend
 
 
-MAKE=Makefile                  # default makefile name is "Makefile"
-case $1 in
-       # -f allows you to select a makefile name
-       -f)
-               MAKE=$2
-               shift; shift ;;
+while :
+       do case "$1" in
+               # -f allows you to select a makefile name
+               -f)
+                       D=$2
+                       shift; shift ;;
 
 
-       # the -p flag produces "program: program.c" style dependencies
-       # so .o's don't get produced
-       -p)
-               SED='-e s;\.o;;'
-               shift ;;
-esac
+               # 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 [ ! -w $MAKE ]; then
-       echo "mkdep: no writeable file \"$MAKE\""
+if [ $# = 0 ] ; then
+       echo 'usage: mkdep [-p] [-f depend_file] [cc_flags] file ...'
        exit 1
 fi
 
        exit 1
 fi
 
@@ -44,39 +48,37 @@ TMP=/tmp/mkdep$$
 
 trap 'rm -f $TMP ; exit 1' 1 2 3 13 15
 
 
 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
-# DO NOT DELETE THIS LINE -- mkdep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-_EOF_
-
-cc -M $* | /bin/sed -e "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
+# If your compiler doesn't have -M, add it.  If you can't, the next two
+# lines will try and replace the "cc -M".  The real problem is that this
+# hack can't deal with anything that requires a search path, and doesn't
+# even try for anything using bracket (<>) syntax.
+#
+# egrep '^#include[    ]*".*"' /dev/null $* |
+# sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' -e 's/\.c/.o/' |
 
 
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
-_EOF_
+cc -M $* |
+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
 
 
-# copy to preserve permissions
-cp $TMP $MAKE
-rm -f ${MAKE}.bak $TMP
+mv $TMP $D
 exit 0
 exit 0