summaryrefslogtreecommitdiff
path: root/lib/make/aclocal.m4
diff options
context:
space:
mode:
Diffstat (limited to 'lib/make/aclocal.m4')
-rw-r--r--lib/make/aclocal.m445
1 files changed, 45 insertions, 0 deletions
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.