| 
									
										
										
										
											2004-12-17 07:59:26 +00:00
										 |  |  | #!/bin/sh - | 
					
						
							| 
									
										
										
										
											2003-05-06 00:05:11 +00:00
										 |  |  | # | 
					
						
							|  |  |  | #	$OpenBSD: mkdep.gcc.sh,v 1.8 1998/09/02 06:40:07 deraadt Exp $ | 
					
						
							|  |  |  | #	$NetBSD: mkdep.gcc.sh,v 1.9 1994/12/23 07:34:59 jtc Exp $ | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Copyright (c) 1991, 1993 | 
					
						
							|  |  |  | #	The Regents of the University of California.  All rights reserved. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Redistribution and use in source and binary forms, with or without | 
					
						
							|  |  |  | # modification, are permitted provided that the following conditions | 
					
						
							|  |  |  | # are met: | 
					
						
							|  |  |  | # 1. Redistributions of source code must retain the above copyright | 
					
						
							|  |  |  | #    notice, this list of conditions and the following disclaimer. | 
					
						
							|  |  |  | # 2. Redistributions in binary form must reproduce the above copyright | 
					
						
							|  |  |  | #    notice, this list of conditions and the following disclaimer in the | 
					
						
							|  |  |  | #    documentation and/or other materials provided with the distribution. | 
					
						
							|  |  |  | # 3. All advertising materials mentioning features or use of this software | 
					
						
							|  |  |  | #    must display the following acknowledgement: | 
					
						
							|  |  |  | #	This product includes software developed by the University of | 
					
						
							|  |  |  | #	California, Berkeley and its contributors. | 
					
						
							|  |  |  | # 4. Neither the name of the University nor the names of its contributors | 
					
						
							|  |  |  | #    may be used to endorse or promote products derived from this software | 
					
						
							|  |  |  | #    without specific prior written permission. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | 
					
						
							|  |  |  | # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | 
					
						
							|  |  |  | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | 
					
						
							|  |  |  | # ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | 
					
						
							|  |  |  | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | 
					
						
							|  |  |  | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | 
					
						
							|  |  |  | # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | 
					
						
							|  |  |  | # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | 
					
						
							|  |  |  | # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | 
					
						
							|  |  |  | # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | 
					
						
							|  |  |  | # SUCH DAMAGE. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #	@(#)mkdep.gcc.sh	8.1 (Berkeley) 6/6/93 | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | D=.depend			# default dependency file is .depend | 
					
						
							|  |  |  | append=0 | 
					
						
							|  |  |  | pflag= | 
					
						
							| 
									
										
										
										
											2005-05-19 15:20:06 +00:00
										 |  |  | dflag= | 
					
						
							| 
									
										
										
										
											2003-05-06 00:05:11 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | while : | 
					
						
							|  |  |  | 	do case "$1" in | 
					
						
							|  |  |  | 		# -a appends to the depend file | 
					
						
							|  |  |  | 		-a) | 
					
						
							|  |  |  | 			append=1 | 
					
						
							|  |  |  | 			shift ;; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		# -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) | 
					
						
							|  |  |  | 			pflag=p | 
					
						
							|  |  |  | 			shift ;; | 
					
						
							| 
									
										
										
										
											2005-05-19 15:20:06 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |       		# the -d flag produces double-colon rules instead of single-colon rules | 
					
						
							|  |  |  |       		-d) | 
					
						
							|  |  |  | 			dflag=d | 
					
						
							|  |  |  | 			shift ;; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-05-06 00:05:11 +00:00
										 |  |  | 		*) | 
					
						
							|  |  |  | 			break ;; | 
					
						
							|  |  |  | 	esac | 
					
						
							|  |  |  | done | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if [ $# = 0 ] ; then | 
					
						
							| 
									
										
										
										
											2005-05-19 15:20:06 +00:00
										 |  |  | 	echo 'usage: mkdep [-p] [-d] [-f depend_file] [cc_flags] file ...' | 
					
						
							| 
									
										
										
										
											2003-05-06 00:05:11 +00:00
										 |  |  | 	exit 1 | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | DTMP=/tmp/mkdep$$ | 
					
						
							|  |  |  | TMP=$DTMP/mkdep | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | um=`umask` | 
					
						
							|  |  |  | umask 022 | 
					
						
							| 
									
										
										
										
											2004-12-17 07:59:26 +00:00
										 |  |  | mkdir $DTMP | 
					
						
							|  |  |  | if [ $? != 0 ] ; then | 
					
						
							| 
									
										
										
										
											2003-05-06 00:05:11 +00:00
										 |  |  | 	echo failed to create tmp dir $DTMP | 
					
						
							|  |  |  | 	exit 1 | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | umask $um | 
					
						
							|  |  |  | trap 'rm -rf $DTMP ; trap 2 ; kill -2 $$' 1 2 3 13 15 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-05-19 15:20:06 +00:00
										 |  |  | if [ x$pflag = xp ]; then | 
					
						
							| 
									
										
										
										
											2004-05-23 17:17:27 +00:00
										 |  |  | 	${CC:-cc} -M "$@" 2>/dev/null | sed -e 's;\.o :; :;' -e 's; \./; ;g' > $TMP | 
					
						
							| 
									
										
										
										
											2005-05-19 15:20:06 +00:00
										 |  |  | elif [ x$dflag = xd ]; then | 
					
						
							|  |  |  | 	${CC:-cc} -M "$@" 2>/dev/null | sed -e 's;\.o:;\.o::;' -e 's; \./; ;g' > $TMP | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  | 	${CC:-cc} -M "$@" 2>/dev/null | sed -e 's; \./; ;g' > $TMP | 
					
						
							| 
									
										
										
										
											2003-05-06 00:05:11 +00:00
										 |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if [ $? != 0 ]; then | 
					
						
							|  |  |  | 	echo 'mkdep: compile failed.' | 
					
						
							|  |  |  | 	rm -rf $DTMP | 
					
						
							|  |  |  | 	exit 1 | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if [ $append = 1 ]; then | 
					
						
							|  |  |  | 	cat $TMP >> $D | 
					
						
							|  |  |  | 	if [ $? != 0 ]; then | 
					
						
							|  |  |  | 		echo 'mkdep: append failed.' | 
					
						
							|  |  |  | 		rm -rf $DTMP | 
					
						
							|  |  |  | 		exit 1 | 
					
						
							|  |  |  | 	fi | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  | 	mv $TMP $D | 
					
						
							|  |  |  | 	if [ $? != 0 ]; then | 
					
						
							|  |  |  | 		echo 'mkdep: rename failed.' | 
					
						
							|  |  |  | 		rm -rf $DTMP | 
					
						
							|  |  |  | 		exit 1 | 
					
						
							|  |  |  | 	fi | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | rm -rf $DTMP | 
					
						
							|  |  |  | exit 0 |