diff options
Diffstat (limited to 'm4/dl.m4')
-rw-r--r-- | m4/dl.m4 | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/m4/dl.m4 b/m4/dl.m4 new file mode 100644 index 000000000..ff3fc71d5 --- /dev/null +++ b/m4/dl.m4 @@ -0,0 +1,54 @@ +dnl +dnl Check for dlopen symbol and set DYNAMIC_LD_LIBS. +dnl +dnl AM_DL() +dnl + +AC_DEFUN([AM_DL], [ + AC_CHECK_LIB(c, dlopen, + [DYNAMIC_LD_LIBS="" + have_dl=yes]) + + if test x$have_dl != "xyes"; then + AC_CHECK_LIB(dl, dlopen, + [DYNAMIC_LD_LIBS="-ldl" + have_dl=yes]) + fi + + if test x$have_dl != "xyes"; then + AC_MSG_CHECKING(for dlopen under win32) + AC_LANG_SAVE() + AC_LANG_C() + + ac_save_CPPFLAGS="$CPPFLAGS" + ac_save_LIBS="$LIBS" + CPPFLAGS="-I${srcdir}/win32/include $CPPFLAGS" + LIBS="$LIBS -lkernel32" + AC_COMPILE_IFELSE([ +#include <stddef.h> +#include <dlfcn.h> + +int main() { + dlopen(NULL, 0); + return 0; +} +], + [DYNAMIC_LD_LIBS=-lkernel32 + have_dl=yes + AC_MSG_RESULT(yes)], + AC_MSG_RESULT(no) + ) + + CPPFLAGS=$ac_save_CPPFLAGS + LIBS=$ac_save_LIBS + + AC_LANG_RESTORE() + fi + + if test x$have_dl != "xyes"; then + AC_MSG_ERROR(dynamic linker needed) + fi + + AC_SUBST(DYNAMIC_LD_LIBS) + +]) |