summaryrefslogtreecommitdiff
path: root/m4/decl.m4
diff options
context:
space:
mode:
Diffstat (limited to 'm4/decl.m4')
-rw-r--r--m4/decl.m437
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
+])