]> www.ginac.de Git - ginac.git/blobdiff - acinclude.m4
Use C style cast when converting void* into function pointer.
[ginac.git] / acinclude.m4
index 78c3bdb7a86a62919ccde358bafc336f0b7af3e5..06ac032ad48b0563c91c798a67e756c8a936958a 100644 (file)
@@ -187,16 +187,29 @@ case $host_os in
 esac
 
 if test "$CONFIG_EXCOMPILER" = "yes"; then
-       AC_CHECK_LIB(dl, dlopen, [
-               DL_LIBS="-ldl"
-               AC_DEFINE(HAVE_LIBDL, 1, [set to 1 if you have a working libdl installed.])],
-
-               [AC_MSG_WARN([libdl not found. GiNaC::compile_ex will be disabled.])
-                CONFIG_EXCOMPILER="no"])
+       AC_CHECK_HEADER([dlfcn.h], [CONFIG_EXCOMPILER="yes"], [CONFIG_EXCOMPILER="no"])
 elif test "$CONFIG_EXCOMPILER" = "no"; then
-       AC_MSG_RESULT([INFO: GiNaC::compile_ex disabled at user request.])
+       AC_MSG_NOTICE([GiNaC::compile_ex disabled at user request.])
 else
-       AC_MSG_RESULT([INFO: GiNaC::compile_ex is not supported on $host_os.])
+       AC_MSG_NOTICE([GiNaC::compile_ex is not supported on $host_os.])
+fi
+       
+if test "$CONFIG_EXCOMPILER" = "yes"; then
+       dnl Some systems (GNU/Linux, Solaris) have dlopen in -ldl, some
+       dnl others (OpenBSD) -- in libc
+       found_dlopen_lib="no"
+       DL_LIBS="-ldl"
+       AC_CHECK_LIB(dl, dlopen, [found_dlopen_lib="yes"])
+       if test "$found_dlopen_lib" = "no"; then
+               DL_LIBS=""
+               AC_CHECK_FUNC(dlopen, [found_dlopen_lib="yes"])
+       fi
+       if test "$found_dlopen_lib" = "no"; then
+               CONFIG_EXCOMPILER="no"
+               AC_MSG_WARN([Could not found working dlopen(). GiNaC::compile_ex will be disabled.])
+       else
+               AC_DEFINE(HAVE_LIBDL, 1, [set to 1 if dlopen() works.])
+       fi
 fi
 AC_SUBST(DL_LIBS)
 AC_SUBST(CONFIG_EXCOMPILER)])