diff options
Diffstat (limited to 'mk/meta2deps.sh')
-rwxr-xr-x | mk/meta2deps.sh | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/mk/meta2deps.sh b/mk/meta2deps.sh index d96ce07c5af4..2a79be17a331 100755 --- a/mk/meta2deps.sh +++ b/mk/meta2deps.sh @@ -77,7 +77,7 @@ # RCSid: -# $Id: meta2deps.sh,v 1.7 2014/04/05 22:56:54 sjg Exp $ +# $Id: meta2deps.sh,v 1.9 2015/04/03 18:23:25 sjg Exp $ # Copyright (c) 2010-2013, Juniper Networks, Inc. # All rights reserved. @@ -139,10 +139,15 @@ add_list() { eval "$name=\"$list\"" } +_excludes_f() { + egrep -v "$EXCLUDES" +} + meta2deps() { DPDEPS= SRCTOPS=$SRCTOP OBJROOTS= + EXCLUDES= while : do case "$1" in @@ -153,6 +158,7 @@ meta2deps() { -H) HOST_TARGET=$2; shift 2;; -S) add_list SRCTOPS $2; shift 2;; -O) add_list OBJROOTS $2; shift 2;; + -X) add_list EXCLUDES '|' $2; shift 2;; -R) RELDIR=$2; shift 2;; -T) TARGET_SPEC=$2; shift 2;; *) break;; @@ -212,8 +218,26 @@ meta2deps() { seenit= seensrc= lpid= - cat /dev/null "$@" | - sed -e 's,^CWD,C C,;/^[CREFL] /!d' -e "s,',,g" | + case "$EXCLUDES" in + "") _excludes=cat;; + *) _excludes=_excludes_f;; + esac + # handle @list files + case "$@" in + *@[!.]*) + for f in "$@" + do + case "$f" in + *.meta) cat $f;; + @*) xargs cat < ${f#@};; + *) cat $f;; + esac + done + ;; + *) cat /dev/null "$@";; + esac 2> /dev/null | + sed -e 's,^CWD,C C,;/^[CREFLM] /!d' -e "s,',,g" | + $_excludes | while read op pid path junk do : op=$op pid=$pid path=$path |