xref: /php-src/ext/ffi/config.m4 (revision b5e2f3a4)
1PHP_ARG_WITH([ffi],
2  [for FFI support],
3  [AS_HELP_STRING([--with-ffi],
4    [Include FFI support])])
5
6if test "$PHP_FFI" != "no"; then
7  PKG_CHECK_MODULES([FFI], [libffi >= 3.0.11])
8
9  PHP_EVAL_INCLINE($FFI_CFLAGS)
10  PHP_EVAL_LIBLINE($FFI_LIBS, FFI_SHARED_LIBADD)
11
12  AC_DEFINE(HAVE_FFI, 1, [Have ffi support])
13
14  AC_CHECK_TYPES(long double)
15
16  AC_DEFUN([PHP_FFI_CHECK_DECL],
17    [AC_CHECK_DECL([$1],
18      [AC_DEFINE(AS_TR_CPP([HAVE_$1]), [1],
19        [Whether libffi supports the '$1' calling convention.])],,
20      [#include <ffi.h>])])
21
22  PHP_FFI_CHECK_DECL([FFI_FASTCALL])
23  PHP_FFI_CHECK_DECL([FFI_THISCALL])
24  PHP_FFI_CHECK_DECL([FFI_STDCALL])
25  PHP_FFI_CHECK_DECL([FFI_PASCAL])
26  PHP_FFI_CHECK_DECL([FFI_REGISTER])
27  PHP_FFI_CHECK_DECL([FFI_MS_CDECL])
28  PHP_FFI_CHECK_DECL([FFI_SYSV])
29
30  PHP_NEW_EXTENSION(ffi, ffi.c ffi_parser.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
31  PHP_SUBST(FFI_SHARED_LIBADD)
32fi
33