ADD_FLAG('CFLAGS_DATE', "/wd4244");
+PHP_INSTALL_HEADERS("ext/date/", "php_date.h lib/timelib.h lib/timelib_structs.h lib/timelib_config.h");
+
var tl_config = FSO.CreateTextFile("ext/date/lib/timelib_config.h", true);
tl_config.WriteLine("#include \"config.w32.h\"");
tl_config.Close();
if (!PHP_DOM_SHARED) {
ADD_FLAG("CFLAGS_DOM", "/D LIBXML_STATIC ");
}
+ PHP_INSTALL_HEADERS("ext/dom", "xml_common.h");
} else {
WARNING("dom support can't be enabled, libxml is not enabled")
PHP_DOM = "no"
ADD_SOURCES("ext/ereg/regex", "regcomp.c regexec.c regerror.c regfree.c", "ereg");
AC_DEFINE('REGEX', 1, 'Bundled regex');
AC_DEFINE('HSREGEX', 1, 'Bundled regex');
-}
\ No newline at end of file
+ PHP_INSTALL_HEADERS("ext/ereg", "php_ereg.h php_regex.h regex/");
+}
if (PHP_FILTER == "yes") {
EXTENSION("filter", "filter.c sanitizing_filters.c logical_filters.c callback_filter.c");
+ PHP_INSTALL_HEADERS("ext/filter", "php_filter.h");
}
/D USE_GD_IOCTX \
/D MSWIN32 \
");
+
+ PHP_INSTALL_HEADERS("", "ext/gd ext/gd/libgd" );
} else {
WARNING("gd not enabled; libraries and headers not found");
}
EXTENSION("hash", "hash.c hash_md.c hash_sha.c hash_ripemd.c hash_haval.c "
+ "hash_tiger.c hash_gost.c hash_snefru.c hash_whirlpool.c "
+ "hash_adler32.c hash_crc32.c hash_salsa.c hash_joaat.c hash_fnv.c");
+
+ PHP_INSTALL_HEADERS("ext/hash/", "php_hash.h php_hash_md.h php_hash_sha.h php_hash_ripemd.h " +
+ "php_hash_haval.h php_hash_tiger.h php_hash_gost.h php_hash_snefru.h " +
+ "php_hash_whirlpool.h php_hash_adler32.h php_hash_crc32.h php_hash_salsa.h " +
+ "php_hash_types.h");
}
if (!PHP_ICONV_SHARED) {
ADD_DEF_FILE("ext\\iconv\\php_iconv.def");
}
+ PHP_INSTALL_HEADERS("", "ext/iconv");
} else {
WARNING("iconv support can't be enabled, libraries or headers are missing")
PHP_ICONV = "no";
if (PHP_JSON != "no") {
EXTENSION('json', 'json.c', PHP_JSON_SHARED, "");
ADD_SOURCES(configure_module_dirname, "JSON_parser.c utf8_decode.c utf8_to_utf16.c", "json");
+ PHP_INSTALL_HEADERS("ext/json/", "php_json.h");
}
if (!PHP_LIBXML_SHARED) {
ADD_DEF_FILE("ext\\libxml\\php_libxml2.def");
}
+ PHP_INSTALL_HEADERS("ext/libxml/", "php_libxml.h");
} else {
WARNING("libxml support can't be enabled, iconv or libxml are missing")
PHP_LIBXML = "no"
AC_DEFINE('HAVE_MBSTR_RU', 1, 'RU');
AC_DEFINE('HAVE_MBSTR_TW', 1, 'TW');
+ PHP_INSTALL_HEADERS("ext/mbstring", "mbstring.h oniguruma/oniguruma.h php_mbregex.h php_onig_compat.h libmbfl/config.h libmbfl/mbfl/eaw_table.h libmbfl/mbfl/mbfilter.h libmbfl/mbfl/mbfilter_8bit.h libmbfl/mbfl/mbfilter_pass.h libmbfl/mbfl/mbfilter_wchar.h libmbfl/mbfl/mbfl_allocators.h libmbfl/mbfl/mbfl_consts.h libmbfl/mbfl/mbfl_convert.h libmbfl/mbfl/mbfl_defs.h libmbfl/mbfl/mbfl_encoding.h libmbfl/mbfl/mbfl_filter_output.h libmbfl/mbfl/mbfl_ident.h libmbfl/mbfl/mbfl_language.h libmbfl/mbfl/mbfl_memory_device.h libmbfl/mbfl/mbfl_string.h");
+
if (PHP_MBREGEX != "no") {
AC_DEFINE('HAVE_STDARG_PROTOTYPES', 1, 'have stdarg.h');
AC_DEFINE('HAVE_MBREGEX', 1);
koi8.c koi8_r.c sjis.c utf8.c unicode.c utf16_be.c utf16_le.c \
utf32_be.c utf32_le.c gb18030.c", "mbstring");
ADD_SOURCES("ext/mbstring", "php_mbregex.c", "mbstring");
+ PHP_INSTALL_HEADERS("ext/mbstring", "php_mbregex.h");
}
}
AC_DEFINE('HAVE_MYSQLILIB', 1, 'Have MySQLi library');
ADD_EXTENSION_DEP('mysqli', 'mysqlnd', true);
MESSAGE("\tmysqlnd build");
+ PHP_INSTALL_HEADERS("ext/mysqli", "php_mysqli_structs.h");
} else {
if (CHECK_LIB("libmysql.lib", "mysqli", PHP_MYSQLI) &&
CHECK_HEADER_ADD_INCLUDE("mysql.h", "CFLAGS_MYSQLI", PHP_MYSQLI +
EXTENSION("mysqli", mysqli_source);
AC_DEFINE('HAVE_MYSQLILIB', 1, 'Have MySQLi library');
MESSAGE("\tlibmysql build");
+ PHP_INSTALL_HEADERS("ext/mysqli", "php_mysqli_structs.h");
} else {
WARNING("mysqli not enabled; libraries and headers not found");
PHP_MYSQLI = "no"
{
AC_DEFINE("MYSQLND_COMPRESSION_ENABLED", 1, "Compression support");
}
+ PHP_INSTALL_HEADERS("", "ext/mysqlnd");
}
}
AC_DEFINE('HAVE_BUNDLED_PCRE', 1, 'Using bundled PCRE library');
AC_DEFINE('HAVE_PCRE', 1, 'Have PCRE library');
PHP_PCRE="yes";
+PHP_INSTALL_HEADERS("ext/pcre", "php_pcre.h pcrelib/");
if (PHP_PDO != "no") {
EXTENSION('pdo', 'pdo.c pdo_dbh.c pdo_stmt.c pdo_sql_parser.c pdo_sqlstate.c', false /* force static, PHP_PDO_SHARED is broken yet somehow */);
ADD_EXTENSION_DEP('pdo', 'spl', true);
+ PHP_INSTALL_HEADERS("ext/pdo", "php_pdo.h php_pdo_driver.h");
}
if (PHP_SESSION == "yes") {
EXTENSION("session", "session.c mod_files.c mod_mm.c mod_user.c", false /* never shared */);
AC_DEFINE("HAVE_PHP_SESSION", 1, "Session support");
+ PHP_INSTALL_HEADERS("ext/session/", "mod_mm.h");
}
-
-
&& CHECK_HEADER_ADD_INCLUDE("winsock.h", "CFLAGS_SOCKETS")) {
EXTENSION('sockets', 'sockets.c');
AC_DEFINE('HAVE_SOCKETS', 1);
+ PHP_INSTALL_HEADERS("ext/sockets", "php_sockets.h");
} else {
WARNING("sockets not enabled; libraries and headers not found");
}
EXTENSION("spl", "php_spl.c spl_functions.c spl_engine.c spl_iterators.c spl_array.c spl_directory.c spl_exceptions.c spl_observer.c spl_dllist.c spl_heap.c spl_fixedarray.c", false /*never shared */);
AC_DEFINE('HAVE_SPL', 1);
PHP_SPL="yes";
+PHP_INSTALL_HEADERS("ext/spl", "php_spl.h spl_array.h spl_directory.h spl_engine.h spl_exceptions.h spl_functions.h spl_iterators.h spl_observer.h spl_dllist.h spl_heap.h spl_fixedarray.h");
ADD_SOURCES(configure_module_dirname + "/libsqlite", "sqlite3.c", "sqlite3");
AC_DEFINE("HAVE_SQLITE3", 1, "SQLite support");
+ PHP_INSTALL_HEADERS("ext/sqlite3", "libsqlite/sqlite3.h");
}
php_fopen_wrapper.c credits.c css.c var_unserializer.c ftok.c sha1.c \
user_filters.c uuencode.c filters.c proc_open.c \
streamsfuncs.c http.c flock_compat.c", false /* never shared */);
-
+ PHP_INSTALL_HEADERS("", "ext/standard");
if (PHP_MBREGEX != "no") {
CHECK_HEADER_ADD_INCLUDE("oniguruma.h", "CFLAGS_STANDARD", PHP_MBREGEX + ";ext\\mbstring\\oniguruma")
}
if (!PHP_XML_SHARED) {
ADD_FLAG("CFLAGS_XML", "/D LIBXML_STATIC ");
}
+ PHP_INSTALL_HEADERS("", "ext/xml");
} else {
WARNING("xml support can't be enabled, libraries or headers are missing")
PHP_ZLIB = "no"
}
-}
\ No newline at end of file
+}
#endif
#ifndef HAVE_SOCKLEN_T
+# if PHP_WIN32
+typedef int socklen_t;
+# else
typedef unsigned int socklen_t;
+# endif
#endif
#define CREATE_MUTEX(a, b)
if (PHP_EMBED != "no") {
SAPI('embed', 'php_embed.c', 'php' + PHP_VERSION + 'embed.lib');
+ PHP_INSTALL_HEADERS("sapi/embed", "php_embed.h");
}
ADD_SOURCES("win32", "glob.c readdir.c \
registry.c select.c sendmail.c time.c winutil.c wsyslog.c globals.c");
-PHP_INSTALL_HEADERS("Zend/ TSRM/ include/ main/ main/streams/");
+PHP_INSTALL_HEADERS("", "Zend/ TSRM/ main/ main/streams/");
STDOUT.WriteBlankLines(1);
\r
var TF = FSO.OpenTextFile("win32/build/Makefile", 1);\r
MF.Write(TF.ReadAll());\r
+\r
+ MF.WriteLine("install-headers:");\r
+ MF.WriteLine(" @if not exist $(PHP_PREFIX)\\include mkdir $(PHP_PREFIX)\\include >nul");\r
+ MF.WriteLine(" @for %D in ($(INSTALL_HEADERS_DIR)) do @if not exist $(PHP_PREFIX)\\include\\%D mkdir $(PHP_PREFIX)\\include\\%D >nul");\r
+ for (i in headers_install) {\r
+ if (headers_install[i][2] != "") {\r
+ MF.WriteLine(" @if not exist $(PHP_PREFIX)\\include\\" + headers_install[i][2] + " mkdir $(PHP_PREFIX)\\include\\" + \r
+ headers_install[i][2] + ">nul");\r
+ MF.WriteLine(" @copy " + headers_install[i][0] + " " + "$(PHP_PREFIX)\\include\\" + headers_install[i][2] + " /y >nul");\r
+ }\r
+ }\r
+ MF.WriteLine(" @for %D in ($(INSTALL_HEADERS_DIR)) do @copy %D*.h $(PHP_PREFIX)\\include\\%D /y >nul");\r
TF.Close();\r
\r
MF.WriteBlankLines(2);\r
return items;\r
}\r
\r
-function PHP_INSTALL_HEADERS(headers_list)\r
+function PHP_INSTALL_HEADERS(dir, headers_list)\r
{\r
headers_list = headers_list.split(new RegExp("\\s+"));\r
headers_list.sort();\r
+ if (dir.length > 0 && dir.substr(dir.length - 1) != '/') {\r
+ dir += '/';\r
+ }\r
+ dir = dir.replace(new RegExp("/", "g"), "\\");\r
\r
for (i in headers_list) {\r
src = headers_list[i];\r
src = src.replace(new RegExp("/", "g"), "\\");\r
- isdir = FSO.FolderExists(src);\r
- isfile = FSO.FileExists(src);\r
+ isdir = FSO.FolderExists(dir + src);\r
+ isfile = FSO.FileExists(dir + src);\r
if (isdir) {\r
- headers_install[headers_install.length] = [src, 'dir'];\r
- ADD_FLAG("INSTALL_HEADERS_DIR", src);\r
+ if (src.length > 0 && src.substr(src.length - 1) != '/') {\r
+ src += '\\';\r
+ }\r
+ headers_install[headers_install.length] = [dir + src, 'dir',''];\r
+ ADD_FLAG("INSTALL_HEADERS_DIR", dir + src);\r
} else if (isfile) {\r
- headers_install[headers_install.length] = [src, 'file'];\r
- ADD_FLAG("INSTALL_HEADERS", src);\r
+ dirname = FSO.GetParentFolderName(dir + src);\r
+ headers_install[headers_install.length] = [dir + src, 'file', dirname];\r
+ ADD_FLAG("INSTALL_HEADERS", dir + src);\r
+ } else {\r
+ STDOUT.WriteLine(headers_list);\r
+ ERROR("Cannot find header " + dir + src);\r
}\r
}\r
- output_as_table(["Headers", "Type"], headers_install);\r
+ output_as_table(["Headers", "Type", "target"], headers_install);\r
}\r
\r
// for snapshot builders, this option will attempt to enable everything\r
REGEDIT4\r
\r
-[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\PHP-5.1.0-dev]\r
+[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\PHP-5.3.99-dev]\r
"TypesSupported"=dword:00000007\r
-"EventMessageFile"="C:\\php5\\php5ts.dll"\r
+"EventMessageFile"="g:\\test\\srcinstall6\\php5ts_debug.dll"\r