From: short <> Date: Thu, 10 Jul 2003 11:37:52 +0000 (+0000) Subject: +GCC_NEED_DECLARATION(): See whether we need a declaration for a function. X-Git-Tag: lufs_0_9_6_captive1~30 X-Git-Url: http://git.jankratochvil.net/?p=macros.git;a=commitdiff_plain;h=83a597f8c2e90193726f792c78363468fdbe98cb;ds=sidebyside +GCC_NEED_DECLARATION(): See whether we need a declaration for a function. --- diff --git a/Makefile.am b/Makefile.am index 689b238..3704165 100644 --- a/Makefile.am +++ b/Makefile.am @@ -22,7 +22,8 @@ include $(top_srcdir)/Makefile-head.am MACROS= \ AutoGen.pm \ Makefile-gtk-doc.am \ - gtk-doc.m4 + gtk-doc.m4 \ + need-declaration.m4 EXTRA_DIST+=$(MACROS) macros.dep MAINTAINERCLEANFILES+=macros.dep diff --git a/need-declaration.m4 b/need-declaration.m4 new file mode 100644 index 0000000..d5b7bc6 --- /dev/null +++ b/need-declaration.m4 @@ -0,0 +1,42 @@ +dnl See whether we need a declaration for a function. +dnl GCC_NEED_DECLARATION(FUNCTION [, EXTRA-HEADER-FILES]) +AC_DEFUN(GCC_NEED_DECLARATION, +[AC_MSG_CHECKING([whether $1 must be declared]) +AC_CACHE_VAL(gcc_cv_decl_needed_$1, +[AC_TRY_COMPILE([ +#include +#ifdef HAVE_STRING_H +#include +#else +#ifdef HAVE_STRINGS_H +#include +#endif +#endif +#ifdef HAVE_STDLIB_H +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif +$2], +[char *(*pfn) = (char *(*)) $1], +eval "gcc_cv_decl_needed_$1=no", eval "gcc_cv_decl_needed_$1=yes")]) +if eval "test \"`echo '$gcc_cv_decl_needed_'$1`\" = yes"; then + AC_MSG_RESULT(yes) + gcc_need_declarations="$gcc_need_declarations $1" + gcc_tr_decl=NEED_DECLARATION_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + AC_DEFINE_UNQUOTED($gcc_tr_decl) +else + AC_MSG_RESULT(no) +fi +])dnl + +dnl Check multiple functions to see whether each needs a declaration. +dnl GCC_NEED_DECLARATIONS(FUNCTION... [, EXTRA-HEADER-FILES]) +AC_DEFUN(GCC_NEED_DECLARATIONS, +[for ac_func in $1 +do +GCC_NEED_DECLARATION($ac_func, $2) +done +] +)