summaryrefslogtreecommitdiffhomepage
path: root/subr/ex_pkg_vars.subr
diff options
context:
space:
mode:
authorLucio Andrés Illanes Albornoz (arab, vxp) <lucio@lucioillanes.de>2017-11-22 01:32:50 +0000
committerLucio Andrés Illanes Albornoz (arab, vxp) <lucio@lucioillanes.de>2017-11-22 02:35:10 +0000
commit32ad217d197203a97dfcc0076e748731d2315c0b (patch)
tree1f4dd5799daa9ac8540cddcc45b4c1557cb0ac70 /subr/ex_pkg_vars.subr
parent465073d1a9f8ead60dbe66a26b55c0c1927e63c6 (diff)
downloadmidipix_build-32ad217d197203a97dfcc0076e748731d2315c0b.tar.bz2
midipix_build-32ad217d197203a97dfcc0076e748731d2315c0b.tar.xz
subr/*: reorganised as {ex{,_{pkg,rtl,setup}},pkg}_*.
Diffstat (limited to 'subr/ex_pkg_vars.subr')
-rw-r--r--subr/ex_pkg_vars.subr39
1 files changed, 39 insertions, 0 deletions
diff --git a/subr/ex_pkg_vars.subr b/subr/ex_pkg_vars.subr
new file mode 100644
index 00000000..07c2cacd
--- /dev/null
+++ b/subr/ex_pkg_vars.subr
@@ -0,0 +1,39 @@
+#
+# set -o errexit -o noglob are assumed.
+#
+
+exp_pkg_vars() {
+ local _pkg_name="${1}" _pkg_name_uc _build_uc _vname_dst _vname_src;
+ _pkg_name_uc="$(ex_toupper "${_pkg_name}")";
+ _build_uc="$(ex_toupper "${BUILD}")";
+ for _vname_dst in PREFIX ${PKG_BUILD_VARS}; do
+ for _vname_src in \
+ "DEFAULT_${_vname_dst}" \
+ "${BUILD_TARGET}_${_vname_dst}" \
+ "PKG_${_pkg_name_uc}_${_vname_dst}" \
+ "PKG_${_pkg_name_uc}_${_vname_dst}_${_build_uc}"; do
+ if [ -n "$(ex_get_var_unsafe "${_vname_src}")" ]; then
+ ex_set_var_unsafe "PKG_${_vname_dst}" "$(ex_get_var_unsafe ${_vname_src})";
+ if ! ex_lmatch "${PKG_ENV_VARS}" " " "${_vname_src}"; then
+ PKG_ENV_VARS="${PKG_ENV_VARS:+${PKG_ENV_VARS} }${_vname_src}";
+ fi;
+ fi;
+ done;
+ done;
+};
+
+ex_pkg_vars() {
+ local _vars_path;
+ for _vars_path in vars/${PKG_NAME}.vars; do
+ if [ -e "${_vars_path}" ]\
+ || [ -L "${_vars_path}" ]; then
+ . "${_vars_path}";
+ fi;
+ done;
+ if [ -n "${PKG_NAME_PARENT}" ]; then
+ exp_pkg_vars "${PKG_NAME_PARENT}";
+ fi;
+ exp_pkg_vars "${PKG_NAME}";
+};
+
+# vim:filetype=sh