*** empty log message ***
[gnulib.git] / m4 / decl.m4
1 AC_DEFUN(jm_CHECK_DECLARATION,
2 [
3   AC_REQUIRE([AC_HEADER_STDC])dnl
4   test -z "$ac_cv_header_memory_h" && AC_CHECK_HEADERS(memory.h)
5   test -z "$ac_cv_header_string_h" && AC_CHECK_HEADERS(string.h)
6   test -z "$ac_cv_header_strings_h" && AC_CHECK_HEADERS(strings.h)
7   test -z "$ac_cv_header_stdlib_h" && AC_CHECK_HEADERS(stdlib.h)
8   test -z "$ac_cv_header_unistd_h" && AC_CHECK_HEADERS(unistd.h)
9   AC_MSG_CHECKING([whether $1 is declared])
10   AC_CACHE_VAL(jm_cv_func_decl_$1,
11     [AC_TRY_COMPILE([
12 #include <stdio.h>
13 #ifdef HAVE_STRING_H
14 # if !STDC_HEADERS && HAVE_MEMORY_H
15 #  include <memory.h>
16 # endif
17 # include <string.h>
18 #else
19 # ifdef HAVE_STRINGS_H
20 #  include <strings.h>
21 # endif
22 #endif
23 #ifdef HAVE_STDLIB_H
24 # include <stdlib.h>
25 #endif
26 #ifdef HAVE_UNISTD_H
27 # include <unistd.h>
28 #endif],
29       [
30 #ifndef $1
31 char *(*pfn) = (char *(*)) $1
32 #endif
33       ],
34       eval "jm_cv_func_decl_$1=yes",
35       eval "jm_cv_func_decl_$1=no")])
36
37   if eval "test \"`echo '$jm_cv_func_decl_'$1`\" = yes"; then
38     AC_MSG_RESULT(yes)
39     ifelse([$2], , :, [$2])
40   else
41     AC_MSG_RESULT(no)
42     ifelse([$3], , , [$3
43 ])dnl
44   fi
45 ])dnl
46
47 dnl jm_CHECK_DECLARATIONS(FUNCTION... [, ACTION-IF-DECLARED
48 dnl                       [, ACTION-IF-NOT-DECLARED]])
49 AC_DEFUN(jm_CHECK_DECLARATIONS,
50 [
51   for jm_func in $1
52   do
53     jm_CHECK_DECLARATION($jm_func,
54     [
55       jm_tr_func=HAVE_DECLARATION_`echo $jm_func | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`
56       AC_DEFINE_UNQUOTED($jm_tr_func) $2], $3)dnl
57   done
58 ])