From cddfa376aec83ec32b4587f1620c290a92e2bd36 Mon Sep 17 00:00:00 2001 From: hinder Date: Thu, 22 Sep 2011 00:26:48 +0000 Subject: Detect backtrace-related functions during configuration See https://trac.einsteintoolkit.org/ticket/443 Patch by Roland Haas git-svn-id: http://svn.cactuscode.org/flesh/trunk@4726 17b73243-c579-4c4c-a9d2-2d5706c11dac --- lib/make/aclocal.m4 | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'lib/make/aclocal.m4') diff --git a/lib/make/aclocal.m4 b/lib/make/aclocal.m4 index b7871e23..3a65e395 100644 --- a/lib/make/aclocal.m4 +++ b/lib/make/aclocal.m4 @@ -46,6 +46,51 @@ changequote([, ])dnl done ]) +dnl A simplified version of AC_CHECK_MEMBER from autoconf 2.50 and up +dnl CCTK_CHECK_MEMBER(AGGREGATE, MEMBER, +dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND], +dnl [INCLUDES]) +dnl --------------------------------------------------------- +dnl AGGREGATE, MEMBER is for instance `struct passwd pw_gecos', shell +dnl variables are not a valid argument. +AC_DEFUN([CCTK_CHECK_MEMBER], +[dnl Extract the aggregate name, and the member name +ac_member_var=`echo $1['_']$2 | sed 'y% %_%'` +AC_MSG_CHECKING([for $1.$2]) +AC_CACHE_VAL(ac_cv_member_$ac_member_var, +[dnl +AC_TRY_COMPILE([$5], +[static $1 ac_aggr; +if (ac_aggr.$2) +return 0;], + eval "ac_cv_member_$ac_member_var=yes", + eval "ac_cv_member_$ac_member_var=no"dnl +) +if eval "test \"`echo '$''{'ac_cv_member_$ac_member_var'}'`\" = no"; then +AC_TRY_COMPILE([$5], +[static $1 ac_aggr; +if (sizeof ac_aggr.$2) +return 0;], + eval "ac_cv_member_$ac_member_var=yes", + eval "ac_cv_member_$ac_member_var=no"dnl +) +fi dnl +])dnl +if eval "test \"`echo '$ac_cv_member_'$ac_member_var`\" = yes"; then + AC_MSG_RESULT(yes) + ifelse([$3], , +[ac_tr_member=HAVE_MEMBER`echo $1 | sed -e 'y% %_%' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + AC_DEFINE_UNQUOTED($ac_tr_member) +], [$3]) +else + AC_MSG_RESULT(no) +ifelse([$4], , , [$4 +])dnl +fi +]) + + dnl A version of AC_TRY_COMPILER(TEST-PROGRAM, WORKING-VAR, CROSS-VAR) which, dnl if the TEST-PROGRAM could not be executed, does not throw away the stderr dnl but redirects it into the config.log logfile instead. -- cgit v1.2.3