diff options
Diffstat (limited to 'm4/decl.m4')
-rw-r--r-- | m4/decl.m4 | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/m4/decl.m4 b/m4/decl.m4 new file mode 100644 index 00000000..4dd7e0d6 --- /dev/null +++ b/m4/decl.m4 @@ -0,0 +1,37 @@ +#serial 5 + +AC_DEFUN(jm_CHECK_DECLARATION, +[ + AC_MSG_CHECKING([whether $1 is declared]) + AC_CACHE_VAL(jm_cv_func_decl_$1, + [AC_TRY_COMPILE([$2], + [ +#ifndef $1 +char *(*pfn) = (char *(*)) $1 +#endif + ], + eval "jm_cv_func_decl_$1=yes", + eval "jm_cv_func_decl_$1=no")]) + + if eval "test \"`echo '$jm_cv_func_decl_'$1`\" = yes"; then + AC_MSG_RESULT(yes) + ifelse([$3], , :, [$3]) + else + AC_MSG_RESULT(no) + ifelse([$4], , , [$4 +])dnl + fi +])dnl + +dnl jm_CHECK_DECLARATIONS(INCLUDES, FUNCTION... [, ACTION-IF-DECLARED +dnl [, ACTION-IF-NOT-DECLARED]]) +AC_DEFUN(jm_CHECK_DECLARATIONS, +[ + for jm_func in $2 + do + jm_CHECK_DECLARATION($jm_func, [$1], + [ + jm_tr_func=HAVE_DECL_`echo $jm_func | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ` + AC_DEFINE_UNQUOTED($jm_tr_func) $3], [$4])dnl + done +]) |