config.m4.template 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. %YAML 1.2
  2. --- |
  3. PHP_ARG_ENABLE(grpc, whether to enable grpc support,
  4. [ --enable-grpc Enable grpc support])
  5. if test "$PHP_GRPC" != "no"; then
  6. dnl Write more examples of tests here...
  7. dnl # --with-grpc -> add include path
  8. PHP_ADD_INCLUDE(PHP_EXT_SRCDIR()/include)
  9. PHP_ADD_INCLUDE(PHP_EXT_SRCDIR()/src/core/ext/upb-generated)
  10. PHP_ADD_INCLUDE(PHP_EXT_SRCDIR()/src/core/ext/upbdefs-generated)
  11. PHP_ADD_INCLUDE(PHP_EXT_SRCDIR()/src/php/ext/grpc)
  12. PHP_ADD_INCLUDE(PHP_EXT_SRCDIR()/third_party/abseil-cpp)
  13. PHP_ADD_INCLUDE(PHP_EXT_SRCDIR()/third_party/address_sorting/include)
  14. PHP_ADD_INCLUDE(PHP_EXT_SRCDIR()/third_party/boringssl-with-bazel/src/include)
  15. PHP_ADD_INCLUDE(PHP_EXT_SRCDIR()/third_party/re2)
  16. PHP_ADD_INCLUDE(PHP_EXT_SRCDIR()/third_party/upb)
  17. PHP_ADD_INCLUDE(PHP_EXT_SRCDIR()/third_party/xxhash)
  18. LIBS="-lpthread $LIBS"
  19. CFLAGS="-std=c11 -g -O2"
  20. CXXFLAGS="-std=c++11 -fno-exceptions -fno-rtti -g -O2"
  21. GRPC_SHARED_LIBADD="-lpthread $GRPC_SHARED_LIBADD"
  22. PHP_REQUIRE_CXX()
  23. PHP_ADD_LIBRARY(pthread)
  24. PHP_ADD_LIBRARY(dl,,GRPC_SHARED_LIBADD)
  25. PHP_ADD_LIBRARY(dl)
  26. case $host in
  27. *darwin*)
  28. PHP_ADD_LIBRARY(c++,1,GRPC_SHARED_LIBADD)
  29. ;;
  30. *)
  31. PHP_ADD_LIBRARY(stdc++,1,GRPC_SHARED_LIBADD)
  32. PHP_ADD_LIBRARY(rt,,GRPC_SHARED_LIBADD)
  33. PHP_ADD_LIBRARY(rt)
  34. ;;
  35. esac
  36. PHP_SUBST(GRPC_SHARED_LIBADD)
  37. <%
  38. srcs = []
  39. srcs.extend(php_config_m4.src)
  40. lib_maps = {lib.name: lib for lib in libs}
  41. php_deps = php_config_m4.get('deps', [])
  42. php_full_deps = []
  43. for dep in php_deps:
  44. php_full_deps.append(dep)
  45. php_full_deps.extend(lib_maps[dep].transitive_deps)
  46. for dep in set(php_full_deps) - set({'z'}):
  47. srcs.extend(lib_maps[dep].src)
  48. srcs = sorted(set(srcs))
  49. %>
  50. PHP_NEW_EXTENSION(grpc,
  51. % for src in srcs:
  52. ${src} ${"\\"}
  53. % endfor
  54. , $ext_shared, , -fvisibility=hidden ${"\\"}
  55. -DOPENSSL_NO_ASM -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN ${"\\"}
  56. -D_HAS_EXCEPTIONS=0 -DNOMINMAX -DGRPC_ARES=0 ${"\\"}
  57. -DGRPC_POSIX_FORK_ALLOW_PTHREAD_ATFORK=1 ${"\\"}
  58. -DGRPC_XDS_USER_AGENT_NAME_SUFFIX='"\"PHP\""' ${"\\"}
  59. -DGRPC_XDS_USER_AGENT_VERSION_SUFFIX='"\"${settings.php_version.php()}\""')
  60. <%
  61. dirs = sorted(set(src[:src.rfind('/')] for src in srcs))
  62. %>
  63. % for dir in dirs:
  64. PHP_ADD_BUILD_DIR($ext_builddir/${dir})
  65. % endfor
  66. fi