aboutsummaryrefslogtreecommitdiff
path: root/Mk
diff options
context:
space:
mode:
authorBryan Drewery <bdrewery@FreeBSD.org>2016-06-24 05:03:34 +0000
committerBryan Drewery <bdrewery@FreeBSD.org>2016-06-24 05:03:34 +0000
commit5061f450c87cc736453e51ef48a768f0d17aeee0 (patch)
tree6b3097ccd15aae8771b691721b6707a22a4cd781 /Mk
parent97587b1a48d070633d3422ae1d71ce7f11d942c9 (diff)
Notes
Diffstat (limited to 'Mk')
-rw-r--r--Mk/Scripts/functions.sh29
1 files changed, 29 insertions, 0 deletions
diff --git a/Mk/Scripts/functions.sh b/Mk/Scripts/functions.sh
index 1aa1e8f5118c..7c6122afc5d0 100644
--- a/Mk/Scripts/functions.sh
+++ b/Mk/Scripts/functions.sh
@@ -250,3 +250,32 @@ escape() {
unescape() {
echo "$1" | sed -e 's/\\//g'
}
+
+# Fetch vars from the Makefile and set them locally.
+# port_var_fetch ports-mgmt/pkg "" PKGNAME pkgname PKGBASE pkgbase ...
+# the 2nd variable is for passing any wanted make arguments, such as
+# DEPENDS_ARGS.
+port_var_fetch() {
+ local origin="$1"
+ local make_args="$2"
+ local _makeflags _vars
+ local _portvar _var _line
+
+ _makeflags=
+ _vars=
+ shift 2
+ while [ $# -ge 2 ]; do
+ _portvar="$1"
+ _var="$2"
+ _makeflags="${_makeflags}${_makeflags:+ }-V${_portvar}"
+ _vars="${_vars}${_vars:+ }${_var}"
+ shift 2
+ done
+ set -- ${_vars}
+ while read -r _line; do
+ setvar "$1" "${_line}"
+ shift
+ done <<-EOF
+ $(${dp_MAKE} -C "${origin}" ${make_args} ${_makeflags} || echo)
+ EOF
+}