#!/bin/sh - ## ## Modified to handle -vpath 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 (C) Internet Systems Consortium, Inc. ("ISC") # Copyright (c) 1987 Regents of the University of California. # Copyright (c) 1993 by Digital Equipment Corporation. # # SPDX-License-Identifier: MPL-2.0 # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, you can obtain one at https://mozilla.org/MPL/2.0/. # # See the COPYRIGHT file distributed with this work for additional # information regarding copyright ownership. # # @(#)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