]> www.ginac.de Git - ginac.git/blobdiff - acinclude.m4
[DOC] Fix g++ argument order in tutorial example.
[ginac.git] / acinclude.m4
index 1e53fa45c41f2bbe6eb0d572ebd1d452220b4c49..35cd3862fefe3f331e6a72b93e947b9385a63416 100644 (file)
@@ -4,32 +4,23 @@ dnl additions' names with AC_ but with GINAC_ in order to steer clear of
 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
@@ -50,7 +41,7 @@ else
        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"
@@ -148,13 +139,13 @@ 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])
+ [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