# # set +o errexit -o noglob -o nounset is assumed. # pkgp_install_libs_purge_la() { local _la_path=""; for _la_path in $(find "${PKG_DESTDIR}" -type f -name \*.la); do if ! rtl_fileop rm "${_la_path}"; then return 1; fi; done; }; pkgp_install_libs_shared_link() { local _lib_name="${1}" _so_dir="${2}" _so_path="${3}" _lib_link_path="${3%.so*}.lib.a" _lib_link_tgt=""; if _lib_link_tgt="$(find "${_so_dir}" -name "${_lib_name%%.*}.*.lib.a" | sort | tail -1)"\ && [ -n "${_lib_link_tgt}" ]\ && [ "${_lib_link_tgt}" != "${_lib_link_path}" ]; then if ! rtl_fileop rm "${_lib_link_path}"\ || ! rtl_fileop ln_symbolic "$(rtl_basename "${_lib_link_tgt}")" "${_lib_link_path}"; then return 1; fi; fi; }; pkgp_install_libs_shared() { local _lib_dst_path="" _lib_name="" _lib_src_path="" _so_dst_dir="" _so_src_path=""; if [ "${PKG_BUILD_TYPE}" != "host" ]; then for _so_src_path in \ $(find "${PKG_DESTDIR}" \ \( -name "*.so" -or -name "*.so.*" \) -print); do if [ "$(readlink -f "${_so_src_path}")" != "/dev/null" ]\ && [ -z "$(rtl_head "[0-9.]" "${_so_src_path##*.so}")" ]; then case "${_so_src_path}" in *.so) _lib_src_path="${_so_src_path%%.so}.lib.a"; ;; *.so.*) _lib_src_path="${_so_src_path%%.so.*}.${_so_src_path##*.so.}.lib.a"; ;; esac; _so_dst_dir="${_so_src_path%/*}"; _lib_name="$(rtl_basename "${_lib_src_path}")"; _lib_dst_path="${_so_dst_dir}/${_lib_name}"; if [ ! -L "${_lib_src_path}" ]\ && [ ! -e "${_lib_dst_path}" ]; then if ! (rtl_fileop cd "$(rtl_dirname "${_so_src_path}")" && \ perk -e "$(rtl_basename "${_so_src_path}")" |\ "${PKG_TARGET}-mdso" \ -i "$(rtl_basename "${_lib_dst_path}")" \ -n "$(rtl_basename "${_so_src_path}")" -); then return 1; fi; fi; if ! pkgp_install_libs_shared_link "${_lib_name}" "${_so_dst_dir}" "${_so_src_path}"; then return 1; fi; fi; done; fi; }; pkg_install_libs() { if ! pkgp_install_libs_purge_la\ || ! pkgp_install_libs_shared; then return 1; fi; }; # vim:filetype=sh