]> www.ginac.de Git - ginac.git/blobdiff - acinclude.m4
This patch fixes a bug on machines where char is unsigned by default, by
[ginac.git] / acinclude.m4
index 78c3bdb7a86a62919ccde358bafc336f0b7af3e5..1e53fa45c41f2bbe6eb0d572ebd1d452220b4c49 100644 (file)
@@ -45,7 +45,7 @@ AC_REQUIRE([GINAC_TERMCAP])
 GINSH_LIBS=""
 AC_CHECK_HEADERS(readline/readline.h readline/history.h)
 if test "x${ac_cv_header_readline_readline_h}" != "xyes" -o "x${ac_cv_header_readline_history_h}" != "xyes"; then
-       GINAC_WARNING([readline headers could not be found.])
+       GINAC_WARNING([ginsh will not compile, because readline headers could not be found.])
 else
        AC_CACHE_CHECK([for version of libreadline], [ginac_cv_rl_supported], [
                ginac_cv_rl_supported="no"
@@ -57,13 +57,13 @@ else
                        #endif]])],
                        [ginac_cv_rl_supported="yes"])])
        if test "x${ginac_cv_rl_supported}" != "xyes"; then
-               GINAC_WARNING([Unsupported version of readline (<= 4.2 or non-GNU).])
+               GINAC_WARNING([ginsh will not compile, because of an unsupported version of readline (<= 4.2 or non-GNU).])
        else
                save_LIBS="$LIBS"
                LIBS="$LIBTERMCAP $LIBS"
                AC_CHECK_LIB(readline, readline)
                if test "x${ac_cv_lib_readline_readline}" != "xyes"; then
-                       GINAC_WARNING([libreadline could not be found.])
+                       GINAC_WARNING([ginsh will not compile, because libreadline could not be found.])
                fi
                GINSH_LIBS="$LIBS"
                LIBS="$save_LIBS"
@@ -121,6 +121,7 @@ dnl This macro displays a warning message if GINAC_ERROR or GINAC_WARNING
 dnl has occured previously.
 AC_DEFUN([GINAC_CHECK_ERRORS],[
 if test "x${ginac_error}" = "xyes"; then
+       echo
     echo "**** The following problems have been detected by configure."
     echo "**** Please check the messages below before running \"make\"."
     echo "**** (see the section 'Common Problems' in the INSTALL file)"
@@ -135,6 +136,7 @@ if test "x${ginac_error}" = "xyes"; then
     exit 1
 else 
     if test "x${ginac_warning}" = "xyes"; then
+               echo
         echo "=== The following minor problems have been detected by configure."
         echo "=== Please check the messages below before running \"make\"."
         echo "=== (see the section 'Common Problems' in the INSTALL file)"
@@ -187,16 +189,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)])