|
|
e9fa07 |
#
|
|
|
8d7a8a |
# Copyright (c) 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 LucĂa Andrea Illanes Albornoz <lucia@luciaillanes.de>
|
|
|
e9fa07 |
# set +o errexit -o noglob -o nounset is assumed.
|
|
|
e9fa07 |
#
|
|
|
e9fa07 |
|
|
|
e9fa07 |
pkgp_install_libs_purge_la() {
|
|
|
e9fa07 |
local _ppilpl_la_path="";
|
|
|
e9fa07 |
|
|
|
e9fa07 |
for _ppilpl_la_path in $(find "${PKG_DESTDIR}" -type f -name \*.la); do
|
|
|
e9fa07 |
if ! rtl_fileop rm "${_ppilpl_la_path}"; then
|
|
|
e9fa07 |
return 1;
|
|
|
e9fa07 |
fi;
|
|
|
e9fa07 |
done;
|
|
|
e9fa07 |
return 0;
|
|
|
e9fa07 |
};
|
|
|
e9fa07 |
|
|
|
e9fa07 |
pkgp_install_libs_shared_link() {
|
|
|
e9fa07 |
local _ppilsl_lib_name="${1}" _ppilsl_so_dir="${2}" _ppilsl_so_path="${3}" \
|
|
|
e9fa07 |
_ppilsl_lib_link_path="${3%.so*}.lib.a" _ppilsl_fname="" _ppilsl_lib_link_tgt="";
|
|
|
e9fa07 |
|
|
|
e9fa07 |
if _ppilsl_lib_link_tgt="$(find "${_ppilsl_so_dir}" -name "${_ppilsl_lib_name%%.*}.*.lib.a" | sort | tail -1)"\
|
|
|
e9fa07 |
&& [ "${_ppilsl_lib_link_tgt:+1}" = 1 ]\
|
|
|
e9fa07 |
&& [ "${_ppilsl_lib_link_tgt}" != "${_ppilsl_lib_link_path}" ];
|
|
|
e9fa07 |
then
|
|
|
e9fa07 |
rtl_basename2 \$_ppilsl_lib_link_tgt \$_ppilsl_fname;
|
|
|
e9fa07 |
|
|
|
e9fa07 |
if ! rtl_fileop rm "${_ppilsl_lib_link_path}"\
|
|
|
e9fa07 |
|| ! rtl_fileop ln_symbolic "${_ppilsl_fname}" "${_ppilsl_lib_link_path}"; then
|
|
|
e9fa07 |
return 1;
|
|
|
e9fa07 |
fi;
|
|
|
e9fa07 |
fi;
|
|
|
e9fa07 |
return 0;
|
|
|
e9fa07 |
};
|
|
|
e9fa07 |
|
|
|
e9fa07 |
pkgp_install_libs_shared() {
|
|
|
550c18 |
local _ppils_postfix="" _ppils_lib_dst_path="" _ppils_lib_name="" \
|
|
|
e9fa07 |
_ppils_lib_src_path="" _ppils_so_dst_dir="" _ppils_so_src_path="";
|
|
|
e9fa07 |
|
|
|
e9fa07 |
if [ "${PKG_BUILD_TYPE}" != "host" ]; then
|
|
|
e9fa07 |
for _ppils_so_src_path in \
|
|
|
e9fa07 |
$(find "${PKG_DESTDIR}" \
|
|
|
e9fa07 |
\( -name "*.so" -or -name "*.so.*" \) -print);
|
|
|
e9fa07 |
do
|
|
|
e9fa07 |
if [ "$(readlink -f "${_ppils_so_src_path}")" != "/dev/null" ]\
|
|
|
550c18 |
&& rtl_remove_postfix "[0-9.]" "${_ppils_so_src_path##*.so}" \$_ppils_postfix\
|
|
|
550c18 |
&& [ "${_ppils_postfix:+1}" != 1 ]; then
|
|
|
e9fa07 |
case "${_ppils_so_src_path}" in
|
|
|
e9fa07 |
*.so) _ppils_lib_src_path="${_ppils_so_src_path%%.so}.lib.a"; ;;
|
|
|
e9fa07 |
*.so.*) _ppils_lib_src_path="${_ppils_so_src_path%%.so.*}.${_ppils_so_src_path##*.so.}.lib.a"; ;;
|
|
|
e9fa07 |
esac;
|
|
|
e9fa07 |
|
|
|
e9fa07 |
_ppils_so_dst_dir="${_ppils_so_src_path%/*}";
|
|
|
e9fa07 |
rtl_basename2 \$_ppils_lib_src_path \$_ppils_lib_name;
|
|
|
e9fa07 |
_ppils_lib_dst_path="${_ppils_so_dst_dir}/${_ppils_lib_name}";
|
|
|
e9fa07 |
|
|
|
e9fa07 |
if [ ! -L "${_ppils_lib_src_path}" ]\
|
|
|
e9fa07 |
&& [ ! -e "${_ppils_lib_dst_path}" ]; then
|
|
|
e9fa07 |
if ! (rtl_basename2 \$_ppils_so_src_path \$_ppils_fname; \
|
|
|
e9fa07 |
rtl_basename2 \$_ppils_lib_dst_path \$_ppils_fname_dst; \
|
|
|
e9fa07 |
rtl_dirname2 \$_ppils_so_src_path \$_ppils_dname; \
|
|
|
e9fa07 |
rtl_fileop cd "${_ppils_dname}" && \
|
|
|
e9fa07 |
perk -e "${_ppils_fname}" |\
|
|
|
e9fa07 |
"${PKG_TARGET}-mdso" \
|
|
|
e9fa07 |
-i "${_ppils_fname_dst}" \
|
|
|
e9fa07 |
-n "${_ppils_fname}" -);
|
|
|
e9fa07 |
then
|
|
|
e9fa07 |
return 1;
|
|
|
e9fa07 |
fi;
|
|
|
e9fa07 |
fi;
|
|
|
e9fa07 |
|
|
|
e9fa07 |
if ! pkgp_install_libs_shared_link \
|
|
|
e9fa07 |
"${_ppils_lib_name}" "${_ppils_so_dst_dir}" \
|
|
|
e9fa07 |
"${_ppils_so_src_path}";
|
|
|
e9fa07 |
then
|
|
|
e9fa07 |
return 1;
|
|
|
e9fa07 |
fi;
|
|
|
e9fa07 |
fi;
|
|
|
e9fa07 |
done;
|
|
|
e9fa07 |
fi;
|
|
|
e9fa07 |
|
|
|
e9fa07 |
return 0;
|
|
|
e9fa07 |
};
|
|
|
e9fa07 |
|
|
|
e9fa07 |
pkg_install_libs() {
|
|
|
e9fa07 |
local _pil_group_name="${1}" _pil_pkg_name="${2}" _pil_restart_at="${3}";
|
|
|
e9fa07 |
|
|
|
e9fa07 |
if ! pkgp_install_libs_purge_la\
|
|
|
e9fa07 |
|| ! pkgp_install_libs_shared;
|
|
|
e9fa07 |
then
|
|
|
e9fa07 |
return 1;
|
|
|
e9fa07 |
fi;
|
|
|
e9fa07 |
return 0;
|
|
|
e9fa07 |
};
|
|
|
e9fa07 |
|
|
|
64844b |
# vim:filetype=sh textwidth=0
|