#
# set -o errexit -o noglob are assumed.
#
exp_pkg_env_source() {
local _group_name="${1}" _pkg_name="${2}" \
_group_name_uc="" _pkg_name_uc="" _pkg_name_inherit_uc="" \
_build_type_uc="" _vname_dst="" _vars_set="";
ex_rtl_fileop source_opt "vars/${_pkg_name}.vars";
_group_name_uc="$(ex_rtl_toupper "${_group_name}")";
_pkg_name_uc="$(ex_rtl_toupper "${_pkg_name}")";
ex_rtl_set_vars BUILD_TYPE \
"DEFAULT ${_group_name_uc} PKG_${_pkg_name_uc}" \
_vars_set;
_build_type_uc="$(ex_rtl_toupper "${PKG_BUILD_TYPE}")";
ex_rtl_set_vars INHERIT_FROM "PKG_${_pkg_name_uc}" _vars_set;
_pkg_name_inherit_uc="$(ex_rtl_toupper "${PKG_INHERIT_FROM}")";
for _vname_dst in $(ex_rtl_lfilter_not \
"${DEFAULT_BUILD_VARS}" BUILD_TYPE); do
if [ -n "${_pkg_name_inherit_uc}" ]; then
ex_rtl_set_vars "${_vname_dst}" \
"DEFAULT DEFAULT_${_build_type_uc} \
${_group_name_uc} \
PKG_${_pkg_name_inherit_uc} \
PKG_${_pkg_name_uc}" _vars_set;
else
ex_rtl_set_vars "${_vname_dst}" \
"DEFAULT DEFAULT_${_build_type_uc} \
${_group_name_uc} PKG_${_pkg_name_uc}" \
_vars_set;
fi;
done;
ex_rtl_unset_vars $(ex_rtl_lfilter_not \
"$(set | awk -F= '/^PKG_/{print $1}' | sort)" \
"${_vars_set}");
};
ex_pkg_env() {
local _group_name="${1}" _pkg_name="${2}" _restart_at="${3}" _vname="";
exp_pkg_env_source "${_group_name}" "${_pkg_name}";
: ${PKG_NAME:="${_pkg_name}"};
: ${MIDIPIX_BUILD_PWD:="$(pwd)"};
: ${PKG_BASE_DIR:="${BUILD_WORKDIR}/${_pkg_name}-${PKG_BUILD_TYPE}-${PKG_TARGET}"};
: ${PKG_FNAME:="${PKG_URL##*/}"};
: ${PKG_BUILD_STEPS:="$(ex_rtl_lfilter_not "${DEFAULT_BUILD_STEPS}" \
"${PKG_BUILD_STEPS_DISABLE}")"};
if [ -z "${PKG_SUBDIR}" ]; then
if [ -n "${PKG_URLS_GIT}" ]; then
PKG_SUBDIR="${PKG_URLS_GIT%%=*}";
else case "${PKG_FNAME}" in
*.t*) PKG_SUBDIR="${PKG_FNAME%%.t*}"; ;;
*) PKG_SUBDIR="${_pkg_name}"; ;;
esac; fi;
fi;
if [ -z "${PKG_BUILD_DIR}" ]; then
case "${PKG_IN_TREE:-0}" in
0) PKG_BUILD_DIR="obj"; ;;
1) PKG_BUILD_DIR="${PKG_SUBDIR}"; ;;
esac;
fi;
PKG_BUILD_DIR="${PKG_BASE_DIR}/${PKG_BUILD_DIR}";
PKG_CONFIGURE="${PKG_BASE_DIR}/${PKG_CONFIGURE:-${PKG_SUBDIR}/configure}";
PKG_DESTDIR="${PKG_BASE_DIR}/${PKG_DESTDIR:-destdir}";
ex_rtl_push_IFS :; for _vname in ${PKG_ENV_VARS_EXTRA}; do
export "${_vname}";
done; ex_rtl_pop_IFS;
};
ex_pkg_state_set() { ex_rtl_state_set "${BUILD_WORKDIR}" "${@}"; };
ex_pkg_state_test() { ex_rtl_state_test "${BUILD_WORKDIR}" "${@}"; };
# vim:filetype=sh