/contrib/bind9/make/mkdep.in
https://bitbucket.org/freebsd/freebsd-head/ · Autoconf · 187 lines · 90 code · 20 blank · 77 comment · 18 complexity · efdf4ff0388ed5a24999950a9dc7c254 MD5 · raw file
- #!/bin/sh -
- ##
- ## Modified to handle -vpath <path> option by Michael Graff, ISC.
- ## The purpose of this is to allow this script to run outside of the
- ## source directory, for instance when running configure with
- ## ../bind9-mainline/configure
- ## and still have "make depend" work.
- ##
- ## ++Copyright++ 1987
- ## -
- ## Copyright (c) 1987 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.
- ## -
- ## Portions Copyright (c) 1993 by Digital Equipment Corporation.
- ##
- ## Permission to use, copy, modify, and distribute this software for any
- ## purpose with or without fee is hereby granted, provided that the above
- ## copyright notice and this permission notice appear in all copies, and that
- ## the name of Digital Equipment Corporation not be used in advertising or
- ## publicity pertaining to distribution of the document or software without
- ## specific, written prior permission.
- ##
- ## THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
- ## WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
- ## OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
- ## CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- ## DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- ## PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- ## ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- ## SOFTWARE.
- ## -
- ## --Copyright--
- #
- # @(#)mkdep.sh 5.12 (Berkeley) 6/30/88
- #
- MAKE=Makefile # default makefile name is "Makefile"
- while :
- do case "$1" in
- # -vpath allows one to select a virtual path for .c files
- -vpath)
- VPATH=$2;
- shift; shift ;;
- # -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 [-vpath path] [-p] [-f makefile] [flags] file ...'
- exit 1
- fi
- if [ ! -w $MAKE ]; then
- echo "mkdep: no writeable file \"$MAKE\""
- exit 1
- fi
- 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/' |
- if [ X"${VPATH}" != X ] ; then
- for arg in $* ; do
- case "$arg" in
- -*)
- newargs="$newargs $arg"
- ;;
- *)
- newargs="$newargs $VPATH/$arg"
- ;;
- esac
- done
- else
- newargs="$*";
- fi
- MKDEPPROG="@MKDEPPROG@"
- if [ X"${MKDEPPROG}" != X ]; then
- @SHELL@ -c "${MKDEPPROG} ${newargs}"
- else
- @MKDEPCC@ @MKDEPCFLAGS@ ${newargs} |
- sed "
- s; \\./; ;g
- s; \\\\; ;g
- @LIBTOOL_MKDEP_SED@
- $SED" |
- awk '$1 ~ /:$/ {
- if (rec != "")
- print rec;
- if (NF == 1)
- rec = $1;
- else
- rec = $1 " " $2;
- for (i = 3; i <= NF; i++) {
- if (length(rec $i) > 76) {
- print rec " \\";
- rec = " " $i;
- } else {
- rec = rec " " $i;
- }
- }
- next;
- }
- {
- for (i = 1; i <= NF; i++) {
- if (length(rec $i) > 76) {
- print rec, "\\";
- rec = " " $i;
- } else {
- rec = rec " " $i;
- }
- }
- }
- END {
- print rec
- }' >> $TMP
- fi
- 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