summaryrefslogtreecommitdiff
path: root/mk/meta2deps.sh
diff options
context:
space:
mode:
Diffstat (limited to 'mk/meta2deps.sh')
-rwxr-xr-xmk/meta2deps.sh30
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