@@ -17,6 +17,97 @@ if test "$PHP_FFI" != "no"; then
17
17
AC_MSG_ERROR ( FFI module requires libffi )
18
18
] )
19
19
20
+ AC_CACHE_CHECK ( [ for fastcall calling convention] , ac_cv_ffi_fastcall ,
21
+ [
22
+ AC_COMPILE_IFELSE (
23
+ [ AC_LANG_PROGRAM ( [ [ #include <ffi.h>] ] ,
24
+ [ [ return FFI_FASTCALL] ] )
25
+ ] ,
26
+ [ ac_cv_ffi_fastcall=yes] , [ ac_cv_ffi_fastcall=no] )
27
+ ] )
28
+
29
+ if test "$ac_cv_ffi_fastcall" = yes; then
30
+ AC_DEFINE ( HAVE_FFI_FASTCALL ,1 ,[ Whether libffi supports fastcall calling convention] )
31
+ fi
32
+
33
+ AC_CACHE_CHECK ( [ for thiscall calling convention] , ac_cv_ffi_thiscall ,
34
+ [
35
+ AC_COMPILE_IFELSE (
36
+ [ AC_LANG_PROGRAM ( [ [ #include <ffi.h>] ] ,
37
+ [ [ return FFI_THISCALL] ] )
38
+ ] ,
39
+ [ ac_cv_ffi_thiscall=yes] , [ ac_cv_ffi_thiscall=no] )
40
+ ] )
41
+
42
+ if test "$ac_cv_ffi_thiscall" = yes; then
43
+ AC_DEFINE ( HAVE_FFI_THISCALL ,1 ,[ Whether libffi supports thiscall calling convention] )
44
+ fi
45
+
46
+ AC_CACHE_CHECK ( [ for stdcall calling convention] , ac_cv_ffi_stdcall ,
47
+ [
48
+ AC_COMPILE_IFELSE (
49
+ [ AC_LANG_PROGRAM ( [ [ #include <ffi.h>] ] ,
50
+ [ [ return FFI_STDCALL] ] )
51
+ ] ,
52
+ [ ac_cv_ffi_stdcall=yes] , [ ac_cv_ffi_stdcall=no] )
53
+ ] )
54
+
55
+ if test "$ac_cv_ffi_stdcall" = yes; then
56
+ AC_DEFINE ( HAVE_FFI_STDCALL ,1 ,[ Whether libffi supports stdcall calling convention] )
57
+ fi
58
+
59
+ AC_CACHE_CHECK ( [ for pascal calling convention] , ac_cv_ffi_pascal ,
60
+ [
61
+ AC_COMPILE_IFELSE (
62
+ [ AC_LANG_PROGRAM ( [ [ #include <ffi.h>] ] ,
63
+ [ [ return FFI_PASCAL] ] )
64
+ ] ,
65
+ [ ac_cv_ffi_pascal=yes] , [ ac_cv_ffi_pascal=no] )
66
+ ] )
67
+
68
+ if test "$ac_cv_ffi_pascal" = yes; then
69
+ AC_DEFINE ( HAVE_FFI_PASCAL ,1 ,[ Whether libffi supports pascal calling convention] )
70
+ fi
71
+
72
+ AC_CACHE_CHECK ( [ for register calling convention] , ac_cv_ffi_register ,
73
+ [
74
+ AC_COMPILE_IFELSE (
75
+ [ AC_LANG_PROGRAM ( [ [ #include <ffi.h>] ] ,
76
+ [ [ return FFI_REGISTER] ] )
77
+ ] ,
78
+ [ ac_cv_ffi_register=yes] , [ ac_cv_ffi_register=no] )
79
+ ] )
80
+
81
+ if test "$ac_cv_ffi_register" = yes; then
82
+ AC_DEFINE ( HAVE_FFI_REGISTER ,1 ,[ Whether libffi supports register calling convention] )
83
+ fi
84
+
85
+ AC_CACHE_CHECK ( [ for ms_cdecl calling convention] , ac_cv_ffi_ms_cdecl ,
86
+ [
87
+ AC_COMPILE_IFELSE (
88
+ [ AC_LANG_PROGRAM ( [ [ #include <ffi.h>] ] ,
89
+ [ [ return FFI_MS_CDECL] ] )
90
+ ] ,
91
+ [ ac_cv_ffi_ms_cdecl=yes] , [ ac_cv_ffi_ms_cdecl=no] )
92
+ ] )
93
+
94
+ if test "$ac_cv_ffi_ms_cdecl" = yes; then
95
+ AC_DEFINE ( HAVE_FFI_MS_CDECL ,1 ,[ Whether libffi supports ms_cdecl calling convention] )
96
+ fi
97
+
98
+ AC_CACHE_CHECK ( [ for sysv calling convention] , ac_cv_ffi_sysv ,
99
+ [
100
+ AC_COMPILE_IFELSE (
101
+ [ AC_LANG_PROGRAM ( [ [ #include <ffi.h>] ] ,
102
+ [ [ return FFI_SYSV] ] )
103
+ ] ,
104
+ [ ac_cv_ffi_sysv=yes] , [ ac_cv_ffi_sysv=no] )
105
+ ] )
106
+
107
+ if test "$ac_cv_ffi_sysv" = yes; then
108
+ AC_DEFINE ( HAVE_FFI_SYSV ,1 ,[ Whether libffi supports sysv calling convention] )
109
+ fi
110
+
20
111
PHP_NEW_EXTENSION(ffi, ffi.c ffi_parser.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
21
112
PHP_SUBST(FFI_SHARED_LIBADD)
22
113
fi
0 commit comments