From 61ad97680256ec41375cea704ee47d0d3b93ddad Mon Sep 17 00:00:00 2001 From: "Eric J. Korpela" Date: Thu, 28 Apr 2005 21:14:30 +0000 Subject: [PATCH] modified SAH_HEADER_STDCXX to run quickly on machines that have all of the C++ standard headers svn path=/trunk/boinc/; revision=5956 --- m4/sah_header_stdcxx.m4 | 52 ++++++++++++++++++++++++++++++++++------- 1 file changed, 44 insertions(+), 8 deletions(-) diff --git a/m4/sah_header_stdcxx.m4 b/m4/sah_header_stdcxx.m4 index 25cea4d165..7e1bd01d92 100644 --- a/m4/sah_header_stdcxx.m4 +++ b/m4/sah_header_stdcxx.m4 @@ -14,20 +14,56 @@ AC_DEFUN([SAH_HEADER_STDCXX],[ sah_stdcxx_headers="algorithm bitset cassert cctype cerrno cfloat climits clocale cmath complex csetjmp csignal cstdarg cstddef cstdio cstdlib cstring ctime deque fstream functional iomanip ios iosfwd iostream istream iterator limits list locale map memory numeric ostream queue set sstream stack stdexcept streambuf string utility valarray vector" AC_LANG_PUSH(C++) - AC_CHECK_HEADERS([$sah_stdcxx_headers]) - for header in $sah_stdcxx_headers + dnl First we'll check to see if they are all here in order to save time. + AC_MSG_CHECKING([standard C++ headers]) + tmp_includes= + for header in $sah_stdcxx_headers do - eval tmp_var=\$ac_cv_header_${header} - if test "$tmp_var" = "yes" - then - sah_cxx_includes="$sah_cxx_includes + tmp_includes="$tmp_includes #include <$header> " - fi done + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +$tmp_includes +$ac_includes_default + ]], + [] + )], + [ + ac_includes_default="${ac_includes_default} +${tmp_includes} +" + sah_cxx_includes=${tmp_includes} + AC_MSG_RESULT(yes) + for header in $sah_stdcxx_headers + do + eval ac_cv_header_${header}=yes + ac_uc_defn=HAVE_`echo ${header} | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + AC_DEFINE_UNQUOTED([${ac_uc_defn}],1,[Define to 1 if you have the ${header} header]) + AC_CACHE_CHECK([for C++ header <${header}>],[ac_cv_header_${header}]) + done + ], + [ + ac_includes_default="$save_inc" + AC_MSG_RESULT(no) + AC_CHECK_HEADERS([$sah_stdcxx_headers]) + for header in $sah_stdcxx_headers + do + eval tmp_var=\$ac_cv_header_${header} + if test "$tmp_var" = "yes" + then + sah_cxx_includes="$sah_cxx_includes +#include <$header> +" + fi + done + ] + ) + ac_includes_default="$save_inc" AC_CACHE_SAVE AC_LANG_POP - ac_includes_default="$save_inc" CONFIG_TEST= ])