123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- # AC_LANG_STDCALL_FUNC_LINK_TRY(FUNCTION, SIGNATURE)
- # -------------------------------
- # Produce a source which links correctly iff the FUNCTION exists.
- AC_DEFUN([AC_LANG_STDCALL_FUNC_LINK_TRY],
- [_AC_LANG_DISPATCH([$0], _AC_LANG, $@)])
- # AC_CHECK_STDCALL_FUNC(FUNCTION, SIGNATURE, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
- # -----------------------------------------------------------------
- AC_DEFUN([AC_CHECK_STDCALL_FUNC],
- [AS_VAR_PUSHDEF([ac_var], [ac_cv_func_$1])dnl
- AC_CACHE_CHECK([for $1], ac_var,
- [AC_LINK_IFELSE([AC_LANG_STDCALL_FUNC_LINK_TRY([$1],[$2])],
- [AS_VAR_SET(ac_var, yes)],
- [AS_VAR_SET(ac_var, no)])])
- AS_IF([test AS_VAR_GET(ac_var) = yes], [$3], [$4])dnl
- AS_VAR_POPDEF([ac_var])dnl
- ])# AC_CHECK_FUNC
- # AC_LANG_STDCALL_FUNC_LINK_TRY(C)(FUNCTION, SIGNATURE)
- # ----------------------------------
- # Don't include <ctype.h> because on OSF/1 3.0 it includes
- # <sys/types.h> which includes <sys/select.h> which contains a
- # prototype for select. Similarly for bzero.
- m4_define([AC_LANG_STDCALL_FUNC_LINK_TRY(C)],
- [AC_LANG_PROGRAM(
- [/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char __stdcall $1 ( $2 ) below. */
- #include <assert.h>
- /* Override any gcc2 internal prototype to avoid an error. */
- #ifdef __cplusplus
- extern "C"
- #endif
- /* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
- char __stdcall $1 ( $2 );
- char (*f) ( $2 );
- ],
- [/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
- #if defined (__stub_$1) || defined (__stub___$1)
- choke me
- #else
- f = $1;
- #endif
- ])])
- # AC_LANG_STDCALL_FUNC_LINK_TRY(C++)(FUNCTION)
- # ------------------------------------
- m4_copy([AC_LANG_STDCALL_FUNC_LINK_TRY(C)], [AC_LANG_STDCALL_FUNC_LINK_TRY(C++)])
|