1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
|
// config.w32 for pecl/http
// $Id$
ARG_ENABLE("http", "whether to enable extended HTTP support", "no");
function check_for_main_ext(ext, header)
{
if (!header) {
header = "php_"+ ext +".h";
}
/* When in configure, we're always in the root of PHP source */
var ext_path = "ext\\" + ext;
STDOUT.Write("Checking for ext/"+ ext +" ... ");
if (FSO.FileExists(ext_path + "\\" + header)) {
STDOUT.WriteLine(ext_path);
return ext_path;
}
STDOUT.WriteLine("<not found>");
return false;
}
function check_for_pecl_ext(ext, header)
{
if (!header) {
header = "php_"+ ext +".h";
}
var g;
var s = ext +"\\"+ header;
STDOUT.Write("Checking for pecl/"+ ext +" ... ");
if ( (g = glob(configure_module_dirname +"\\..\\"+ s)) ||
(g = glob(configure_module_dirname +"\\..\\..\\..\\pecl\\"+ s))) {
var f = g[0].substr(0, g[0].length - header.length - 1);
STDOUT.WriteLine(f);
return f;
}
STDOUT.WriteLine("<not found>");
return false;
}
if (PHP_HTTP != "no") {
var PHP_HTTP_HEADERS=glob(configure_module_dirname + "/src/*.h");
for (var i=0; i<PHP_HTTP_HEADERS.length; ++i) {
var basename = FSO.GetFileName(PHP_HTTP_HEADERS[i]);
copy_and_subst("src/" + basename, basename, []);
}
var PHP_HTTP_SRC_ARRAY = glob(configure_module_dirname + "/src/*.c");
var PHP_HTTP_SOURCES="";
for (var i=0; i<PHP_HTTP_SRC_ARRAY.length; ++i) {
var basename = FSO.GetFileName(PHP_HTTP_SRC_ARRAY[i]);
copy_and_subst("src/" + basename, basename, []);
PHP_HTTP_SOURCES = PHP_HTTP_SOURCES + " " + basename;
}
EXTENSION("http", PHP_HTTP_SOURCES);
AC_DEFINE("HAVE_HTTP", 1, "Have extended HTTP support");
AC_DEFINE("HTTP_SHARED_DEPS", 1, "Depend on shared extensions");
AC_DEFINE("HAVE_GETHOSTNAME", 1);
if (PHP_DEBUG != "no") {
ADD_FLAG("CFLAGS_HTTP", "/W3");
}
if (CHECK_HEADER_ADD_INCLUDE('zlib.h', 'CFLAGS_HTTP', '..\\zlib;' + php_usual_include_suspects)) {
AC_DEFINE('HTTP_HAVE_ZLIB', 1, "Have zlib library");
ADD_FLAG("LDFLAGS_HTTP", "/FORCE:MULTIPLE");
} else {
WARNING("zlib encoding functions not enabled; libraries and headers not found");
}
if (typeof(PHP_HASH) != "undefined" && PHP_HASH != "no") {
var f;
if ((f = check_for_pecl_ext("hash")) || (f = check_for_main_ext("hash"))) {
ADD_FLAG("CFLAGS_HTTP", '/I "' + f + '" /DHTTP_HAVE_PHP_HASH_H=1');
ADD_EXTENSION_DEP("http", "hash", true);
}
}
if (PHP_SESSION != "no") {
ADD_EXTENSION_DEP("http", "session", true);
}
if (PHP_ICONV != "no") {
ADD_EXTENSION_DEP("http", "iconv", true);
}
if (PHP_CURL != "no") {
ADD_EXTENSION_DEP("http", "curl", true);
}
CURL_LIB="libcurl_a.lib;libcurl.lib;" + (PHP_DEBUG != "no" ? "libcurld.lib":"libcurl.lib");
if (CHECK_HEADER_ADD_INCLUDE("curl/curl.h", "CFLAGS_HTTP") &&
CHECK_HEADER_ADD_INCLUDE("openssl/crypto.h", "CFLAGS_HTTP") &&
CHECK_LIB(CURL_LIB, "http", PHP_HTTP) &&
CHECK_LIB("ssleay32.lib", "http", PHP_HTTP) &&
CHECK_LIB("libeay32.lib", "http", PHP_HTTP) &&
CHECK_LIB("zlib.lib;zlib_a.lib", "http", PHP_HTTP) &&
CHECK_LIB("libcurl_a.lib", "http", PHP_HTTP) &&
ADD_EXTENSION_DEP("http", "propro", true) &&
ADD_EXTENSION_DEP("http", "raphf", true) &&
CHECK_LIB("winmm.lib", "http", PHP_HTTP)) {
AC_DEFINE("PHP_HTTP_HAVE_CURL", 1, "Have CURL library");
AC_DEFINE("PHP_HTTP_HAVE_SSL", 1, "Have SSL");
AC_DEFINE("PHP_HAVE_CURL_MULTI_STRERROR", 1, "");
AC_DEFINE("PHP_HAVE_CURL_SHARE_STRERROR", 1, "");
AC_DEFINE("PHP_HAVE_CURL_EASY_STRERROR", 1, "");
AC_DEFINE("PHP_HAVE_CURL_EASY_RESET", 1, "");
AC_DEFINE("PHP_HAVE_CURL_GETFORMDATA", 1, "");
AC_DEFINE("PHP_HAVE_CURL_FORMGET", 1, "");
AC_DEFINE("PHP_HAVE_CURL_MULTI_SETOPT", 1, "");
AC_DEFINE("PHP_HAVE_CURL_MULTI_TIMEOUT", 1, "");
AC_DEFINE("PHP_HTTP_HAVE_CLIENT", 1, "Have HTTP client support");
if (CHECK_HEADER_ADD_INCLUDE("event2/event.h", "CFLAGS_HTTP") &&
CHECK_LIB("libevent.lib", "http", PHP_HTTP) &&
CHECK_LIB("libevent_core.lib", "http", PHP_HTTP) &&
CHECK_LIB("libevent_extras.lib", "http", PHP_HTTP)) {
AC_DEFINE("PHP_HTTP_HAVE_EVENT", 1);
AC_DEFINE("PHP_HTTP_HAVE_EVENT2", 1);
AC_DEFINE("PHP_HTTP_EVENT_VERSION", "2.0.21 or greater");
}
} else {
WARNING("curl convenience functions not enabled; libraries and headers not found");
}
}
|