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