]> www.ginac.de Git - ginac.git/blobdiff - acinclude.m4
gcd_pf_{pow, mul}: don't check if the arguments are polynomials.
[ginac.git] / acinclude.m4
index 3f64fdb52562116f1fda720ce4c40f5f8edeab36..dd7299c08ebea595232594d3c224e39918fe1015 100644 (file)
@@ -10,22 +10,29 @@ dnl about compatiblilty (which is not so bad by itself) and at the same time
 dnl they don't export the version to the preprocessor so we could kluge around 
 dnl incomatiblities.  The only reliable way to figure out the version is by 
 dnl checking the extern variable rl_library_version at runtime.  &#@$%*!
-AC_DEFUN(GINAC_LIB_READLINE_VERSION,
+AC_DEFUN([GINAC_LIB_READLINE_VERSION],
 [AC_CACHE_CHECK([for version of libreadline], ginac_cv_rlversion, [
 AC_TRY_RUN([
 #include <stdio.h>
 #include <sys/types.h>
 #include <readline/readline.h>
 
-main()
+int main()
 {
     FILE *fd;
     fd = fopen("conftest.out", "w");
     fprintf(fd, "%s\n", rl_library_version);
     fclose(fd);
     return 0;
-}], ginac_cv_rlversion=`cat 'conftest.out'`, ginac_cv_rlversion='unknown', ginac_cv_rlversion='4.2')])
+}], [
+dnl Some non-GNU readline implementations have non-numeric rl_library_version
+ginac_cv_rlversion=`sed -e 's/[[^0-9.]]//g' 'conftest.out'`], [ ginac_cv_rlversion='unknown'], [ ginac_cv_rlversion='4.2'])])
+if test -z "$ginac_cv_rlversion"; then
+       GINAC_WARNING([Unsupported version of libreadline.])
+       ginac_cv_rlversion='unknown'
+fi
 if test "x${ginac_cv_rlversion}" != "xunknown"; then
+       AC_DEFINE(REALLY_HAVE_LIBREADLINE, ,[Define if GNU libreadline is installed])
   RL_VERSION_MAJOR=`echo ${ginac_cv_rlversion} | sed -e 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
   AC_DEFINE_UNQUOTED(GINAC_RL_VERSION_MAJOR, $RL_VERSION_MAJOR, [Major version of installed readline library.])
   RL_VERSION_MINOR=`echo ${ginac_cv_rlversion} | sed -e 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
@@ -41,8 +48,12 @@ 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,
+AC_DEFUN([GINAC_TERMCAP],
 [LIBTERMCAP=
+case $host_os in
+*mingw32*)
+ ;; dnl no termcap libraries are necessary (need hacked libreadline)
+*)
 AC_CHECK_FUNCS(tgetent)
 if test "x$ac_cv_func_tgetent" = "xyes"; then
     :
@@ -52,13 +63,15 @@ else
         AC_CHECK_LIB(termcap, tgetent, LIBTERMCAP="-ltermcap")
     fi
 fi
+;;
+esac
 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,[
+AC_DEFUN([GINAC_ERROR],[
 ginac_error_txt="$ginac_error_txt
 ** $1
 "
@@ -67,7 +80,7 @@ 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,[
+AC_DEFUN([GINAC_WARNING],[
 ginac_warning_txt="$ginac_warning_txt
 == $1
 "
@@ -77,7 +90,7 @@ dnl Usage: GINAC_CHECK_ERRORS
 dnl (must be put at end of configure.in, because it exits on error)
 dnl This macro displays a warning message if GINAC_ERROR or GINAC_WARNING 
 dnl has occured previously.
-AC_DEFUN(GINAC_CHECK_ERRORS,[
+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\"."
@@ -100,3 +113,22 @@ else
     fi
     echo "Configuration of GiNaC $VERSION done. Now type \"make\"."
 fi])
+
+AC_DEFUN([GINAC_HAVE_RUSAGE],
+[AC_CACHE_CHECK([whether struct rusage is declared in <sys/resource.h>],
+ac_cv_have_rusage,
+ [AC_TRY_COMPILE([#include <sys/times.h>
+                  #include <sys/resource.h>],
+                  [struct rusage resUsage;
+                   getrusage(RUSAGE_SELF, &resUsage);
+                   return 0;],
+                 [ac_cv_have_rusage=yes],
+                 [ac_cv_have_rusage=no])
+])
+CONFIG_RUSAGE="no"
+if test "$ac_cv_have_rusage" = yes; then
+  CONFIG_RUSAGE="yes"
+  AC_DEFINE(HAVE_RUSAGE,,[define if struct rusage declared in <sys/resource.h>])
+fi
+AC_SUBST(CONFIG_RUSAGE)
+])