1f97e6 subr/pkg_install.subr:pkgp_install_dlltool(): generate library archives via {perk,mdso} (via midipix.)

Authored and Committed by Lucio Andrés Illanes Albornoz (arab, vxp) 7 years ago
    subr/pkg_install.subr:pkgp_install_dlltool(): generate library archives via {perk,mdso} (via midipix.)
    subr/pkg_install.subr:pkgp_install_dlltool(): correctly infer {so,lib} file names.
    
        
file modified
+19 -16
subr/pkg_install.subr CHANGED
@@ -15,26 +15,29 @@ pkgp_install_dlltool() {
15
15
local _so_fname _so_name;
16
16
if [ "${PKG_BUILD_TYPE}" != "host" ] \
17
17
&& test_cmd perk \
18
- && test_cmd ${PKG_TARGET}-dlltool; then
18
+ && test_cmd ${PKG_TARGET}-mdso; then
19
19
for _so_fname in \
20
- $(find \( -name "*.so" \
21
- -or -name "*.so.[0-9]" \
22
- -or -name "*.so.[0-9].[0-9]" \
23
- -or -name "*.so.[0-9].[0-9].[0-9]" \) -printf '%P\n');
20
+ $(find \( -name "*.so" \
21
+ -or -name "*.so.*" \
22
+ -or -name "*.so.*.*" \
23
+ -or -name "*.so.*.*.*" \) -printf '%P\n');
24
24
do
25
- if [ \( -e ${_so_fname%.so}.lib.a \) -o \
26
- \( ! -e ${PKG_PREFIX}/lib/$(basename ${_so_fname}) \) -o \
27
- \( "$(readlink -f ${_so_fname})" = "/dev/null" \) ]; then
25
+ case "${_so_fname}" in
26
+ *.so) _so_fname_ver=""; ;;
27
+ *.so.*) _so_fname_ver="${_so_fname##*.so.}"; ;;
28
+ esac;
29
+ _so_name="${_so_fname%%.so*}";
30
+ _lib_fname="${_so_name}${_so_fname_ver:+.${_so_fname_ver}}.lib.a";
31
+ if [ -e "${_lib_fname}" ] \
32
+ || [ ! -e "${PKG_PREFIX}/lib/$(basename "${_so_fname}")" ] \
33
+ || [ "$(readlink -f "${_so_fname}")" = "/dev/null" \) ]; then
28
34
continue;
29
35
else
30
- _so_name="${_so_fname%.so}";
31
- echo perk -epdlltool ${_so_fname} \> ${_so_fname%.so}.def;
32
- perk -epdlltool ${_so_fname} > ${_so_fname%.so}.def;
33
- echo ${PKG_TARGET}-dlltool -l ${_so_fname%.so}.lib.a \
34
- -D ${_so_fname} -d ${_so_fname%.so}.def;
36
+ echo perk -e "${_so_fname}" \|\
37
+ ${PKG_TARGET}-mdso -i ${_lib_fname} -n "${_so_fname}" -
38
+ perk -e "${_so_fname}" |\
39
+ ${PKG_TARGET}-mdso -i ${_lib_fname} -n "${_so_fname}" -
40
+ build_fileop cp "${_lib_fname}" "${PKG_PREFIX}/lib";
35
- ${PKG_TARGET}-dlltool -l ${_so_fname%.so}.lib.a \
36
- -D ${_so_fname} -d ${_so_fname%.so}.def;
37
- build_fileop cp ${_so_fname%.so}.lib.a "${PKG_PREFIX}/lib";
38
41
fi;
39
42
done;
40
43
fi;