diff options
Diffstat (limited to 'win32/build/config.w32')
-rw-r--r-- | win32/build/config.w32 | 308 |
1 files changed, 0 insertions, 308 deletions
diff --git a/win32/build/config.w32 b/win32/build/config.w32 deleted file mode 100644 index 85e52c5371..0000000000 --- a/win32/build/config.w32 +++ /dev/null @@ -1,308 +0,0 @@ -// vim:ft=javascript -// $Id$ -// "Master" config file; think of it as a configure.in -// equivalent. - -ARG_WITH('cygwin', 'Path to cygwin utilities on your system', '\\cygwin'); -PATH_PROG('cl'); -CL = PATH_PROG('cl'); -if (!CL) { - ERROR("MS C++ compiler is required"); -} -// Which version of the compiler do we have ? -function probe_msvc_compiler_version(CL) -{ - // tricky escapes to get stderr redirection to work - var banner = execute('cmd /c ""' + CL + '" 2>&1"'); - if (banner.match(/(\d+)\.(\d+)\.(\d+)(\.(\d+))?/)) { - return RegExp.$1; - } - return 0; -} - -VCVERS = probe_msvc_compiler_version(CL); -STDOUT.WriteLine("Detected MS compiler version " + VCVERS); - -// 12 is VC6 -// 13 is vs.net 2003 -// 14 is vs.net 2005 - -// cygwin now ships with link.exe. Avoid searching the cygwin path -// for this, as we want the MS linker, not the fileutil -PATH_PROG('link', WshShell.Environment("Process").Item("PATH")); - -PATH_PROG('nmake'); - -// we don't want to define LIB, as that will override the default library path -// that is set in that env var -PATH_PROG('lib', null, 'MAKE_LIB'); -if (!PATH_PROG('bison')) { - ERROR('bison is required') -} -if (!PATH_PROG('flex')) { - ERROR('flex is required') -} -PATH_PROG('re2c'); -PATH_PROG('zip'); -PATH_PROG('lemon'); - -// avoid picking up midnight commander from cygwin -PATH_PROG('mc', WshShell.Environment("Process").Item("PATH")); - -// stick objects somewhere outside of the source tree -ARG_ENABLE('object-out-dir', 'Alternate location for binary objects during build', ''); -if (PHP_OBJECT_OUT_DIR.length) { - if (!FSO.FolderExists(PHP_OBJECT_OUT_DIR)) { - ERROR('you chosen output directory ' + PHP_OBJECT_OUT_DIR + ' does not exist'); - } - PHP_OBJECT_OUT_DIR += '\\'; -} - -ARG_ENABLE('debug', 'Compile with debugging symbols', "no"); -ARG_ENABLE('debug-pack', 'Release binaries with external debug symbols (--enable-debug must not be specified)', 'no'); -if (PHP_DEBUG == "yes" && PHP_DEBUG_PACK == "yes") { - ERROR("Use of both --enable-debug and --enable-debug-pack not allowed."); -} -ARG_ENABLE('zts', 'Thread safety', 'yes'); -// Configures the hard-coded installation dir -ARG_ENABLE('prefix', 'where PHP will be installed', ''); -if (PHP_PREFIX == '') { - PHP_PREFIX = "C:\\php" + PHP_VERSION; - if (PHP_DEBUG == "yes") - PHP_PREFIX += "\\debug"; -} -DEFINE('PHP_PREFIX', PHP_PREFIX); - -DEFINE("BASE_INCLUDES", "/I . /I main /I regex /I Zend /I TSRM "); - -// CFLAGS for building the PHP dll -DEFINE("CFLAGS_PHP", "/D _USRDLL /D PHP5DLLTS_EXPORTS /D PHP_EXPORTS \ -/D LIBZEND_EXPORTS /D TSRM_EXPORTS /D SAPI_EXPORTS /D WINVER=0x400"); - -DEFINE('CFLAGS_PHP_OBJ', '$(CFLAGS_PHP) $(STATIC_EXT_CFLAGS)'); - -// General CFLAGS for building objects -DEFINE("CFLAGS", "/nologo /FD $(BASE_INCLUDES) /D _WINDOWS \ -/D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS"); - -if (VCVERS < 14) { - // Enable automatic precompiled headers - ADD_FLAG('CFLAGS', ' /YX '); -} - -if (VCVERS >= 14) { - // fun stuff: MS deprecated ANSI stdio and similar functions - // disable annoying warnings - ADD_FLAG('CFLAGS', ' /wd4996 '); -} - -// General link flags -DEFINE("LDFLAGS", "/nologo /version:" + - PHP_VERSION + "." + PHP_MINOR_VERSION + "." + PHP_RELEASE_VERSION); - -// General DLL link flags -DEFINE("DLL_LDFLAGS", "/dll "); - -// PHP DLL link flags -DEFINE("PHP_LDFLAGS", "$(DLL_LDFLAGS)"); - -// General libs -// urlmon.lib ole32.lib oleaut32.lib uuid.lib gdi32.lib winspool.lib comdlg32.lib -DEFINE("LIBS", "kernel32.lib ole32.lib user32.lib advapi32.lib shell32.lib ws2_32.lib"); - -// Set some debug/release specific options -if (PHP_DEBUG == "yes") { - ADD_FLAG("CFLAGS", "/LDd /MDd /Gm /ZI /Od /GZ /D _DEBUG /D ZEND_DEBUG=1"); - ADD_FLAG("LDFLAGS", "/debug"); - // Avoid problems when linking to release libraries that use the release - // version of the libc - ADD_FLAG("PHP_LDFLAGS", "/nodefaultlib:msvcrt"); -} else { - // Generate external debug files when --enable-debug-pack is specified - if (PHP_DEBUG_PACK == "yes") { - ADD_FLAG("CFLAGS", "/Zi"); - ADD_FLAG("LDFLAGS", "/incremental:no /debug /opt:ref,icf"); - } - // Equivalent to Release_TSInline build -> best optimization - ADD_FLAG("CFLAGS", "/LD /MD /W3 /Ox /D NDebug /D NDEBUG \ -/D ZEND_WIN32_FORCE_INLINE /GF /D ZEND_DEBUG=0"); - // if you have VS.Net /GS hardens the binary against buffer overruns - // ADD_FLAG("CFLAGS", "/GS"); -} - -if (PHP_ZTS == "yes") { - ADD_FLAG("CFLAGS", "/D ZTS=1"); -} - -// we want msvcrt in the PHP DLL -ADD_FLAG("PHP_LDFLAGS", "/nodefaultlib:libcmt"); - -// set up the build dir and DLL name -if (PHP_DEBUG == "yes" && PHP_ZTS == "yes") { - DEFINE("BUILD_DIR", PHP_OBJECT_OUT_DIR + "Debug_TS"); - DEFINE("PHPDLL", "php5ts_debug.dll"); - DEFINE("PHPLIB", "php5ts_debug.lib"); -} else if (PHP_DEBUG == "yes" && PHP_ZTS == "no") { - DEFINE("BUILD_DIR", PHP_OBJECT_OUT_DIR + "Debug"); - DEFINE("PHPDLL", "php5_debug.dll"); - DEFINE("PHPLIB", "php5_debug.lib"); -} else if (PHP_DEBUG == "no" && PHP_ZTS == "yes") { - DEFINE("BUILD_DIR", PHP_OBJECT_OUT_DIR + "Release_TS"); - DEFINE("PHPDLL", "php5ts.dll"); - DEFINE("PHPLIB", "php5ts.lib"); -} else if (PHP_DEBUG == "no" && PHP_ZTS == "no") { - DEFINE("BUILD_DIR", PHP_OBJECT_OUT_DIR + "Release"); - DEFINE("PHPDLL", "php5.dll"); - DEFINE("PHPLIB", "php5.lib"); -} - -// Find the php_build dir - it contains headers and libraries -// that we need -ARG_WITH('php-build', 'Path to where you extracted http://www.php.net/extra/win32build.zip. Assumes that it is a sibling of this source dir (..\\php_build) if not specified', 'no'); - -if (PHP_PHP_BUILD == 'no') { - if (FSO.FolderExists("..\\php_build")) { - PHP_PHP_BUILD = "..\\php_build"; - } else if (FSO.FolderExists("..\\win32build")) { - PHP_PHP_BUILD = "..\\win32build"; - } else if (FSO.FolderExists("..\\php-win32-dev\\php_build")) { - PHP_PHP_BUILD = "..\\php-win32-dev\\php_build"; - } -} - -ARG_WITH('extra-includes', 'Extra include path to use when building everything', ''); -ARG_WITH('extra-libs', 'Extra library path to use when linking everything', ''); - -var php_usual_include_suspects = "..\\php_build\\include;..\\win32build\\include;..\\bindlib_w32"; -var php_usual_lib_suspects = "..\\php_build\\lib;..\\win32build\\lib;..\\bindlib_w32"; - -// Poke around for some headers -function probe_basic_headers() -{ - var p; - - if (PHP_PHP_BUILD != "no") { - php_usual_include_suspects += ";" + PHP_PHP_BUILD + "\\include"; - php_usual_lib_suspects += ";" + PHP_PHP_BUILD + "\\lib"; - } - - p = CHECK_HEADER_ADD_INCLUDE("arpa\\nameser.h", "CFLAGS", php_usual_include_suspects); - - // hack to catch common location of libs - if (typeof(p) == "string") { - p = p.replace(new RegExp("include$"), "lib"); - ADD_FLAG("LDFLAGS", '/libpath:"' + p + '" '); - php_usual_lib_suspects += ";" + p; - } else if (!p) { - ERROR("We really need that arpa\\nameser.h file - it is part of the win32build package"); - } -} - -function add_extra_dirs() -{ - var path, i, f; - - if (PHP_EXTRA_INCLUDES.length) { - path = PHP_EXTRA_INCLUDES.split(';'); - for (i = 0; i < path.length; i++) { - f = FSO.GetAbsolutePathName(path[i]); - if (FSO.FolderExists(f)) { - ADD_FLAG("CFLAGS", '/I "' + f + '" '); - } - } - } - if (PHP_EXTRA_LIBS.length) { - path = PHP_EXTRA_LIBS.split(';'); - for (i = 0; i < path.length; i++) { - f = FSO.GetAbsolutePathName(path[i]); - if (FSO.FolderExists(f)) { - ADD_FLAG("LDFLAGS", '/libpath:"' + f + '" '); - } - } - } - -} - -probe_basic_headers(); -add_extra_dirs(); -CHECK_LIB("resolv.lib"); - -//DEFINE("PHP_BUILD", PHP_PHP_BUILD); - -STDOUT.WriteBlankLines(1); -STDOUT.WriteLine("Build dir: " + get_define('BUILD_DIR')); -STDOUT.WriteLine("PHP Core: " + get_define('PHPDLL') + " and " + get_define('PHPLIB')); - -ADD_SOURCES("Zend", "zend_language_parser.c zend_language_scanner.c \ - zend_ini_parser.c zend_ini_scanner.c zend_alloc.c zend_compile.c \ - zend_constants.c zend_dynamic_array.c zend_exceptions.c \ - zend_execute_API.c zend_highlight.c \ - zend_llist.c zend_opcode.c zend_operators.c zend_ptr_stack.c \ - zend_stack.c zend_variables.c zend.c zend_API.c zend_extensions.c \ - zend_hash.c zend_list.c zend_indent.c zend_builtin_functions.c \ - zend_sprintf.c zend_ini.c zend_qsort.c zend_multibyte.c zend_ts_hash.c \ - zend_stream.c zend_iterators.c zend_interfaces.c zend_objects.c \ - zend_object_handlers.c zend_objects_API.c \ - zend_mm.c zend_default_classes.c zend_reflection_api.c zend_execute.c zend_strtod.c"); - -ADD_SOURCES("main", "main.c snprintf.c spprintf.c safe_mode.c fopen_wrappers.c \ - php_scandir.c php_ini.c SAPI.c rfc1867.c php_content_types.c strlcpy.c \ - strlcat.c mergesort.c reentrancy.c php_variables.c php_ticks.c network.c \ - php_open_temporary_file.c php_logos.c output.c internal_functions.c php_sprintf.c"); - -ADD_SOURCES("main/streams", "streams.c cast.c memory.c filter.c plain_wrapper.c \ - userspace.c transports.c xp_socket.c mmap.c"); - -ADD_SOURCES("win32", "crypt_win32.c flock.c glob.c md5crypt.c pwd.c readdir.c \ - registry.c select.c sendmail.c time.c wfile.c winutil.c wsyslog.c globals.c"); - -ADD_SOURCES("regex", "regcomp.c regerror.c regexec.c regfree.c"); - -STDOUT.WriteBlankLines(1); - -/* Can we build with IPv6 support? */ -ARG_ENABLE("ipv6", "Disable IPv6 support (default is turn it on if available)", "yes"); - -var main_network_has_ipv6 = 0; -if (PHP_IPV6 == "yes") { - main_network_has_ipv6 = CHECK_HEADER_ADD_INCLUDE("wspiapi.h", "CFLAGS") ? 1 : 0; -} -if (main_network_has_ipv6) { - STDOUT.WriteLine("Enabling IPv6 support"); -} -AC_DEFINE('HAVE_GETADDRINFO', main_network_has_ipv6); -AC_DEFINE('HAVE_GAI_STRERROR', main_network_has_ipv6); -AC_DEFINE('HAVE_IPV6', main_network_has_ipv6); - -/* this allows up to 256 sockets to be select()ed in a single - * call to select(), instead of the usual 64 */ -ARG_ENABLE('fd-setsize', "Set maximum number of sockets for select(2)", "256"); -ADD_FLAG("CFLAGS", "/D FD_SETSIZE=" + parseInt(PHP_FD_SETSIZE)); - -ARG_ENABLE("memory-limit", "Enable memory limit checking code", "no"); -AC_DEFINE('MEMORY_LIMIT', PHP_MEMORY_LIMIT == "yes" ? 1 : 0); - -ARG_ENABLE("memory-manager", "Enable Zend memory manager", "yes"); -AC_DEFINE('USE_ZEND_ALLOC', PHP_MEMORY_MANAGER == "yes" ? 1 : 0); - -ARG_ENABLE("zend-multibyte", "Enable Zend multibyte encoding support", "no"); -if (PHP_ZEND_MULTIBYTE == "yes") { - STDOUT.WriteLine("Enabling Zend multibyte encoding support"); - AC_DEFINE('ZEND_MULTIBYTE', 1); -} - -AC_DEFINE('HAVE_USLEEP', 1); -AC_DEFINE('HAVE_STRCOLL', 1); - -/* For snapshot builders, where can we find the additional - * files that make up the snapshot template? */ -ARG_WITH("snapshot-template", "Path to snapshot builder template dir", "no"); - -if (PHP_SNAPSHOT_TEMPLATE == "no") { - /* default is as a sibling of the php_build dir */ - if (FSO.FolderExists(PHP_PHP_BUILD + "\\..\\template")) { - PHP_SNAPSHOT_TEMPLATE = FSO.GetAbsolutePathName(PHP_PHP_BUILD + "\\..\\template"); - } -} - -DEFINE('SNAPSHOT_TEMPLATE', PHP_SNAPSHOT_TEMPLATE); |