forked from enlightenment/efl
Eina: Fix cases where dlopen is wrongly checked because of autoconf cache values
SVN revision: 69909
This commit is contained in:
parent
25e8dfaaff
commit
a40ca4ab97
|
@ -529,30 +529,8 @@ if test "x${ac_cv_func_malloc_usable_size}" = "xyes" && test "x${want_debug_mall
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# dlopen and dladdr
|
# dlopen and dladdr
|
||||||
dlopen_libs=""
|
EFL_CHECK_DLOPEN
|
||||||
case "$host_os" in
|
EFL_CHECK_DLADDR
|
||||||
mingw*)
|
|
||||||
# managed by evil
|
|
||||||
AC_DEFINE([HAVE_DLADDR])
|
|
||||||
AC_DEFINE([HAVE_DLOPEN])
|
|
||||||
dlopen_libs="-ldl"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
AC_CHECK_FUNCS([dlopen], [res="yes"], [res="no"])
|
|
||||||
if test "x${res}" = "xyes" ; then
|
|
||||||
AC_CHECK_FUNCS([dladdr], [AC_DEFINE([HAVE_DLADDR])])
|
|
||||||
AC_DEFINE([HAVE_DLOPEN])
|
|
||||||
else
|
|
||||||
AC_CHECK_LIB([dl], [dlopen], [res="yes"], [res="no"])
|
|
||||||
if test "x${res}" = "xyes" ; then
|
|
||||||
AC_CHECK_LIB([dl], [dladdr], [AC_DEFINE([HAVE_DLADDR])])
|
|
||||||
AC_DEFINE(HAVE_DLOPEN)
|
|
||||||
dlopen_libs="-ldl"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
AC_SUBST([dlopen_libs])
|
|
||||||
|
|
||||||
have_log="yes"
|
have_log="yes"
|
||||||
EFL_CHECK_FNMATCH([have_log="yes"], [have_log="no"])
|
EFL_CHECK_FNMATCH([have_log="yes"], [have_log="no"])
|
||||||
|
|
|
@ -8,5 +8,5 @@ Description: A Library that implements fast data types and miscellaneous tools
|
||||||
@pkgconfig_requires_private@: @requirement_eina@
|
@pkgconfig_requires_private@: @requirement_eina@
|
||||||
Version: @VERSION@
|
Version: @VERSION@
|
||||||
Libs: -L${libdir} -leina @EFL_PTHREAD_LIBS@
|
Libs: -L${libdir} -leina @EFL_PTHREAD_LIBS@
|
||||||
Libs.private: @EFL_FNMATCH_LIBS@ @EFL_SHM_OPEN_LIBS@ @EFL_PTHREAD_LIBS@ @iconv_libs@ @EINA_LIBS@ -lm
|
Libs.private: @EFL_FNMATCH_LIBS@ @EFL_SHM_OPEN_LIBS@ @EFL_PTHREAD_LIBS@ @iconv_libs@ @EFL_DLOPEN_LIBS@ @EFL_DLADDR_LIBS@ @EINA_LIBS@ -lm
|
||||||
Cflags: -I${includedir}/eina-@VMAJ@ -I${includedir}/eina-@VMAJ@/eina
|
Cflags: -I${includedir}/eina-@VMAJ@ -I${includedir}/eina-@VMAJ@/eina
|
||||||
|
|
|
@ -0,0 +1,136 @@
|
||||||
|
dnl Copyright (C) 2012 Vincent Torri <vtorri at univ-evry dot fr>
|
||||||
|
dnl That code is public domain and can be freely used or copied.
|
||||||
|
|
||||||
|
dnl Macro that check if dlopen and dladdr functions are available or not.
|
||||||
|
|
||||||
|
dnl Usage: EFL_CHECK_DLOPEN([, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
|
||||||
|
dnl Call AC_SUBST(EFL_DLOPEN_LIBS)
|
||||||
|
dnl Define HAVE_DLOPEN to 1if dlopen is available
|
||||||
|
|
||||||
|
AC_DEFUN([EFL_CHECK_DLOPEN],
|
||||||
|
[
|
||||||
|
case "$host_os" in
|
||||||
|
mingw*)
|
||||||
|
_efl_have_dlopen="yes"
|
||||||
|
EFL_DLOPEN_LIBS="-ldl"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
_efl_have_dlopen="no"
|
||||||
|
|
||||||
|
dnl Check is dlopen is in libc
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([for dlopen in libc])
|
||||||
|
AC_LINK_IFELSE(
|
||||||
|
[AC_LANG_PROGRAM(
|
||||||
|
[[
|
||||||
|
#include <dlfcn.h>
|
||||||
|
]],
|
||||||
|
[[
|
||||||
|
void *h = dlopen(0, 0);
|
||||||
|
]])],
|
||||||
|
[_efl_have_dlopen="yes"],
|
||||||
|
[_efl_have_dlopen="no"])
|
||||||
|
|
||||||
|
AC_MSG_RESULT([${_efl_have_dlopen}])
|
||||||
|
|
||||||
|
if test "x${_efl_have_dlopen}" = "xno" ; then
|
||||||
|
AC_MSG_CHECKING([for dlopen in libdl])
|
||||||
|
|
||||||
|
LIBS_save="${LIBS}"
|
||||||
|
LIBS="${LIBS} -ldl"
|
||||||
|
AC_LINK_IFELSE(
|
||||||
|
[AC_LANG_PROGRAM(
|
||||||
|
[[
|
||||||
|
#include <dlfcn.h>
|
||||||
|
]],
|
||||||
|
[[
|
||||||
|
void *h = dlopen(0, 0);
|
||||||
|
]])],
|
||||||
|
[
|
||||||
|
EFL_DLOPEN_LIBS="-ldl"
|
||||||
|
_efl_have_dlopen="yes"
|
||||||
|
],
|
||||||
|
[_efl_have_dlopen="no"])
|
||||||
|
|
||||||
|
LIBS="${LIBS_save}"
|
||||||
|
|
||||||
|
AC_MSG_RESULT([${_efl_have_dlopen}])
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
AC_SUBST([EFL_DLOPEN_LIBS])
|
||||||
|
|
||||||
|
if test "x${_efl_have_dlopen}" = "xyes" ; then
|
||||||
|
AC_DEFINE([HAVE_DLOPEN], [1], [Define to 1 if you have the `dlopen' function.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AS_IF([test "x${_efl_have_dlopen}" = "xyes"], [$1], [$2])
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl Usage: EFL_CHECK_DLADDR([, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
|
||||||
|
dnl Call AC_SUBST(EFL_DLADDR_LIBS)
|
||||||
|
dnl Define HAVE_DLADDR to 1if dladdr is available
|
||||||
|
|
||||||
|
AC_DEFUN([EFL_CHECK_DLADDR],
|
||||||
|
[
|
||||||
|
case "$host_os" in
|
||||||
|
mingw*)
|
||||||
|
_efl_have_dladdr="yes"
|
||||||
|
EFL_DLADDR_LIBS="-ldl"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
_efl_have_dladdr="no"
|
||||||
|
|
||||||
|
dnl Check is dladdr is in libc
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([for dladdr in libc])
|
||||||
|
AC_LINK_IFELSE(
|
||||||
|
[AC_LANG_PROGRAM(
|
||||||
|
[[
|
||||||
|
#define _GNU_SOURCE
|
||||||
|
#include <dlfcn.h>
|
||||||
|
]],
|
||||||
|
[[
|
||||||
|
int res = dladdr(0, 0);
|
||||||
|
]])],
|
||||||
|
[_efl_have_dladdr="yes"],
|
||||||
|
[_efl_have_dladdr="no"])
|
||||||
|
|
||||||
|
AC_MSG_RESULT([${_efl_have_dladdr}])
|
||||||
|
|
||||||
|
if test "x${_efl_have_dladdr}" = "xno" ; then
|
||||||
|
AC_MSG_CHECKING([for dladdr in libdl])
|
||||||
|
|
||||||
|
LIBS_save="${LIBS}"
|
||||||
|
LIBS="${LIBS} -ldl"
|
||||||
|
AC_LINK_IFELSE(
|
||||||
|
[AC_LANG_PROGRAM(
|
||||||
|
[[
|
||||||
|
#define _GNU_SOURCE
|
||||||
|
#include <dlfcn.h>
|
||||||
|
]],
|
||||||
|
[[
|
||||||
|
int res = dladdr(0, 0);
|
||||||
|
]])],
|
||||||
|
[
|
||||||
|
EFL_DLADDR_LIBS="-ldl"
|
||||||
|
_efl_have_dladdr="yes"
|
||||||
|
],
|
||||||
|
[_efl_have_dladdr="no"])
|
||||||
|
|
||||||
|
LIBS="${LIBS_save}"
|
||||||
|
|
||||||
|
AC_MSG_RESULT([${_efl_have_dladdr}])
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
AC_SUBST([EFL_DLADDR_LIBS])
|
||||||
|
|
||||||
|
if test "x${_efl_have_dladdr}" = "xyes" ; then
|
||||||
|
AC_DEFINE([HAVE_DLADDR], [1], [Define to 1 if you have the `dladdr' function.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AS_IF([test "x${_efl_have_dladdr}" = "xyes"], [$1], [$2])
|
||||||
|
])
|
|
@ -170,7 +170,7 @@ else
|
||||||
libeina_la_SOURCES = $(base_sources)
|
libeina_la_SOURCES = $(base_sources)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
libeina_la_LIBADD = @iconv_libs@ @EFL_SHM_OPEN_LIBS@ @EINA_LIBS@ @dlopen_libs@ -lm
|
libeina_la_LIBADD = @iconv_libs@ @EFL_SHM_OPEN_LIBS@ @EINA_LIBS@ @EFL_DLOPEN_LIBS@ @EFL_DLADDR_LIBS@ -lm
|
||||||
libeina_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@ @EFL_PTHREAD_LIBS@
|
libeina_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@ @EFL_PTHREAD_LIBS@
|
||||||
libeina_la_CFLAGS = @EINA_CFLAGS@ @EFL_PTHREAD_CFLAGS@
|
libeina_la_CFLAGS = @EINA_CFLAGS@ @EFL_PTHREAD_CFLAGS@
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue