remember strategies least recently used and least frequently used,
[ginac.git] / aclocal.m4
index a82589df1236d5f9abdd50e64acba47e7b3f4c0f..d4cb399bc994e67795632a123d95c1655fd985e4 100644 (file)
@@ -37,20 +37,20 @@ dnl C++ is more strongly typed than C.  Therefore we need to work with the
 dnl more fundamental AC_TRY_LINK instead.
 AC_DEFUN(GINAC_CHECK_LIBCLN,
     [AC_PROVIDE([$0])
-    AC_MSG_CHECKING([how to link with libcln])
+    AC_MSG_CHECKING([for doublefactorial in -lcln])
     saved_LIBS="${LIBS}"
     AC_CACHE_VAL(ginac_cv_lib_cln_link,
         [LIBS="-lcln"
-        case "${ac_cv_header_CLN_cln_h}" in
+        case "${ac_cv_header_cln_cln_h}" in
         "yes")
             AC_TRY_LINK([#include <cln/cln.h>],
-                [factorial(1);],
+                [doublefactorial(2);],
                 ginac_cv_lib_cln_link="-lcln",
                 ginac_cv_lib_cln_link="fail")
             ;;
         *)
             AC_TRY_LINK([#include <cln.h>],
-                [factorial(1);],
+                [doublefactorial(2);],
                 ginac_cv_lib_cln_link="-lcln",
                 ginac_cv_lib_cln_link="fail")
             ;;
@@ -59,75 +59,62 @@ AC_DEFUN(GINAC_CHECK_LIBCLN,
     case "${ginac_cv_lib_cln_link}" in
 dnl linking worked:
     "-lcln")
-        LIBS="-lcln ${saved_LIBS}"
-        AC_MSG_RESULT([-lcln])
-        GINAC_CHECK_LIBCLN_SANITY
+        LIBS="${ginac_cv_lib_cln_link} ${saved_LIBS}"
+        AC_MSG_RESULT("yes")
     ;;
 dnl linking failed:
     "fail")
         LIBS="${saved_LIBS}"
-        AC_MSG_RESULT([])
-        AC_MSG_ERROR([linking with libcln failed, maybe need to set \$LDFLAGS?])
-    ;;
-dnl should never ever get here:
-    *)
-        LIBS="${saved_LIBS}"
-    ;;
-    esac
-])
-
-dnl Check if the CLN library suits our needs, i.e. if it is new enough, by
-dnl trying to run into a little bug which was present till version 1.0.1 and
-dnl then removed.
-AC_DEFUN(GINAC_CHECK_LIBCLN_SANITY,
-    [AC_PROVIDE([$0])
-    AC_MSG_CHECKING([whether libcln behaves sane])
-    AC_CACHE_VAL(ginac_cv_lib_cln_integrity,
-        [
-        case "${ac_cv_header_CLN_cln_h}" in
-        "yes")
-            AC_TRY_RUN([#include <cln/cln.h>
-int main() {
-cl_RA q(3); q = q/2; cl_RA p(3); p = p/2;
-if (q+p != 3) return 1; else return 0;
-}],
-                ginac_cv_lib_cln_integrity="sane",
-                ginac_cv_lib_cln_integrity="insane",
-                ginac_cv_lib_cln_integrity="guessing sane")
-            ;;
-        *)
-            AC_TRY_RUN([#include <cln.h>
-int main() {
-cl_RA q(3); q = q/2; cl_RA p(3); p = p/2;
-if (q+p != 3) return 1; else return 0;
-}],
-                ginac_cv_lib_cln_integrity="sane",
-                ginac_cv_lib_cln_integrity="insane",
-                ginac_cv_lib_cln_integrity="guessing sane")
-            ;;
-        esac
-    ])
-    case "${ginac_cv_lib_cln_integrity}" in
-dnl exit status was 0:
-    "sane")
-        AC_MSG_RESULT([yes])
-    ;;
-dnl exit status was not 0:
-    "insane")
         AC_MSG_RESULT([no])
-        AC_MSG_WARN([maybe version of libcln is older than 1.0.2?])
-    ;;
-dnl test-program was not run because we are cross-compiling:
-    "guessing sane")
-        AC_MSG_RESULT([hopefully])
-    ;;
-dnl should never ever get here:
-    *)
-        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_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])
+
 # Like AC_CONFIG_HEADER, but automatically create stamp file.
 
 AC_DEFUN(AM_CONFIG_HEADER,
@@ -290,7 +277,7 @@ LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
 LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
 DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
 ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
-$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
+$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $lt_target \
 || AC_MSG_ERROR([libtool configure failed])
 
 # Reload cache, that may have been modified by ltconfig
@@ -322,6 +309,11 @@ AC_REQUIRE([AC_PROG_NM])dnl
 AC_REQUIRE([AC_PROG_LN_S])dnl
 dnl
 
+case "$target" in
+NONE) lt_target="$host" ;;
+*) lt_target="$target" ;;
+esac
+
 # Check for any special flags to pass to ltconfig.
 libtool_flags="--cache-file=$cache_file"
 test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
@@ -340,7 +332,7 @@ test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
 
 # Some flags need to be propagated to the compiler or linker for good
 # libtool support.
-case "$host" in
+case "$lt_target" in
 *-*-irix6*)
   # Find out which ABI we are using.
   echo '[#]line __oline__ "configure"' > conftest.$ac_ext
@@ -556,7 +548,6 @@ else
   AC_MSG_RESULT(no)
 fi
 test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-AC_SUBST(LD)
 AC_PROG_LD_GNU
 ])
 
@@ -602,14 +593,13 @@ else
 fi])
 NM="$ac_cv_path_NM"
 AC_MSG_RESULT([$NM])
-AC_SUBST(NM)
 ])
 
 # AC_CHECK_LIBM - check for math library
 AC_DEFUN(AC_CHECK_LIBM,
 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
 LIBM=
-case "$host" in
+case "$lt_target" in
 *-*-beos* | *-*-cygwin*)
   # These system don't have libm
   ;;