diff options
Diffstat (limited to 'subr/ex_pkg_env.subr')
-rw-r--r-- | subr/ex_pkg_env.subr | 157 |
1 files changed, 0 insertions, 157 deletions
diff --git a/subr/ex_pkg_env.subr b/subr/ex_pkg_env.subr deleted file mode 100644 index c13cfdfc..00000000 --- a/subr/ex_pkg_env.subr +++ /dev/null @@ -1,157 +0,0 @@ -# -# set +o errexit -o noglob -o nounset is assumed. -# - -# -# exp_pkg_env_defaults() - set package variable defaults for single named package -# @_build_steps_default: list of default build steps -# @_pkg_name: single package name -# @_workdir: pathname to build-specific temporary directory -# -# Return: zero (0) on success, non-zero (>0) on failure -# -exp_pkg_env_defaults() { - local _build_steps_default="${1}" _pkg_name="${2}" _workdir="${3}"; - : ${PKG_NAME:="${_pkg_name}"}; - : ${MIDIPIX_BUILD_PWD:="$(pwd)"}; - : ${PKG_BASE_DIR:="${_workdir}/${_pkg_name}-${PKG_BUILD_TYPE}-${PKG_TARGET}"}; - if [ -n "${PKG_BUILD_STEPS_DISABLE:-}" ]; then - : ${PKG_BUILD_STEPS:="$(rtl_lfilter "${_build_steps_default}" "${PKG_BUILD_STEPS_DISABLE:-}")"}; - else - : ${PKG_BUILD_STEPS:="${_build_steps_default}"}; - fi; - if [ -n "${PKG_URL:-}" ]; then - : ${PKG_FNAME:="${PKG_URL##*/}"}; - fi; - if [ -z "${PKG_SUBDIR:-}" ]; then - if [ -n "${PKG_URLS_GIT:-}" ]\ - && [ -n "${PKG_FNAME:-}" ]; then - rtl_log_msg "fatalexit" "${MSG_pkg_fail_missing_vars}"; - elif [ -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}"; - PKG_DESTDIR_HOST="${PKG_BASE_DIR}/${PKG_DESTDIR_HOST:-destdir_host}"; -}; - -# -# exp_pkg_env_set() - set package variables for single named package -# @_build_vars_default: list of default build variables -# @_group_name: build group name -# @_nounset: don't clear package variable namespace -# @_pkg_name: single package name -# -# Sets package variables from either defaults, defaults specific to build type, -# build group, package to inherit from if any, or package for a single named -# package, exports variables optionally named in ${PKG_ENV_VARS_EXTRA}, and -# clears the package variable namespace. -# -# Return: zero (0) on success, non-zero (>0) on failure -# -exp_pkg_env_set() { - local _build_vars_default="${1}" _group_name="${2}" _nounset="${3}" \ - _pkg_name="${4}" _cmd_name="" _var_prefixes="" _vars_set="" \ - _vname="" IFS IFS0; - - rtl_set_vars _vars_set BUILD_TYPE "DEFAULT ${_group_name} PKG_${_pkg_name}"; - rtl_set_vars _vars_set INHERIT_FROM "PKG_${_pkg_name}"; - _var_prefixes="$(rtl_toupper "DEFAULT DEFAULT_${PKG_BUILD_TYPE} ${_group_name}")"; - for _vname in $(rtl_lfilter "${_build_vars_default}" BUILD_TYPE); do - if [ -n "${PKG_INHERIT_FROM:-}" ]; then - rtl_set_vars _vars_set "${_vname}" \ - "$(rtl_lconcat "${_var_prefixes}" \ - "$(rtl_toupper "PKG_${PKG_INHERIT_FROM} PKG_${PKG_INHERIT_FROM}_${BUILD_KIND} PKG_${_pkg_name} PKG_${_pkg_name}_${BUILD_KIND}")")"; - else - rtl_set_vars _vars_set "${_vname}" \ - "$(rtl_lconcat "${_var_prefixes}" \ - "$(rtl_toupper "PKG_${_pkg_name} PKG_${_pkg_name}_${BUILD_KIND}")")"; - fi; - done; - IFS0="${IFS:- }"; IFS=":"; for _vname in ${PKG_ENV_VARS_EXTRA:-}; do - export "${_vname}"; - done; IFS="${IFS0}"; - if [ "${_nounset:-0}" -eq 0 ]; then - rtl_unset_vars $(rtl_lfilter \ - "$(set | sed -ne '/^PKG_[^=]*=/s/=.*$//p' | paste -s -d " ")" \ - "${_vars_set}"); - fi; - - for _vname in AR CC CXX PKG_CONFIG RANLIB; do - if eval [ '"${PKG_'"${_vname}"':+1}"' = 1 ]\ - && eval [ '"${PKG_'"${_vname}"'#/}"' = '"${_cmd_name:=${PKG_'"${_vname}"'}}"' ]; then - eval PKG_${_vname}='$(which "${_cmd_name}")'; - fi; _cmd_name=""; - done; -}; - -# -# ex_pkg_env() - set package variables for single named package -# @_build_steps_default: list of default build steps -# @_build_vars_default: list of default build variables -# @_group_name: build group name -# @_nounset: don't clear package variable namespace -# @_pkg_name: single package name -# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST -# @_workdir: pathname to build-specific temporary directory -# -# Return: zero (0) on success, non-zero (>0) on failure -# -ex_pkg_env() { - local _build_steps_default="${1}" _build_vars_default="${2}" _group_name="${3}" \ - _nounset="${4}" _pkg_name="${5}" _restart_at="${6}" _workdir="${7}" \ - _inherit_from="" _vars_file="" _vname=""; - - if _inherit_from="$(rtl_get_var_unsafe -u "PKG_${_pkg_name}_INHERIT_FROM")"\ - && [ "${#_inherit_from}" -gt 0 ]; then - _vars_file="$(rtl_get_var_unsafe -u "PKG_${_inherit_from}_VARS_FILE")"; - else - _vars_file="$(rtl_get_var_unsafe -u "PKG_${_pkg_name}_VARS_FILE")"; - fi; - if [ "${#_vars_file}" -eq 0 ]; then - _vars_file="vars/${_pkg_name}.vars"; - fi; - - rtl_fileop source_opt "${_vars_file}" "${_group_name}/${_pkg_name}.${_group_name}"; - if ! exp_pkg_env_set "${_build_vars_default}" "${_group_name}" "${_nounset}" "${_pkg_name}"\ - || ! exp_pkg_env_defaults "${_build_steps_default}" "${_pkg_name}" "${_workdir}"; then - return 1; - fi; -}; - -# -# ex_pkg_state_set() - update build step status for single named package -# @_pkg_name: single package name -# @_build_step: build step set status of -# [@${@}]: optional list of build steps to invalidate status of -# -# Return: zero (0) on success, non-zero (>0) on failure -# -ex_pkg_state_set() { - rtl_state_set "${_workdir}" "${@}"; -}; - -# -# ex_pkg_state_test() - test build step status of single named package -# @_pkg_name: single package name -# @_build_step: build step to test status of -# @_restart_at: optional comma-separated list of build steps at which to rebuild or ALL or LAST -# -# Return: zero (0) on success, non-zero (>0) on failure -# -ex_pkg_state_test() { - rtl_state_test "${_workdir}" "${@}"; -}; - -# vim:filetype=sh |