- Adjusted build-environment for "Cint without crutches" (tm).
[ginac.git] / acinclude.m4
index 655cb99234dfd9d8e9439c16097c2d8cfc9914cf..5c39bc05b9b1d498954885580b62ca4f887af168 100644 (file)
@@ -31,13 +31,13 @@ AC_DEFUN(GINAC_CHECK_LIBCLN,
         [LIBS="-lcln"
         case "${ac_cv_header_cln_cln_h}" in
         "yes")
-            AC_TRY_LINK([#include <cln/cln.h>],
+            AC_TRY_LINK([#include <cln/cl_integer.h>],
                 [doublefactorial(2);],
                 ginac_cv_lib_cln_link="-lcln",
                 ginac_cv_lib_cln_link="fail")
             ;;
         *)
-            AC_TRY_LINK([#include <cln.h>],
+            AC_TRY_LINK([#include <cl_integer.h>],
                 [doublefactorial(2);],
                 ginac_cv_lib_cln_link="-lcln",
                 ginac_cv_lib_cln_link="fail")
@@ -54,12 +54,71 @@ dnl linking failed:
     "fail")
         LIBS="${saved_LIBS}"
         AC_MSG_RESULT([no])
-        AC_MSG_ERROR([You either need to set \$LDFLAGS or update CLN])
-    ;;
-dnl should never ever get here:
-    *)
-        LIBS="${saved_LIBS}"
-        AC_MSG_WARN([you found a bug in the configure script!])
+        GINAC_ERROR([I could not successfully link a test-program against libcln and run it.
+   You either need to set \$LDFLAGS or install/update the CLN library.])
     ;;
     esac
 ])
+
+dnl Usage: GINAC_TERMCAP
+dnl libreadline is based on the termcap functions.
+dnl Some systems have tgetent(), tgetnum(), tgetstr(), tgetflag(), tputs(),
+dnl tgoto() in libc, some have it in libtermcap, some have it in libncurses.
+dnl When both libtermcap and libncurses exist, we prefer the latter, because
+dnl libtermcap is being phased out.
+AC_DEFUN(GINAC_TERMCAP,
+[LIBTERMCAP=
+AC_CHECK_FUNCS(tgetent)
+if test "x$ac_cv_func_tgetent" = "xyes"; then
+    :
+else
+    AC_CHECK_LIB(ncurses, tgetent, LIBTERMCAP="-lncurses")
+    if test -z "$LIBTERMCAP"; then
+        AC_CHECK_LIB(termcap, tgetent, LIBTERMCAP="-ltermcap")
+    fi
+fi
+AC_SUBST(LIBTERMCAP)
+])
+
+dnl Usage: GINAC_ERROR(message)
+dnl This macro displays the warning "message" and sets the flag ginac_error
+dnl to yes.
+AC_DEFUN(GINAC_ERROR,[
+ginac_error_txt="$ginac_error_txt
+** $1
+"
+ginac_error=yes])
+
+dnl Usage: GINAC_WARNING(message)
+dnl This macro displays the warning "message" and sets the flag ginac_warning
+dnl to yes.
+AC_DEFUN(GINAC_WARNING,[
+ginac_warning_txt="$ginac_warning_txt
+== $1
+"
+ginac_warning=yes])
+
+dnl Usage: GINAC_CHECK_ERRORS
+dnl (preferably to be put at end of configure.in)
+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 "**** 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)"
+    echo "$ginac_error_txt"
+    if test "x${ginac_warning_txt}" != "x"; then
+        echo "${ginac_warning_txt}"
+    fi
+    echo "deleting cache ${cache_file}"
+    rm -f $cache_file
+    else 
+        if test x$ginac_warning = xyes; then
+            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)"
+            echo "$ginac_warning_txt"
+        fi
+    echo "Configuration of GiNaC $VERSION done. Now type \"make\"."
+fi])