From: Pierre Joye Date: Mon, 23 Jun 2008 18:40:29 +0000 (+0000) Subject: - do not enable an ext when a lib/header fails X-Git-Tag: php-5.3.0alpha1~630 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=41976c7ab67b6624cd661eae7c8ae0565874d465;p=php - do not enable an ext when a lib/header fails - use MESSAGE in mysql* - use correct CFLAGS for ext/libxml headers --- diff --git a/ext/dom/config.w32 b/ext/dom/config.w32 index 382587ff6e..8fba39336a 100644 --- a/ext/dom/config.w32 +++ b/ext/dom/config.w32 @@ -3,20 +3,24 @@ ARG_WITH("dom", "DOM support", "yes"); -if (PHP_DOM == "yes" && PHP_LIBXML == "yes") { - EXTENSION("dom", "php_dom.c attr.c document.c domerrorhandler.c \ - domstringlist.c domexception.c namelist.c processinginstruction.c \ - cdatasection.c documentfragment.c domimplementation.c element.c \ - node.c string_extend.c characterdata.c documenttype.c \ - domimplementationlist.c entity.c nodelist.c text.c comment.c \ - domconfiguration.c domimplementationsource.c entityreference.c \ - notation.c xpath.c dom_iterators.c typeinfo.c domerror.c \ - domlocator.c namednodemap.c userdatahandler.c"); - AC_DEFINE("HAVE_DOM", 1, "DOM support"); - if (!PHP_DOM_SHARED) { - ADD_FLAG("CFLAGS_DOM", "/D LIBXML_STATIC "); - } - ADD_EXTENSION_DEP('dom', 'libxml'); -} +if (PHP_DOM == "yes") { + if (PHP_LIBXML == "yes" && ADD_EXTENSION_DEP('dom', 'libxml')) { + EXTENSION("dom", "php_dom.c attr.c document.c domerrorhandler.c \ + domstringlist.c domexception.c namelist.c processinginstruction.c \ + cdatasection.c documentfragment.c domimplementation.c element.c \ + node.c string_extend.c characterdata.c documenttype.c \ + domimplementationlist.c entity.c nodelist.c text.c comment.c \ + domconfiguration.c domimplementationsource.c entityreference.c \ + notation.c xpath.c dom_iterators.c typeinfo.c domerror.c \ + domlocator.c namednodemap.c userdatahandler.c"); + AC_DEFINE("HAVE_DOM", 1, "DOM support"); + if (!PHP_DOM_SHARED) { + ADD_FLAG("CFLAGS_DOM", "/D LIBXML_STATIC "); + } + } else { + WARNING("dom support can't be enabled, libxml is not enabled") + PHP_DOM = "no" + } +} diff --git a/ext/exif/config.w32 b/ext/exif/config.w32 index 3ac0108f2d..38466c809c 100644 --- a/ext/exif/config.w32 +++ b/ext/exif/config.w32 @@ -4,7 +4,11 @@ ARG_ENABLE("exif", "exif", "no"); if (PHP_EXIF == "yes") { - EXTENSION("exif", "exif.c"); - AC_DEFINE('HAVE_EXIF', 1, 'Have exif'); - ADD_EXTENSION_DEP('exif', 'mbstring'); + if (ADD_EXTENSION_DEP('exif', 'mbstring')) { + EXTENSION("exif", "exif.c"); + AC_DEFINE('HAVE_EXIF', 1, 'Have exif'); + } else { + WARNING("exif support can't be enabled, libxml is not enabled") + PHP_EXIF = "no" + } } diff --git a/ext/libxml/config.w32 b/ext/libxml/config.w32 index 5ba19a3e7b..331e6de98e 100644 --- a/ext/libxml/config.w32 +++ b/ext/libxml/config.w32 @@ -6,7 +6,8 @@ ARG_WITH("libxml", "LibXML support", "yes"); if (PHP_LIBXML == "yes") { if (CHECK_LIB("libxml2_a_dll.lib;libxml2_a.lib", "libxml") && CHECK_LIB("libiconv_a.lib;iconv_a.lib;libiconv.lib;iconv.lib", "libxml") && - CHECK_HEADER_ADD_INCLUDE("libxml/parser.h", "CFLAGS")) { + CHECK_HEADER_ADD_INCLUDE("libxml/parser.h", "CFLAGS_LIBXML") && + ADD_EXTENSION_DEP('libxml', 'iconv')) { EXTENSION("libxml", "libxml.c", false /* never shared */); AC_DEFINE("HAVE_LIBXML", 1, "LibXML support"); @@ -14,11 +15,8 @@ if (PHP_LIBXML == "yes") { if (!PHP_LIBXML_SHARED) { ADD_DEF_FILE("ext\\libxml\\php_libxml2.def"); } - ADD_EXTENSION_DEP('libxml', 'iconv'); } else { WARNING("libxml support can't be enabled, iconv or libxml are missing") PHP_LIBXML = "no" } } - - diff --git a/ext/mysql/config.w32 b/ext/mysql/config.w32 index 7d202b1d1e..2a929b4165 100644 --- a/ext/mysql/config.w32 +++ b/ext/mysql/config.w32 @@ -4,19 +4,23 @@ ARG_WITH("mysql", "MySQL support", "no"); if (PHP_MYSQL != "no") { - if (PHP_MYSQL == "yes" || PHP_MYSQL == "mysqlnd") { + if ((PHP_MYSQL == "yes" || PHP_MYSQL == "mysqlnd")) { AC_DEFINE('MYSQL_USE_MYSQLND', 1, 'Using MySQL native driver'); - ADD_EXTENSION_DEP('mysql', 'mysqlnd', true); - EXTENSION("mysql", "php_mysql.c"); - AC_DEFINE('HAVE_MYSQL', 1, 'Have MySQL library'); - STDOUT.WriteLine("INFO: mysqlnd build"); + if (!ADD_EXTENSION_DEP('mysql', 'mysqlnd', true)) { + PHP_MYSQL = "no"; + WARNING("mysql not enabled; mysqlnd is not enabled"); + } else { + EXTENSION("mysql", "php_mysql.c"); + AC_DEFINE('HAVE_MYSQL', 1, 'Have MySQL library'); + MESSAGE("\tusing mysqlnd build"); + } } else if (PHP_MYSQL != "") { if (CHECK_LIB("libmysql.lib", "mysql", PHP_MYSQL) && CHECK_HEADER_ADD_INCLUDE("mysql.h", "CFLAGS_MYSQL", PHP_MYSQL + "\\include;" + PHP_PHP_BUILD + "\\include\\mysql;" + PHP_MYSQL)) { EXTENSION("mysql", "php_mysql.c"); AC_DEFINE('HAVE_MYSQL', 1, 'Have MySQL library'); - STDOUT.WriteLine("INFO: libmysql build"); + MESSAGE("\tusing libmysql"); } else { WARNING("mysql not enabled; libraries and headers not found"); } diff --git a/ext/mysqli/config.w32 b/ext/mysqli/config.w32 index e7c418999a..8ea72a06db 100644 --- a/ext/mysqli/config.w32 +++ b/ext/mysqli/config.w32 @@ -26,7 +26,7 @@ if (PHP_MYSQLI != "no") { AC_DEFINE('MYSQLI_USE_MYSQLND', 1, 'Using MySQL native driver'); AC_DEFINE('HAVE_MYSQLILIB', 1, 'Have MySQLi library'); ADD_EXTENSION_DEP('mysqli', 'mysqlnd', true); - STDOUT.WriteLine("INFO: mysqlnd build"); + MESSAGE("\tmysqlnd build"); } else { if (CHECK_LIB("libmysql.lib", "mysqli", PHP_MYSQLI) && CHECK_HEADER_ADD_INCLUDE("mysql.h", "CFLAGS_MYSQLI", PHP_MYSQLI + @@ -34,9 +34,10 @@ if (PHP_MYSQLI != "no") { "\\include\\mysql;" + PHP_MYSQLI)) { EXTENSION("mysqli", mysqli_source); AC_DEFINE('HAVE_MYSQLILIB', 1, 'Have MySQLi library'); - STDOUT.WriteLine("INFO: libmysql build"); + MESSAGE("\tlibmysql build"); } else { WARNING("mysqli not enabled; libraries and headers not found"); + PHP_MYSQLI = "no" } } } diff --git a/ext/odbc/config.w32 b/ext/odbc/config.w32 index 2ff2a06998..2395ddcb76 100644 --- a/ext/odbc/config.w32 +++ b/ext/odbc/config.w32 @@ -4,9 +4,13 @@ ARG_ENABLE("odbc", "ODBC support", "yes"); if (PHP_ODBC == "yes") { - EXTENSION("odbc", "php_odbc.c"); - AC_DEFINE("HAVE_UODBC", 1, "ODBC support"); - ADD_FLAG('LIBS_ODBC', 'odbc32.lib odbccp32.lib'); -} - - + if (CHECK_LIB("odbc32.lib", "odbc") && CHECK_LIB("odbccp32.lib", "odbc") + && CHECK_HEADER_ADD_INCLUDE("sql.h", "CFLAGS_ODBC") + && CHECK_HEADER_ADD_INCLUDE("sqlext.h", "CFLAGS_ODBC")) { + EXTENSION("odbc", "php_odbc.c"); + AC_DEFINE("HAVE_UODBC", 1, "ODBC support"); + } else { + WARNING("odbc support can't be enabled, libraries or header are missing (SDK)") + PHP_ODBC = "no" + } +} \ No newline at end of file diff --git a/ext/pdo_odbc/config.w32 b/ext/pdo_odbc/config.w32 index 72e8972344..dcdb99e4ad 100755 --- a/ext/pdo_odbc/config.w32 +++ b/ext/pdo_odbc/config.w32 @@ -9,11 +9,10 @@ if (PHP_PDO_ODBC != "no") { && CHECK_HEADER_ADD_INCLUDE('sqlext.h', 'CFLAGS_PDO_ODBC')) { EXTENSION("pdo_odbc", "pdo_odbc.c odbc_driver.c odbc_stmt.c"); - //ADD_FLAG('CFLAGS_PDO_ODBC', "/I ..\\pecl"); ADD_EXTENSION_DEP('pdo_odbc', 'pdo'); } else { - WARNING("pdo_odbc support can't be enabled, header or library are missing (SDK)") + WARNING("pdo_odbc support can't be enabled, headers or libraries are missing (SDK)") PHP_LIBXML = "no" } } diff --git a/ext/pdo_sqlite/config.w32 b/ext/pdo_sqlite/config.w32 index 0493c05a81..967147cedd 100644 --- a/ext/pdo_sqlite/config.w32 +++ b/ext/pdo_sqlite/config.w32 @@ -32,12 +32,12 @@ if (PHP_PDO_SQLITE != "no") { ARG_WITH("pdo-sqlite-external", "for pdo_sqlite support from an external dll", "no"); if (PHP_PDO_SQLITE_EXTERNAL != "no") { - if ( CHECK_HEADER_ADD_INCLUDE("sqlite3.h", "CFLAGS_PDO_SQLITE_EXTERNAL", PHP_PDO_SQLITE_EXTERNAL + ";" + PHP_PHP_BUILD + "\\include\\sqlite3") && - CHECK_LIB("sqlite3-import.lib", "pdo_sqlite_external", PHP_PDO_SQLITE_EXTERNAL + ";" + PHP_PHP_BUILD + "\\lib")) { + if (CHECK_HEADER_ADD_INCLUDE("sqlite3.h", "CFLAGS_PDO_SQLITE_EXTERNAL", PHP_PDO_SQLITE_EXTERNAL + ";" + PHP_PHP_BUILD + "\\include\\sqlite3") && + CHECK_LIB("sqlite3-import.lib", "pdo_sqlite_external", PHP_PDO_SQLITE_EXTERNAL + ";" + PHP_PHP_BUILD + "\\lib") + && ADD_EXTENSION_DEP('pdo_sqlite_external', 'pdo') ) { EXTENSION("pdo_sqlite_external", "pdo_sqlite.c sqlite_driver.c sqlite_statement.c", null, "/I" + configure_module_dirname, null, "ext\\pdo_sqlite_external"); - ADD_EXTENSION_DEP('pdo_sqlite_external', 'pdo'); } else { - WARNING("pdo-sqlite-external support can't be enabled, iconv or libxml are missing") + WARNING("pdo-sqlite-external support can't be enabled, libraries or headers are missing") PHP_PDO_SQLITE_EXTERNAL = "no" } } diff --git a/ext/simplexml/config.w32 b/ext/simplexml/config.w32 index 26a87f1c14..a16b842787 100644 --- a/ext/simplexml/config.w32 +++ b/ext/simplexml/config.w32 @@ -3,14 +3,16 @@ ARG_WITH("simplexml", "Simple XML support", "yes"); -if (PHP_SIMPLEXML == "yes" && PHP_LIBXML == "yes") { +if (PHP_SIMPLEXML == "yes" && PHP_LIBXML == "yes" + && ADD_EXTENSION_DEP('simplexml', 'libxml')) { EXTENSION("simplexml", "simplexml.c"); AC_DEFINE("HAVE_SIMPLEXML", 1, "Simple XML support"); if (!PHP_SIMPLEXML_SHARED) { ADD_FLAG("CFLAGS_SIMPLEXML", "/D LIBXML_STATIC"); } - ADD_EXTENSION_DEP('simplexml', 'libxml'); - ADD_EXTENSION_DEP('simplexml', 'spl', true); + if (!ADD_EXTENSION_DEP('simplexml', 'spl', true)) { + MESSAGE("\tSPL support in simplexml disabled"); + } } diff --git a/ext/soap/config.w32 b/ext/soap/config.w32 index 048fd70ca1..5e23955122 100644 --- a/ext/soap/config.w32 +++ b/ext/soap/config.w32 @@ -4,12 +4,16 @@ ARG_ENABLE("soap", "SOAP support", "no"); if (PHP_SOAP != "no" && PHP_LIBXML == "yes") { - EXTENSION('soap', 'soap.c php_encoding.c php_http.c php_packet_soap.c php_schema.c php_sdl.c php_xml.c'); - AC_DEFINE('HAVE_PHP_SOAP', 1, "SOAP support"); + if (ADD_EXTENSION_DEP('soap', 'libxml')) { + EXTENSION('soap', 'soap.c php_encoding.c php_http.c php_packet_soap.c php_schema.c php_sdl.c php_xml.c'); + AC_DEFINE('HAVE_PHP_SOAP', 1, "SOAP support"); - if (!PHP_SOAP_SHARED) { - ADD_FLAG('CFLAGS_SOAP', "/D LIBXML_STATIC "); + if (!PHP_SOAP_SHARED) { + ADD_FLAG('CFLAGS_SOAP', "/D LIBXML_STATIC "); + } + } else { + WARNING("soap not enabled, libxml not found"); + PHP_SOAP = "no" } - ADD_EXTENSION_DEP('soap', 'libxml'); } diff --git a/ext/sockets/config.w32 b/ext/sockets/config.w32 index 587b9a1b12..3e44356fe7 100644 --- a/ext/sockets/config.w32 +++ b/ext/sockets/config.w32 @@ -4,8 +4,8 @@ ARG_ENABLE("sockets", "SOCKETS support", "no"); if (PHP_SOCKETS != "no") { - - if (CHECK_LIB("ws2_32.lib", "sockets", PHP_SOCKETS)) { + if (CHECK_LIB("ws2_32.lib", "sockets", PHP_SOCKETS) + && CHECK_HEADER_ADD_INCLUDE("winsock.h", "CFLAGS_SOCKETS")) { EXTENSION('sockets', 'sockets.c php_sockets_win.c'); AC_DEFINE('HAVE_SOCKETS', 1); } else { diff --git a/ext/xml/config.w32 b/ext/xml/config.w32 index 2d07f7f175..ed0352701b 100644 --- a/ext/xml/config.w32 +++ b/ext/xml/config.w32 @@ -3,11 +3,16 @@ ARG_WITH("xml", "XML support", "yes"); -if (PHP_XML == "yes" && PHP_LIBXML == "yes") { - EXTENSION("xml", "xml.c compat.c"); - AC_DEFINE("HAVE_XML", 1, "XML support"); - if (!PHP_XML_SHARED) { - ADD_FLAG("CFLAGS_XML", "/D LIBXML_STATIC "); +if (PHP_XML == "yes") { + if (PHP_LIBXML == "yes" + && ADD_EXTENSION_DEP('xml', 'libxml')) { + EXTENSION("xml", "xml.c compat.c"); + AC_DEFINE("HAVE_XML", 1, "XML support"); + if (!PHP_XML_SHARED) { + ADD_FLAG("CFLAGS_XML", "/D LIBXML_STATIC "); + } + } else { + WARNING("xml support can't be enabled, libraries or headers are missing") + PHP_ZLIB = "no" } - ADD_EXTENSION_DEP('xml', 'libxml'); -} +} \ No newline at end of file