config.m4 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. dnl config.m4 for extension xmlrpc
  2. sinclude(ext/xmlrpc/libxmlrpc/acinclude.m4)
  3. sinclude(ext/xmlrpc/libxmlrpc/xmlrpc.m4)
  4. sinclude(libxmlrpc/acinclude.m4)
  5. sinclude(libxmlrpc/xmlrpc.m4)
  6. PHP_ARG_WITH(xmlrpc, for XMLRPC-EPI support,
  7. [ --with-xmlrpc[=DIR] Include XMLRPC-EPI support])
  8. if test -z "$PHP_LIBXML_DIR"; then
  9. PHP_ARG_WITH(libxml-dir, libxml2 install dir,
  10. [ --with-libxml-dir=DIR XMLRPC-EPI: libxml2 install prefix], no, no)
  11. fi
  12. PHP_ARG_WITH(libexpat-dir, libexpat dir for XMLRPC-EPI,
  13. [ --with-libexpat-dir=DIR XMLRPC-EPI: libexpat dir for XMLRPC-EPI (deprecated)],no,no)
  14. PHP_ARG_WITH(iconv-dir, iconv dir for XMLRPC-EPI,
  15. [ --with-iconv-dir=DIR XMLRPC-EPI: iconv dir for XMLRPC-EPI],no,no)
  16. if test "$PHP_XMLRPC" != "no"; then
  17. PHP_ADD_EXTENSION_DEP(xmlrpc, libxml)
  18. PHP_SUBST(XMLRPC_SHARED_LIBADD)
  19. AC_DEFINE(HAVE_XMLRPC,1,[ ])
  20. dnl
  21. dnl Default to libxml2 if --with-libexpat-dir is not used
  22. dnl
  23. if test "$PHP_LIBEXPAT_DIR" = "no"; then
  24. if test "$PHP_LIBXML" = "no"; then
  25. AC_MSG_ERROR([XML-RPC extension requires LIBXML extension, add --enable-libxml])
  26. fi
  27. PHP_SETUP_LIBXML(XMLRPC_SHARED_LIBADD, [
  28. if test "$PHP_XML" = "no"; then
  29. PHP_ADD_SOURCES(ext/xml, compat.c)
  30. PHP_ADD_BUILD_DIR(ext/xml)
  31. fi
  32. ], [
  33. AC_MSG_ERROR([libxml2 not found. Use --with-libxml-dir=<DIR>])
  34. ])
  35. else
  36. testval=no
  37. for i in $PHP_LIBEXPAT_DIR $XMLRPC_DIR /usr/local /usr; do
  38. if test -f $i/$PHP_LIBDIR/libexpat.a || test -f $i/$PHP_LIBDIR/libexpat.$SHLIB_SUFFIX_NAME; then
  39. AC_DEFINE(HAVE_LIBEXPAT,1,[ ])
  40. PHP_ADD_LIBRARY_WITH_PATH(expat, $i/$PHP_LIBDIR, XMLRPC_SHARED_LIBADD)
  41. PHP_ADD_INCLUDE($i/include)
  42. testval=yes
  43. break
  44. fi
  45. done
  46. if test "$testval" = "no"; then
  47. AC_MSG_ERROR([XML-RPC support requires libexpat. Use --with-libexpat-dir=<DIR> (deprecated!)])
  48. fi
  49. fi
  50. dnl if iconv is shared or missing then we should build iconv ourselves
  51. if test "$PHP_ICONV_SHARED" = "yes" || test "$PHP_ICONV" = "no"; then
  52. if test "$PHP_ICONV_DIR" != "no"; then
  53. PHP_ICONV=$PHP_ICONV_DIR
  54. fi
  55. if test -z "$PHP_ICONV" || test "$PHP_ICONV" = "no"; then
  56. PHP_ICONV=yes
  57. fi
  58. PHP_SETUP_ICONV(XMLRPC_SHARED_LIBADD, [], [
  59. AC_MSG_ERROR([iconv not found, in order to build xmlrpc you need the iconv library])
  60. ])
  61. fi
  62. fi
  63. if test "$PHP_XMLRPC" = "yes"; then
  64. XMLRPC_CHECKS
  65. PHP_NEW_EXTENSION(xmlrpc,xmlrpc-epi-php.c libxmlrpc/base64.c \
  66. libxmlrpc/simplestring.c libxmlrpc/xml_to_dandarpc.c \
  67. libxmlrpc/xmlrpc_introspection.c libxmlrpc/encodings.c \
  68. libxmlrpc/system_methods.c libxmlrpc/xml_to_xmlrpc.c \
  69. libxmlrpc/queue.c libxmlrpc/xml_element.c libxmlrpc/xmlrpc.c \
  70. libxmlrpc/xml_to_soap.c,$ext_shared,,
  71. -I@ext_srcdir@/libxmlrpc -DVERSION="0.50")
  72. PHP_ADD_BUILD_DIR($ext_builddir/libxmlrpc)
  73. XMLRPC_MODULE_TYPE=builtin
  74. AC_DEFINE(HAVE_XMLRPC_BUNDLED, 1, [ ])
  75. elif test "$PHP_XMLRPC" != "no"; then
  76. if test -r $PHP_XMLRPC/include/xmlrpc.h; then
  77. XMLRPC_DIR=$PHP_XMLRPC/include
  78. elif test -r $PHP_XMLRPC/include/xmlrpc-epi/xmlrpc.h; then
  79. dnl some xmlrpc-epi header files have generic file names like
  80. dnl queue.h or base64.h. Distributions have to create dir
  81. dnl for xmlrpc-epi because of this.
  82. XMLRPC_DIR=$PHP_XMLRPC/include/xmlrpc-epi
  83. else
  84. AC_MSG_CHECKING(for XMLRPC-EPI in default path)
  85. for i in /usr/local /usr; do
  86. if test -r $i/include/xmlrpc.h; then
  87. XMLRPC_DIR=$i/include
  88. AC_MSG_RESULT(found in $i)
  89. break
  90. fi
  91. done
  92. fi
  93. if test -z "$XMLRPC_DIR"; then
  94. AC_MSG_RESULT(not found)
  95. AC_MSG_ERROR(Please reinstall the XMLRPC-EPI distribution)
  96. fi
  97. PHP_ADD_INCLUDE($XMLRPC_DIR)
  98. PHP_ADD_LIBRARY_WITH_PATH(xmlrpc, $XMLRPC_DIR/$PHP_LIBDIR, XMLRPC_SHARED_LIBADD)
  99. PHP_NEW_EXTENSION(xmlrpc,xmlrpc-epi-php.c, $ext_shared)
  100. XMLRPC_MODULE_TYPE=external
  101. fi