diff options
Diffstat (limited to 'subr/pkg_setup_vars.subr')
-rw-r--r-- | subr/pkg_setup_vars.subr | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/subr/pkg_setup_vars.subr b/subr/pkg_setup_vars.subr new file mode 100644 index 00000000..07b91fcb --- /dev/null +++ b/subr/pkg_setup_vars.subr @@ -0,0 +1,36 @@ +# +# set -o errexit -o noglob are assumed. +# + +pkgp_setup_pkg_vars() { + local _pkg_name="${1}" _pkg_name_uc _build_uc _vname __; + _pkg_name_uc="$(toupper "${_pkg_name}")"; + _build_uc="$(toupper "${BUILD}")"; + for _vname in PREFIX ${PKG_BUILD_VARS}; do + for __ in "DEFAULT_${_vname}" \ + "${BUILD_TARGET}_${_vname}" \ + "PKG_${_pkg_name_uc}_${_vname}" \ + "PKG_${_pkg_name_uc}_${_vname}_${_build_uc}"; do + if [ -n "$(get_var_unsafe "${__}")" ]; then + set_var_unsafe "PKG_${_vname}" "$(get_var_unsafe ${__})"; + if ! lmatch "${PKG_ENV_VARS}" " " "${__}"; then + PKG_ENV_VARS="${PKG_ENV_VARS:+${PKG_ENV_VARS} }${__}"; + fi; + fi; + done; + done; +}; + +pkg_setup_vars() { + local __; + for __ in vars/${PKG_NAME}.vars; do + [ \( -e "${__}" \) -o \( -L "${__}" \) ]\ + && { . "${__}"; }; + done; + if [ -n "${PKG_NAME_PARENT}" ]; then + pkgp_setup_pkg_vars "${PKG_NAME_PARENT}"; + fi; + pkgp_setup_pkg_vars "${PKG_NAME}"; +}; + +# vim:filetype=sh |