summaryrefslogtreecommitdiff
path: root/m4/mingw.m4
blob: 952b2eddb7fd673aef4811b5b7cce6a9c341c1bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# libo_FIND_MINGW_EXTERNAL_DLLS([library-names],[variable],[?exclude])
# uses: CC, SED, WITH_MINGW
# --------------------------------------------------------------------
AC_DEFUN([libo_FIND_MINGW_EXTERNAL_DLLS],
[if test "$WITH_MINGW" = yes -a -n "$CC"; then
    _libo_mingw_libdir=`$CC -print-sysroot`/mingw/lib
    for _libo_mingw_lib in $1; do
        _libo_mingw_lib="$_libo_mingw_libdir/$_libo_mingw_lib.la"
        _libo_mingw_find_dll([$_libo_mingw_lib],[$3],[_libo_mingw_new_dll])
        if test -n "$_libo_mingw_new_dll"; then
            _libo_mingw_new_dlls="$_libo_mingw_new_dll"
        fi

        _libo_mingw_get_libtool_var([dependency_libs],[$_libo_mingw_lib],[_libo_mingw_dep_libs])
        for _libo_mingw_dep_lib in $_libo_mingw_dep_libs; do
            if test "${_libo_mingw_dep_lib%.la}" != "$_libo_mingw_dep_lib"; then
                _libo_mingw_new_dll=''
                _libo_mingw_find_dll([$_libo_mingw_dep_lib],[$3],[_libo_mingw_new_dll])
                if test -n "$_libo_mingw_new_dll"; then
                    _libo_mingw_new_dlls="$_libo_mingw_new_dlls $_libo_mingw_new_dll"
                fi
            fi
        done
        $2="$_libo_mingw_new_dlls"
    done
fi[]dnl
]) # libo_FIND_MINGW_EXTERNAL_DLLS

# libo_ADD_MINGW_EXTERNAL_DLLS([library-names],[variable])
# uses: CC, SED, WITH_MINGW
# --------------------------------------------------------
AC_DEFUN([libo_ADD_MINGW_EXTERNAL_DLLS],
[libo_FIND_MINGW_EXTERNAL_DLLS([$1],[_libo_mingw_found_dlls],[$$2])
if test -n "$_libo_mingw_found_dlls"; then
    $2="$$2 $_libo_mingw_found_dlls"
fi[]dnl
]) # libo_ADD_MINGW_EXTERNAL_DLLS

# _libo_mingw_get_libtool_var([key],[lib],[out-var])
m4_define([_libo_mingw_get_libtool_var],
[$3=`$SED -n -e '/^$1=/{' -e "s/.*='//" -e "s/'//" -e p -e '}' $2`[]dnl
]) # _libo_mingw_get_libtool_var

# _libo_mingw_find_dll([library],[dlls],[out-var])
m4_define([_libo_mingw_find_dll],
[if test -f "$1"; then
    _libo_mingw_get_libtool_var([dlname],[$1],[_libo_mingw_dlname])
    _libo_mingw_dlname=`basename $_libo_mingw_dlname`
    _libo_mingw_dll_present=
    for _libo_mingw_dll in $2; do
        if test "$_libo_mingw_dlname" = "$_libo_mingw_dll"; then
            _libo_mingw_dll_present=yes
            break
        fi
    done
    if test -z "$_libo_mingw_dll_present"; then
        $3="$_libo_mingw_dlname"
    fi
fi[]dnl
]) # _libo_mingw_find_dll