88 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
#!/bin/sh -
 | 
						|
#
 | 
						|
# 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,
 | 
						|
# and/or 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.12 (Berkeley) 6/30/88
 | 
						|
#
 | 
						|
 | 
						|
MAKE=Makefile			# default makefile name is "Makefile"
 | 
						|
 | 
						|
while :
 | 
						|
	do case "$1" in
 | 
						|
		# -f allows you to select a makefile name
 | 
						|
		-f)
 | 
						|
			MAKE=$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] [-f makefile] [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
 | 
						|
# DO NOT DELETE THIS LINE -- mkdep uses it.
 | 
						|
# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
 | 
						|
 | 
						|
_EOF_
 | 
						|
 | 
						|
# 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/' |
 | 
						|
 | 
						|
gcc -MM $* |
 | 
						|
sed "
 | 
						|
	s; \./; ;g
 | 
						|
	$SED" >> $TMP
 | 
						|
 | 
						|
cat << _EOF_ >> $TMP
 | 
						|
 | 
						|
# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
 | 
						|
_EOF_
 | 
						|
 | 
						|
# copy to preserve permissions
 | 
						|
cp $TMP $MAKE
 | 
						|
rm -f ${MAKE}.bak $TMP
 | 
						|
exit 0
 | 
						|
 | 
						|
 |