dnl future trouble.
dnl ===========================================================================
-dnl Usage: GINAC_STD_CXX_HEADERS
-dnl Check for standard C++ headers, bail out if something is missing.
-AC_DEFUN([GINAC_STD_CXX_HEADERS], [
-AC_CACHE_CHECK([for standard C++ header files], [ginac_cv_std_cxx_headers], [
- ginac_cv_std_cxx_headers="no"
- AC_LANG_PUSH([C++])
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
- #include <iosfwd>
- #include <iostream>
- #include <vector>
- #include <list>
- #include <map>
- #include <set>
- #include <string>
- #include <sstream>
- #include <typeinfo>
- #include <stdexcept>
- #include <algorithm>
- #include <limits>
- #include <ctime>
- ]])], [ginac_cv_std_cxx_headers="yes"])
- AC_LANG_POP([C++])])
-if test "${ginac_cv_std_cxx_headers}" != "yes"; then
- AC_MSG_ERROR([Standard ISO C++ 98 headers are missing])
-fi
-])
+dnl GINAC_HEADER_GETVAL(NAME,FILE)
+dnl ----------------------------
+dnl Expand at autoconf time to the value of a "#define NAME" from the given
+dnl FILE. The regexps here aren't very rugged, but are enough for us.
+dnl /dev/null as a parameter prevents a hang if $2 is accidentally omitted.
+dnl (shamelessly ripped from GMP, and changed prefix to GINAC_).
+
+define(GINAC_HEADER_GETVAL,
+[patsubst(patsubst(
+esyscmd([grep "^#define $1 " $2 /dev/null 2>/dev/null]),
+[^.*$1[ ]+],[]),
+[[
+ ]*$],[])])
+define(GINAC_GET_VERSION,
+[GINAC_HEADER_GETVAL(GINACLIB_$1_VERSION,[ginac/version.h])])
+define(GINAC_GET_LTVERSION,
+[GINAC_HEADER_GETVAL(GINAC_LT_$1,[ginac/version.h])])
dnl Usage: GINAC_LIBREADLINE
dnl
AC_CACHE_CHECK([for version of libreadline], [ginac_cv_rl_supported], [
ginac_cv_rl_supported="no"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
- #include <stdio.h>
+ #include <cstdio>
#include <readline/readline.h>
#if !defined(RL_VERSION_MAJOR) || !defined(RL_VERSION_MINOR)
#error "Ancient/unsupported version of readline"
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])
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#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