From: Alexei Sheplyakov Date: Mon, 3 Nov 2008 16:17:16 +0000 (+0300) Subject: [portability] GiNaC::compile_ex works on OpenBSD now. X-Git-Tag: release_1-5-0~31 X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=commitdiff_plain;h=375a7aa1f13fa6061c278eb2c2447fd91521b45d;ds=sidebyside [portability] GiNaC::compile_ex works on OpenBSD now. * acinclude.m4: check for dlopen() in libdl and in libc itself. Thanks to Paul Irofti for a bug report and a suggestion. --- diff --git a/acinclude.m4 b/acinclude.m4 index 78c3bdb7..06ac032a 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -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)])