| |
| |
| |
| |
| exp_pkg_env_source() { |
| local _pkg_name="${1}" _tgt_name="${2}" \ |
| _tgt_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"; |
| _tgt_name_uc="$(ex_rtl_toupper "${_tgt_name}")"; |
| _pkg_name_uc="$(ex_rtl_toupper "${_pkg_name}")"; |
| ex_rtl_set_vars BUILD_TYPE \ |
| "DEFAULT ${_tgt_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} \ |
| ${_tgt_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} \ |
| ${_tgt_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 _pkg_name="${1}" _tgt_name="${2}" _restart_at="${3}" _vname; |
| exp_pkg_env_source "${_pkg_name}" "${_tgt_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 |
| |