File:  [ELWIX - Embedded LightWeight unIX -] / libaitcfg / mkdep
Revision 1.2: download - view: text, annotated - select for diffs - revision graph
Wed May 18 15:18:10 2016 UTC (7 years, 11 months ago) by misho
Branches: MAIN
CVS tags: cfg9_5, cfg9_4, cfg9_3, cfg9_2, cfg9_1, cfg8_2, cfg8_1, cfg8_0, cfg7_9, cfg7_8, HEAD, CFG9_4, CFG9_3, CFG9_2, CFG9_1, CFG9_0, CFG8_1, CFG8_0, CFG7_9, CFG7_8, CFG7_7
7.7

    1: #!/bin/sh -
    2: #
    3: # Copyright (c) 1991, 1993
    4: #	The Regents of the University of California.  All rights reserved.
    5: #
    6: # Redistribution and use in source and binary forms, with or without
    7: # modification, are permitted provided that the following conditions
    8: # are met:
    9: # 1. Redistributions of source code must retain the above copyright
   10: #    notice, this list of conditions and the following disclaimer.
   11: # 2. Redistributions in binary form must reproduce the above copyright
   12: #    notice, this list of conditions and the following disclaimer in the
   13: #    documentation and/or other materials provided with the distribution.
   14: # 4. Neither the name of the University nor the names of its contributors
   15: #    may be used to endorse or promote products derived from this software
   16: #    without specific prior written permission.
   17: #
   18: # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
   19: # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   20: # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   21: # ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
   22: # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   23: # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   24: # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   25: # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   26: # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   27: # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   28: # SUCH DAMAGE.
   29: #
   30: #	@(#)mkdep.gcc.sh	8.1 (Berkeley) 6/6/93
   31: # $FreeBSD: head/usr.bin/mkdep/mkdep.gcc.sh 216370 2010-12-11 08:32:16Z joel $
   32: 
   33: D=.depend			# default dependency file is .depend
   34: append=0
   35: pflag=
   36: 
   37: while :
   38: 	do case "$1" in
   39: 		# -a appends to the depend file
   40: 		-a)
   41: 			append=1
   42: 			shift ;;
   43: 
   44: 		# -f allows you to select a makefile name
   45: 		-f)
   46: 			D=$2
   47: 			shift; shift ;;
   48: 
   49: 		# the -p flag produces "program: program.c" style dependencies
   50: 		# so .o's don't get produced
   51: 		-p)
   52: 			pflag=p
   53: 			shift ;;
   54: 		*)
   55: 			break ;;
   56: 	esac
   57: done
   58: 
   59: case $# in 0) 
   60: 	echo 'usage: mkdep [-ap] [-f file] [flags] file ...' >&2
   61: 	exit 1;;
   62: esac
   63: 
   64: TMP=_mkdep$$
   65: trap 'rm -f $TMP ; trap 2 ; kill -2 $$' 1 2 3 13 15
   66: trap 'rm -f $TMP' 0
   67: 
   68: # For C sources, mkdep must use exactly the same cpp and predefined flags
   69: # as the compiler would.  This is easily arranged by letting the compiler
   70: # pick the cpp.  mkdep must be told the cpp to use for exceptional cases.
   71: CC=${CC-"cc"}
   72: MKDEP_CPP=${MKDEP_CPP-"${CC} -E"}
   73: MKDEP_CPP_OPTS=${MKDEP_CPP_OPTS-"-M"};
   74: 
   75: echo "# $@" > $TMP	# store arguments for debugging
   76: 
   77: if $MKDEP_CPP $MKDEP_CPP_OPTS "$@" >> $TMP; then :
   78: else
   79: 	echo 'mkdep: compile failed' >&2
   80: 	exit 1
   81: fi
   82: 
   83: case x$pflag in
   84: 	x) case $append in 
   85: 		0) sed -e 's; \./; ;g' < $TMP >  $D;;
   86: 		*) sed -e 's; \./; ;g' < $TMP >> $D;;
   87: 	   esac
   88: 	;;	
   89: 	*) case $append in 
   90: 		0) sed -e 's;\.o:;:;' -e 's; \./; ;g' < $TMP >  $D;;
   91: 		*) sed -e 's;\.o:;:;' -e 's; \./; ;g' < $TMP >> $D;;
   92: 	   esac
   93: 	;;
   94: esac
   95: 
   96: exit $?

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>