Permalink
Browse files

Add new (optional!) win32 build infrastructure.

Will follow up to internals@ shortly.
  • Loading branch information...
1 parent 30b631d commit 05b9b20ed8e2f98b3fb71a227e49e11bdf7b9c6b @wez wez committed Dec 2, 2003
View
@@ -0,0 +1,2 @@
+@echo off
+cscript /nologo win32\build\buildconf.js
View
@@ -0,0 +1,14 @@
+// $Id$
+// vim:ft=javascript
+
+ARG_ENABLE("bcmath", "bc style precision math functions", "yes");
+
+if (PHP_BCMATH == "yes") {
+ EXTENSION("bcmath", "bcmath.c", null, "-Iext/bcmath/libbcmath/src");
+ ADD_SOURCES("ext/bcmath/libbcmath/src", "add.c div.c init.c neg.c \
+ outofmem.c raisemod.c rt.c sub.c compare.c divmod.c int2num.c \
+ num2long.c output.c recmul.c sqrt.c zero.c debug.c doaddsub.c \
+ nearzero.c num2str.c raise.c rmzero.c str2num.c", "bcmath");
+
+ AC_DEFINE('WITH_BCMATH', 1, 'Have BCMATH library');
+}
View
@@ -0,0 +1,10 @@
+// $Id$
+// vim:ft=javascript
+
+ARG_ENABLE("calendar", "calendar conversion support", "yes");
+
+if (PHP_CALENDAR == "yes") {
+ EXTENSION("calendar", "calendar.c dow.c french.c gregor.c jewish.c \
+ julian.c easter.c cal_unix.c");
+ AC_DEFINE('HAVE_CALENDAR', 1, 'Have calendar');
+}
View
@@ -0,0 +1,13 @@
+// $Id$
+// vim:ft=javascript
+
+ARG_ENABLE("com_dotnet", "COM and .Net support", "yes");
+
+if (PHP_COM_DOTNET == "yes") {
+ EXTENSION("com_dotnet", "com_com.c com_dotnet.c com_extension.c \
+ com_handlers.c com_iterator.c com_misc.c com_olechar.c \
+ com_typeinfo.c com_variant.c");
+ AC_DEFINE('HAVE_COM_DOTNET', 1, 'Have COM_DOTNET support');
+ // TODO: do a header check for this
+ AC_DEFINE('HAVE_MSCOREE_H', 0, 'Have .net headers');
+}
View
@@ -0,0 +1,9 @@
+// $Id$
+// vim:ft=javascript
+
+ARG_ENABLE("ctype", "ctype", "yes");
+
+if (PHP_CTYPE == "yes") {
+ EXTENSION("ctype", "ctype.c");
+ AC_DEFINE('HAVE_CTYPE', 1, 'Have ctype');
+}
View
@@ -0,0 +1,18 @@
+// $Id$
+// vim:ft=javascript
+
+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");
+}
+
+
View
@@ -0,0 +1,9 @@
+// $Id$
+// vim:ft=javascript
+
+ARG_ENABLE("ftp", "ftp support", "yes");
+
+if (PHP_FTP == "yes") {
+ EXTENSION("ftp", "php_ftp.c ftp.c");
+ AC_DEFINE('HAVE_FTP', 1, 'Have FTP support');
+}
View
@@ -0,0 +1,12 @@
+// $Id$
+// vim:ft=javascript
+
+ARG_WITH("libxml", "LibXML support", "yes");
+
+if (PHP_LIBXML == "yes") {
+ EXTENSION("libxml", "libxml.c", false /* never shared */);
+ AC_DEFINE("HAVE_LIBXML", 1, "LibXML support");
+ ADD_FLAG("LIBS_LIBXML", "libxml2.lib iconv.lib");
+}
+
+
View
@@ -0,0 +1,55 @@
+// $Id$
+// vim:ft=javascript
+
+ARG_ENABLE("mbstring", "multibyte string functions", "no");
+ARG_ENABLE("mbregex", "multibyte regex support", "no");
+
+if (PHP_MBSTRING == "yes") {
+
+ FSO.CopyFile("ext\\mbstring\\libmbfl\\config.h.vc6",
+ "ext\\mbstring\\libmbfl\\config.h", true);
+ FSO.CopyFile("ext\\mbstring\\oniguruma\\win32\\config.h",
+ "ext\\mbstring\\oniguruma\\config.h", true);
+
+ EXTENSION("mbstring", "mbstring.c php_unicode.c mb_gpc.c", null,
+ "-Iext/mbstring/libmbfl -Iext/mbstring/libmbfl/mbfl \
+ /D NOT_RUBY=1 /D LIBMBFL_EXPORTS=1 /D HAVE_STDARG_PROTOTYPES=1 \
+ /D HAVE_CONFIG_H /D HAVE_STDLIB_H /D HAVE_STRICMP /D MBFL_DLL_EXPORT=1");
+
+ ADD_SOURCES("ext/mbstring/libmbfl/filters", "html_entities.c \
+ mbfilter_7bit.c mbfilter_ascii.c mbfilter_base64.c mbfilter_big5.c \
+ mbfilter_byte2.c mbfilter_byte4.c mbfilter_cp1251.c mbfilter_cp1252.c \
+ mbfilter_cp866.c mbfilter_cp932.c mbfilter_cp936.c mbfilter_euc_cn.c \
+ mbfilter_euc_jp.c mbfilter_euc_jp_win.c mbfilter_euc_kr.c \
+ mbfilter_euc_tw.c mbfilter_htmlent.c mbfilter_hz.c mbfilter_iso2022_kr.c \
+ mbfilter_iso8859_1.c mbfilter_iso8859_10.c mbfilter_iso8859_13.c \
+ mbfilter_iso8859_14.c mbfilter_iso8859_15.c mbfilter_iso8859_2.c \
+ mbfilter_iso8859_3.c mbfilter_iso8859_4.c mbfilter_iso8859_5.c \
+ mbfilter_iso8859_6.c mbfilter_iso8859_7.c mbfilter_iso8859_8.c \
+ mbfilter_iso8859_9.c mbfilter_jis.c mbfilter_koi8r.c mbfilter_qprint.c \
+ mbfilter_sjis.c mbfilter_ucs2.c mbfilter_ucs4.c mbfilter_uhc.c \
+ mbfilter_utf16.c mbfilter_utf32.c mbfilter_utf7.c mbfilter_utf7imap.c \
+ mbfilter_utf8.c mbfilter_uuencode.c", "mbstring");
+
+ ADD_SOURCES("ext/mbstring/libmbfl/mbfl", "mbfilter.c mbfilter_8bit.c \
+ mbfilter_pass.c mbfilter_wchar.c mbfl_convert.c mbfl_encoding.c \
+ mbfl_filter_output.c mbfl_ident.c mbfl_language.c mbfl_memory_device.c \
+ mbfl_string.c mbfl_allocators.c", "mbstring");
+
+ ADD_SOURCES("ext/mbstring/libmbfl/nls", "nls_de.c nls_en.c nls_ja.c nls_kr.c \
+ nls_neutral.c nls_ru.c nls_uni.c nls_zh.c", "mbstring");
+
+ AC_DEFINE('HAVE_MBSTRING', 1, 'Have mbstring support');
+ AC_DEFINE('HAVE_MBSTR_CN', 1, 'CN');
+ AC_DEFINE('HAVE_MBSTR_JA', 1, 'CN');
+ AC_DEFINE('HAVE_MBSTR_KR', 1, 'CN');
+ AC_DEFINE('HAVE_MBSTR_RU', 1, 'CN');
+ AC_DEFINE('HAVE_MBSTR_TW', 1, 'CN');
+ AC_DEFINE('HAVE_STDARG_PROTOTYPES', 1, 'have stdarg.h');
+
+ if (PHP_MBREGEX == "yes") {
+ ADD_SOURCES("ext/mbstring/oniguruma", "regcomp.c regerror.c \
+ regexec.c reggnu.c regparse.c regposerr.c", "mbstring");
+ ADD_SOURCES("ext/mbstring", "php_mbregex.c", "mbstring");
+ }
+}
View
@@ -0,0 +1,12 @@
+// $Id$
+// vim:ft=javascript
+
+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');
+}
+
+
View
@@ -0,0 +1,13 @@
+// $Id$
+// vim:ft=javascript
+
+ARG_WITH("pcre-regex", "Perl Compatible Regular Expressions", "yes");
+
+if (PHP_PCRE_REGEX == "yes") {
+ EXTENSION("pcre", "php_pcre.c", PHP_PCRE_REGEX_SHARED,
+ "-DSUPPORT_UTF8 -DLINK_SIZE=2 -DPOSIX_MALLOC_THRESHOLD=10 -Iext/pcre/pcrelib");
+ ADD_SOURCES("ext/pcre/pcrelib", "maketables.c get.c study.c pcre.c", "pcre");
+
+ AC_DEFINE('HAVE_BUNDLED_PCRE', 1, 'Using bundled PCRE library');
+ AC_DEFINE('HAVE_PCRE', 1, 'Have PCRE library');
+}
View
@@ -0,0 +1,11 @@
+// $Id$
+// vim:ft=javascript
+
+ARG_ENABLE("session", "session support", "yes");
+
+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");
+}
+
+
View
@@ -0,0 +1,11 @@
+// $Id$
+// vim:ft=javascript
+
+ARG_WITH("simplexml", "Simple XML support", "yes");
+
+if (PHP_SIMPLEXML == "yes" && PHP_LIBXML == "yes") {
+ EXTENSION("simplexml", "simplexml.c");
+ AC_DEFINE("HAVE_SIMPLEXML", 1, "Simple XML support");
+}
+
+
View
@@ -0,0 +1,26 @@
+// $Id$
+// vim:ft=javascript
+
+ARG_WITH("sqlite", "SQLite support", "yes");
+
+if (PHP_SQLITE == "yes") {
+ FSO.CopyFile("ext\\sqlite\\libsqlite\\src\\sqlite.w32.h",
+ "ext\\sqlite\\libsqlite\\src\\sqlite.h");
+
+ FSO.CopyFile("ext\\sqlite\\libsqlite\\src\\sqlite_config.w32.h",
+ "ext\\sqlite\\libsqlite\\src\\config.h");
+
+ EXTENSION("sqlite", "sqlite.c sess_sqlite.c", null,
+ "/D PHP_SQLITE_EXPORTS /Iext/sqlite/libsqlite/src");
+
+ ADD_SOURCES("ext/sqlite/libsqlite/src", "opcodes.c parse.c encode.c \
+ auth.c btree.c build.c delete.c expr.c func.c hash.c insert.c \
+ main.c os.c pager.c printf.c random.c select.c table.c tokenize.c \
+ update.c util.c vdbe.c attach.c btree_rb.c pragma.c vacuum.c \
+ copy.c where.c trigger.c", "sqlite");
+
+ AC_DEFINE("HAVE_SQLITE", 1, "SQLite support");
+ ADD_DEF_FILE("ext\\sqlite\\php_sqlite.def");
+}
+
+
View
@@ -0,0 +1,23 @@
+// vim:ft=javascript
+// $Id$
+
+ARG_WITH("config-file-scan-dir", "Dir to check for additional php ini files", "");
+AC_DEFINE("PHP_CONFIG_FILE_SCAN_DIR", PHP_CONFIG_FILE_SCAN_DIR);
+
+ARG_WITH("config-file-path", "Where to find php.ini",
+ '(getenv("SystemRoot"))?getenv("SystemRoot"):""');
+
+AC_DEFINE("PHP_CONFIG_FILE_PATH", PHP_CONFIG_FILE_PATH, null, false);
+
+EXTENSION("standard", "array.c base64.c basic_functions.c browscap.c \
+ crc32.c crypt.c cyr_convert.c datetime.c dir.c dl.c dns.c exec.c \
+ file.c filestat.c formatted_print.c fsock.c head.c html.c image.c \
+ info.c iptc.c lcg.c link.c mail.c math.c md5.c metaphone.c microtime.c \
+ pack.c pageinfo.c parsedate.c quot_print.c rand.c reg.c soundex.c \
+ string.c scanf.c syslog.c type.c uniqid.c url.c url_scanner.c var.c \
+ versioning.c assert.c strnatcmp.c levenshtein.c incomplete_class.c \
+ url_scanner_ex.c ftp_fopen_wrapper.c http_fopen_wrapper.c \
+ 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 sunfuncs.c \
+ streamsfuncs.c http.c", false /* never shared */);
+
View
@@ -0,0 +1,11 @@
+// $Id$
+// vim:ft=javascript
+
+ARG_ENABLE("tokenizer", "tokenizer support", "yes");
+
+if (PHP_TOKENIZER == "yes") {
+ EXTENSION("tokenizer", "tokenizer.c");
+ AC_DEFINE("HAVE_TOKENIZER", 1, "Tokenizer support");
+}
+
+
View
@@ -0,0 +1,11 @@
+// $Id$
+// vim:ft=javascript
+
+ARG_WITH("wddx", "WDDX support", "yes");
+
+if (PHP_WDDX == "yes" && PHP_LIBXML == "yes") {
+ EXTENSION("wddx", "wddx.c");
+ AC_DEFINE("HAVE_WDDX", 1, "WDDX support");
+}
+
+
View
@@ -0,0 +1,11 @@
+// $Id$
+// vim:ft=javascript
+
+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");
+}
+
+
View
@@ -0,0 +1,12 @@
+// $Id$
+// vim:ft=javascript
+
+ARG_ENABLE("zlib", "ZLIB support", "yes");
+
+if (PHP_ZLIB == "yes") {
+ EXTENSION("zlib", "zlib.c zlib_fopen_wrapper.c", null, "/D ZLIB_EXPORTS");
+ AC_DEFINE("HAVE_ZLIB", 1, "Tokenizer support");
+ ADD_FLAG("LIBS_ZLIB", "zlib.lib");
+}
+
+
View
@@ -0,0 +1,39 @@
+// vim:ft=javascript
+// $Id$
+
+ARG_ENABLE('apache', 'Build Apache 1.3.x version of PHP', 'yes');
+
+ARG_WITH('apache-includes', 'Where to find Apache 1.3 headers', null);
+ARG_WITH('apache-libs', 'Where to find Apache 1.3 libraries', null);
+
+if (PHP_APACHE_INCLUDES == null) {
+ if (FSO.FileExists('C:\\Program Files\\Apache Group\\Apache\\include\\httpd.h')) {
+ PHP_APACHE_INCLUDES = "C:\\Program Files\\Apache Group\\Apache\\include";
+ } else if (FSO.FileExists(PHP_PHP_BUILD + "\\apache\\src\\include\\httpd.h")) {
+ PHP_APACHE_INCLUDES = PHP_PHP_BUILD + "\\apache\\src\\include";
+ }
+}
+
+if (!FSO.FileExists(PHP_APACHE_INCLUDES + "\\httpd.h")) {
+ ERROR("Could not find apache headers");
+}
+
+if (PHP_APACHE_LIBS == null) {
+ if (FSO.FileExists('C:\\Program Files\\Apache Group\\Apache\\libexec\\ApacheCore.lib')) {
+ PHP_APACHE_LIBS = "C:\\Program Files\\Apache Group\\Apache\\libexec";
+ } else if (FSO.FileExists(PHP_PHP_BUILD + "\\apache\\src\\corer\\ApacheCore.lib")) {
+ PHP_APACHE_LIBS = PHP_PHP_BUILD + "\\apache\\src\\corer";
+ }
+}
+
+if (!FSO.FileExists(PHP_APACHE_LIBS + "\\ApacheCore.lib")) {
+ ERROR("Could not find apache libraries");
+}
+
+
+if (PHP_APACHE == "yes") {
+ SAPI('apache', 'mod_php5.c sapi_apache.c php_apache.c',
+ 'php' + PHP_VERSION + 'apache.dll',
+ '/D APACHEPHP4_EXPORTS /D APACHE_READDIR_H /I "' + PHP_APACHE_INCLUDES + '"');
+ ADD_FLAG('LIBS_APACHE', '/libpath:"' + PHP_APACHE_LIBS + '" ApacheCore.lib');
+}
View
@@ -0,0 +1,25 @@
+// vim:ft=javascript
+// $Id$
+
+ARG_ENABLE('cgi', 'Build CGI version of PHP', 'yes');
+ARG_ENABLE('fastcgi', 'Build FastCGI support into CGI binary', 'yes');
+ARG_ENABLE('path-info-check',
+ 'If this is disabled, paths such as /info.php/test?a=b will fail to work', 'yes');
+
+ARG_ENABLE("force-cgi-redirect", "Enable the security check for internal \
+server redirects. You should use this if you are running the CGI \
+version with Apache.", "yes");
+
+AC_DEFINE("FORCE_CGI_REDIRECT", PHP_FORCE_CGI_REDIRECT == "yes" ? 1 : 0, "CGI redirect mode");
+AC_DEFINE("ENABLE_PATHINFO_CHECK", PHP_PATH_INFO_CHECK == "yes" ? 1 : 0, "Pathinfo check");
+
+if (PHP_CGI == "yes") {
+ AC_DEFINE('PHP_FASTCGI', PHP_FASTCGI == "yes" ? 1 : 0);
+ if (PHP_FASTCGI == "yes") {
+ SAPI('cgi', 'cgi_main.c getopt.c', 'php-cgi.exe', '-Isapi/cgi/libfcgi/include /D FCGI_STATIC');
+ ADD_SOURCES('sapi/cgi/libfcgi', 'fcgi_stdio.c fcgiapp.c os_win32.c', 'cgi');
+ ADD_FLAG('LIBS_CGI', 'ws2_32.lib kernel32.lib advapi32.lib');
+ } else {
+ SAPI('cgi', 'cgi_main.c getopt.c', 'php-cgi.exe');
+ }
+}
View
@@ -0,0 +1,9 @@
+// vim:ft=javascript
+// $Id$
+
+ARG_ENABLE('cli', 'Build CLI version of PHP', 'yes');
+
+if (PHP_CLI == "yes") {
+ SAPI('cli', 'getopt.c php_cli.c', 'php.exe');
+}
+
View
@@ -0,0 +1,9 @@
+// vim:ft=javascript
+// $Id$
+
+ARG_ENABLE('isapi', 'Build ISAPI version of PHP', 'yes');
+
+if (PHP_ISAPI == "yes") {
+ SAPI('isapi', 'php4isapi.c', 'php' + PHP_VERSION + 'isapi.dll', '/D PHP4ISAPI_EXPORTS');
+ ADD_FLAG('LDFLAGS_ISAPI', '/DEF:sapi\\isapi\\php4isapi.def');
+}
Oops, something went wrong.

0 comments on commit 05b9b20

Please sign in to comment.