PageRenderTime 1818ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/ext/sockets/config.m4

https://github.com/php/php-src
m4 | 106 lines | 80 code | 15 blank | 11 comment | 0 complexity | 14f9ad68f3d613d8c0e94c43673044e3 MD5 | raw file
Possible License(s): BSD-2-Clause, BSD-3-Clause, MPL-2.0-no-copyleft-exception, LGPL-2.1
  1. PHP_ARG_ENABLE([sockets],
  2. [whether to enable sockets support],
  3. [AS_HELP_STRING([--enable-sockets],
  4. [Enable sockets support])])
  5. if test "$PHP_SOCKETS" != "no"; then
  6. AC_CHECK_FUNCS([hstrerror if_nametoindex if_indextoname])
  7. AC_CHECK_HEADERS([netinet/tcp.h sys/un.h sys/sockio.h])
  8. AC_DEFINE([HAVE_SOCKETS], 1, [ ])
  9. dnl Check for fied ss_family in sockaddr_storage (missing in AIX until 5.3)
  10. AC_CACHE_CHECK([for field ss_family in struct sockaddr_storage], ac_cv_ss_family,
  11. [
  12. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
  13. #include <sys/socket.h>
  14. #include <sys/types.h>
  15. #include <netdb.h>
  16. ]], [[struct sockaddr_storage sa_store; sa_store.ss_family = AF_INET6;]])],
  17. [ac_cv_ss_family=yes], [ac_cv_ss_family=no])
  18. ])
  19. if test "$ac_cv_ss_family" = yes; then
  20. AC_DEFINE(HAVE_SA_SS_FAMILY,1,[Whether you have sockaddr_storage.ss_family])
  21. fi
  22. dnl Check for AI_V4MAPPED flag
  23. AC_CACHE_CHECK([if getaddrinfo supports AI_V4MAPPED],[ac_cv_gai_ai_v4mapped],
  24. [
  25. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
  26. #include <netdb.h>
  27. ]], [[int flag = AI_V4MAPPED;]])],
  28. [ac_cv_gai_ai_v4mapped=yes], [ac_cv_gai_ai_v4mapped=no])
  29. ])
  30. if test "$ac_cv_gai_ai_v4mapped" = yes; then
  31. AC_DEFINE(HAVE_AI_V4MAPPED,1,[Whether you have AI_V4MAPPED])
  32. fi
  33. dnl Check for AI_ALL flag
  34. AC_CACHE_CHECK([if getaddrinfo supports AI_ALL],[ac_cv_gai_ai_all],
  35. [
  36. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
  37. #include <netdb.h>
  38. ]], [[int flag = AI_ALL;]])],
  39. [ac_cv_gai_ai_all=yes], [ac_cv_gai_ai_all=no])
  40. ])
  41. if test "$ac_cv_gai_ai_all" = yes; then
  42. AC_DEFINE(HAVE_AI_ALL,1,[Whether you have AI_ALL])
  43. fi
  44. dnl Check for AI_IDN flag
  45. AC_CACHE_CHECK([if getaddrinfo supports AI_IDN],[ac_cv_gai_ai_idn],
  46. [
  47. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
  48. #include <netdb.h>
  49. ]], [[int flag = AI_IDN;]])],
  50. [ac_cv_gai_ai_idn=yes], [ac_cv_gai_ai_idn=no])
  51. ])
  52. if test "$ac_cv_gai_ai_idn" = yes; then
  53. AC_DEFINE(HAVE_AI_IDN,1,[Whether you have AI_IDN])
  54. fi
  55. dnl Check for struct ucred
  56. dnl checking the header is not enough (eg DragonFlyBSD)
  57. AC_CACHE_CHECK([if ancillary credentials uses ucred],[ac_cv_ucred],
  58. [
  59. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
  60. #ifndef _GNU_SOURCE
  61. #define _GNU_SOURCE
  62. #endif
  63. #include <sys/socket.h>
  64. ]], [[struct ucred u = {.gid = 0};]])],
  65. [ac_cv_ucred=yes], [ac_cv_ucred=no])
  66. ])
  67. if test "$ac_cv_ucred" = yes; then
  68. AC_DEFINE(ANC_CREDS_UCRED,1,[Uses ucred struct])
  69. fi
  70. dnl Check for struct cmsgcred
  71. AC_CACHE_CHECK([if ancillary credentials uses cmsgcred],[ac_cv_cmsgcred],
  72. [
  73. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
  74. #include <sys/socket.h>
  75. ]], [[struct cmsgcred c = {0};]])],
  76. [ac_cv_cmsgcred=yes], [ac_cv_cmsgcred=no])
  77. ])
  78. if test "$ac_cv_cmsgcred" = yes; then
  79. AC_DEFINE(ANC_CREDS_CMSGCRED,1,[Uses cmsgcred struct])
  80. fi
  81. PHP_SOCKETS_CFLAGS=-DZEND_ENABLE_STATIC_TSRMLS_CACHE=1
  82. case $host_alias in
  83. *darwin*) PHP_SOCKETS_CFLAGS="$PHP_SOCKETS_CFLAGS -D__APPLE_USE_RFC_3542"
  84. esac
  85. PHP_NEW_EXTENSION(
  86. [sockets],
  87. [sockets.c multicast.c conversions.c sockaddr_conv.c sendrecvmsg.c],
  88. [$ext_shared],,
  89. $PHP_SOCKETS_CFLAGS)
  90. PHP_INSTALL_HEADERS([ext/sockets/], [php_sockets.h])
  91. fi