diff --git a/ext/uri/config.m4 b/ext/uri/config.m4 index 08dc044d8d29..8f251bfd60ab 100644 --- a/ext/uri/config.m4 +++ b/ext/uri/config.m4 @@ -1,22 +1,41 @@ dnl Configure options dnl +PHP_ARG_WITH([external-uriparser], + [for external/system liburiparser], + [AS_HELP_STRING([--with-external-uriparser], + [Use externalsystem liburiparser])], + [no], + [no]) + PHP_INSTALL_HEADERS([ext/uri], m4_normalize([ php_lexbor.h php_uri.h php_uri_common.h ])) + AC_DEFINE([URI_ENABLE_ANSI], [1], [Define to 1 for enabling ANSI support of uriparser.]) AC_DEFINE([URI_NO_UNICODE], [1], [Define to 1 for disabling unicode support of uriparser.]) -URIPARSER_DIR="uriparser" -URIPARSER_SOURCES="$URIPARSER_DIR/src/UriCommon.c $URIPARSER_DIR/src/UriCompare.c $URIPARSER_DIR/src/UriEscape.c \ -$URIPARSER_DIR/src/UriFile.c $URIPARSER_DIR/src/UriIp4.c $URIPARSER_DIR/src/UriIp4Base.c \ -$URIPARSER_DIR/src/UriMemory.c $URIPARSER_DIR/src/UriNormalize.c $URIPARSER_DIR/src/UriNormalizeBase.c \ -$URIPARSER_DIR/src/UriParse.c $URIPARSER_DIR/src/UriParseBase.c $URIPARSER_DIR/src/UriQuery.c \ -$URIPARSER_DIR/src/UriRecompose.c $URIPARSER_DIR/src/UriResolve.c $URIPARSER_DIR/src/UriShorten.c" +if test "$PHP_EXTERNAL_URIPARSER" = "no"; then + URIPARSER_DIR="uriparser" + URIPARSER_SOURCES="$URIPARSER_DIR/src/UriCommon.c $URIPARSER_DIR/src/UriCompare.c $URIPARSER_DIR/src/UriEscape.c \ + $URIPARSER_DIR/src/UriFile.c $URIPARSER_DIR/src/UriIp4.c $URIPARSER_DIR/src/UriIp4Base.c \ + $URIPARSER_DIR/src/UriMemory.c $URIPARSER_DIR/src/UriNormalize.c $URIPARSER_DIR/src/UriNormalizeBase.c \ + $URIPARSER_DIR/src/UriParse.c $URIPARSER_DIR/src/UriParseBase.c $URIPARSER_DIR/src/UriQuery.c \ + $URIPARSER_DIR/src/UriRecompose.c $URIPARSER_DIR/src/UriResolve.c $URIPARSER_DIR/src/UriShorten.c" + URI_CFLAGS="-DURI_STATIC_BUILD" +else + PKG_CHECK_MODULES([LIBURIPARSER], [liburiparser >= 0.9.8]) + PHP_EVAL_LIBLINE([$LIBURIPARSER_LIBS], [URI_SHARED_LIBADD]) + PHP_EVAL_INCLINE([$LIBURIPARSER_CFLAGS]) +fi -PHP_NEW_EXTENSION(uri, [php_lexbor.c php_uri.c php_uri_common.c $URIPARSER_SOURCES], [no],,[-I$ext_srcdir/$URIPARSER_DIR/include -DURI_STATIC_BUILD -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1]) +PHP_NEW_EXTENSION(uri, [php_lexbor.c php_uri.c php_uri_common.c $URIPARSER_SOURCES], [no],,[$URI_CFLAGS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1]) PHP_ADD_EXTENSION_DEP(uri, lexbor) -PHP_ADD_BUILD_DIR($ext_builddir/$URIPARSER_DIR/src $ext_builddir/$URIPARSER_DIR/include) + +if test "$PHP_EXTERNAL_URIPARSER" = "no"; then + PHP_ADD_BUILD_DIR($ext_builddir/$URIPARSER_DIR/src $ext_builddir/$URIPARSER_DIR/include) + PHP_ADD_INCLUDE([$ext_srcdir/$URIPARSER_DIR/include]) +fi diff --git a/ext/uri/php_uri.c b/ext/uri/php_uri.c index 5b2e21b1625a..fb09251efe05 100644 --- a/ext/uri/php_uri.c +++ b/ext/uri/php_uri.c @@ -29,7 +29,7 @@ #include "php_uri_common.h" #include "php_lexbor.h" #include "php_uri_arginfo.h" -#include "uriparser/src/UriConfig.h" +#include "uriparser/UriBase.h" zend_class_entry *uri_whatwg_url_ce; zend_object_handlers uri_whatwg_uri_object_handlers; @@ -40,8 +40,6 @@ zend_class_entry *uri_whatwg_invalid_url_exception_ce; zend_class_entry *uri_whatwg_url_validation_error_type_ce; zend_class_entry *uri_whatwg_url_validation_error_ce; -#define URIPARSER_VERSION PACKAGE_VERSION - static const zend_module_dep uri_deps[] = { ZEND_MOD_REQUIRED("lexbor") ZEND_MOD_END @@ -652,7 +650,11 @@ static PHP_MINFO_FUNCTION(uri) { php_info_print_table_start(); php_info_print_table_row(2, "uri support", "active"); - php_info_print_table_row(2, "uriparser library version", URIPARSER_VERSION); +#ifdef URI_STATIC_BUILD + php_info_print_table_row(2, "uriparser bundled library version", URI_VER_ANSI); +#else + php_info_print_table_row(2, "uriparser system library version", URI_VER_ANSI); +#endif php_info_print_table_end(); }