From ef04bc4a51e9566a18a9a1896a6a7cde22e831da Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Tue, 20 Feb 2018 07:59:34 +0100 Subject: [PATCH] dos2unix --- win32/build/config.w32.phpize.in | 254 +++++++-------- win32/build/phpize.js.in | 528 +++++++++++++++---------------- 2 files changed, 391 insertions(+), 391 deletions(-) diff --git a/win32/build/config.w32.phpize.in b/win32/build/config.w32.phpize.in index 70b4dc5e83..5d9cd6efa6 100644 --- a/win32/build/config.w32.phpize.in +++ b/win32/build/config.w32.phpize.in @@ -1,128 +1,128 @@ -// vim:ft=javascript -// $Id: config.w32 306241 2010-12-11 22:18:10Z pajoye $ -// "Master" config file; think of it as a configure.in -// equivalent. - -ARG_WITH("toolset", "Toolset to use for the compilation, give: vs, clang, icc. " + - "The only recommended and supported toolset for production use " + - "is Visual Studio. Use others at your own risk.", "vs"); -toolset_option_handle() - -var PHP_CYGWIN="notset"; - -toolset_setup_compiler(); - -// do we use x64 or 80x86 version of compiler? -X64 = toolset_is_64(); -toolset_setup_arch(); - -toolset_setup_linker(); -toolset_setup_project_tools(); - -// stick objects somewhere outside of the source tree -ARG_ENABLE('object-out-dir', 'Alternate location for binary objects during build', ''); -object_out_dir_option_handle(); - -ARG_ENABLE('debug', 'Compile with debugging symbols', PHP_DEBUG); -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."); -} - -if (PHP_PREFIX == '') { - PHP_PREFIX = "C:\\php"; - if (PHP_DEBUG == "yes") - PHP_PREFIX += "\\debug"; -} -DEFINE('PHP_PREFIX', PHP_PREFIX); - -DEFINE("BASE_INCLUDES", "/I " + PHP_DIR + "/include /I " + PHP_DIR + "/include/main /I " + PHP_DIR + "/include/Zend /I " + PHP_DIR + "/include/TSRM /I " + PHP_DIR + "/include/ext "); - -toolset_setup_common_cflags(); - +// vim:ft=javascript +// $Id: config.w32 306241 2010-12-11 22:18:10Z pajoye $ +// "Master" config file; think of it as a configure.in +// equivalent. + +ARG_WITH("toolset", "Toolset to use for the compilation, give: vs, clang, icc. " + + "The only recommended and supported toolset for production use " + + "is Visual Studio. Use others at your own risk.", "vs"); +toolset_option_handle() + +var PHP_CYGWIN="notset"; + +toolset_setup_compiler(); + +// do we use x64 or 80x86 version of compiler? +X64 = toolset_is_64(); +toolset_setup_arch(); + +toolset_setup_linker(); +toolset_setup_project_tools(); + +// stick objects somewhere outside of the source tree +ARG_ENABLE('object-out-dir', 'Alternate location for binary objects during build', ''); +object_out_dir_option_handle(); + +ARG_ENABLE('debug', 'Compile with debugging symbols', PHP_DEBUG); +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."); +} + +if (PHP_PREFIX == '') { + PHP_PREFIX = "C:\\php"; + if (PHP_DEBUG == "yes") + PHP_PREFIX += "\\debug"; +} +DEFINE('PHP_PREFIX', PHP_PREFIX); + +DEFINE("BASE_INCLUDES", "/I " + PHP_DIR + "/include /I " + PHP_DIR + "/include/main /I " + PHP_DIR + "/include/Zend /I " + PHP_DIR + "/include/TSRM /I " + PHP_DIR + "/include/ext "); + +toolset_setup_common_cflags(); + ARG_WITH('prefix', 'PHP installation prefix', PHP_PREFIX); -ARG_WITH('mp', 'Tell Visual Studio use up to [n,auto,disable] processes for compilation', 'auto'); -var PHP_MP_DISABLED = true; -if (VS_TOOLSET && PHP_MP != 'disable') { - // no from disable-all - if(PHP_MP == 'auto' || PHP_MP == 'no') { - ADD_FLAG('CFLAGS', ' /MP '); - PHP_MP_DISABLED = false; - } else { - if(parseInt(PHP_MP) != 0) { - ADD_FLAG('CFLAGS', ' /MP'+ PHP_MP +' '); - PHP_MP_DISABLED = false; - } else { - STDOUT.WriteLine('WARNING: Invalid argument for MP: ' + PHP_MP); - } - } -} - -/* 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"); - -// General link flags -toolset_setup_common_ldlags(); - -// General libs -toolset_setup_common_libs(); - -// Set some debug/release specific options -toolset_setup_build_mode(); - -setup_zts_stuff(); - -if (MODE_PHPIZE) { - DEFINE("PHPDLL", PHP_DLL); - DEFINE("PHPLIB", PHP_DLL_LIB); -} - -// Find the php_build dir - it contains headers and libraries -// that we need -ARG_WITH('php-build', 'Path to where you extracted the development libraries (http://wiki.php.net/internals/windows/libs). Assumes that it is a sibling of this source dir (..\\deps) if not specified', 'no'); -php_build_option_handle(); - -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_PHP_BUILD+"\\include"; -var php_usual_lib_suspects = PHP_PHP_BUILD+"\\lib"; - -ADD_FLAG("CFLAGS", '/I "' + php_usual_include_suspects + '" '); -ADD_FLAG("LDFLAGS", '/libpath:"\\"' + php_usual_lib_suspects + '\\"" '); -ADD_FLAG("ARFLAGS", '/libpath:"\\"' + php_usual_lib_suspects + '\\"" '); - -probe_basic_headers(); -add_extra_dirs(); - -//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')); - -/* XXX inspect this for other toolsets */ -//AC_DEFINE('ZEND_DVAL_TO_LVAL_CAST_OK', 1); - -AC_DEFINE('HAVE_STRNLEN', 1); - -STDOUT.WriteBlankLines(1); - -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"); - } else if (FSO.FolderExists(PHP_PHP_BUILD + "\\..\\template")) { - PHP_SNAPSHOT_TEMPLATE = FSO.GetAbsolutePathName(PHP_PHP_BUILD + "\\..\\template"); - } -} - -DEFINE('SNAPSHOT_TEMPLATE', PHP_SNAPSHOT_TEMPLATE); - -AC_DEFINE("PHP_DIR", PHP_DIR); -DEFINE("PHP_DIR", PHP_DIR); - -ARG_WITH("codegen-arch", "Architecture for code generation", "no"); -toolset_setup_codegen_arch(); - +ARG_WITH('mp', 'Tell Visual Studio use up to [n,auto,disable] processes for compilation', 'auto'); +var PHP_MP_DISABLED = true; +if (VS_TOOLSET && PHP_MP != 'disable') { + // no from disable-all + if(PHP_MP == 'auto' || PHP_MP == 'no') { + ADD_FLAG('CFLAGS', ' /MP '); + PHP_MP_DISABLED = false; + } else { + if(parseInt(PHP_MP) != 0) { + ADD_FLAG('CFLAGS', ' /MP'+ PHP_MP +' '); + PHP_MP_DISABLED = false; + } else { + STDOUT.WriteLine('WARNING: Invalid argument for MP: ' + PHP_MP); + } + } +} + +/* 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"); + +// General link flags +toolset_setup_common_ldlags(); + +// General libs +toolset_setup_common_libs(); + +// Set some debug/release specific options +toolset_setup_build_mode(); + +setup_zts_stuff(); + +if (MODE_PHPIZE) { + DEFINE("PHPDLL", PHP_DLL); + DEFINE("PHPLIB", PHP_DLL_LIB); +} + +// Find the php_build dir - it contains headers and libraries +// that we need +ARG_WITH('php-build', 'Path to where you extracted the development libraries (http://wiki.php.net/internals/windows/libs). Assumes that it is a sibling of this source dir (..\\deps) if not specified', 'no'); +php_build_option_handle(); + +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_PHP_BUILD+"\\include"; +var php_usual_lib_suspects = PHP_PHP_BUILD+"\\lib"; + +ADD_FLAG("CFLAGS", '/I "' + php_usual_include_suspects + '" '); +ADD_FLAG("LDFLAGS", '/libpath:"\\"' + php_usual_lib_suspects + '\\"" '); +ADD_FLAG("ARFLAGS", '/libpath:"\\"' + php_usual_lib_suspects + '\\"" '); + +probe_basic_headers(); +add_extra_dirs(); + +//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')); + +/* XXX inspect this for other toolsets */ +//AC_DEFINE('ZEND_DVAL_TO_LVAL_CAST_OK', 1); + +AC_DEFINE('HAVE_STRNLEN', 1); + +STDOUT.WriteBlankLines(1); + +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"); + } else if (FSO.FolderExists(PHP_PHP_BUILD + "\\..\\template")) { + PHP_SNAPSHOT_TEMPLATE = FSO.GetAbsolutePathName(PHP_PHP_BUILD + "\\..\\template"); + } +} + +DEFINE('SNAPSHOT_TEMPLATE', PHP_SNAPSHOT_TEMPLATE); + +AC_DEFINE("PHP_DIR", PHP_DIR); +DEFINE("PHP_DIR", PHP_DIR); + +ARG_WITH("codegen-arch", "Architecture for code generation", "no"); +toolset_setup_codegen_arch(); + diff --git a/win32/build/phpize.js.in b/win32/build/phpize.js.in index 7eddd5b07f..6a4ef9b4eb 100644 --- a/win32/build/phpize.js.in +++ b/win32/build/phpize.js.in @@ -1,266 +1,266 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 7 | - +----------------------------------------------------------------------+ - | Copyright (c) 1997-2018 The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Author: Pierre Joye | - +----------------------------------------------------------------------+ -*/ - -/* $Id$ */ -// This generates a configure script for win32 build - -var STDOUT = WScript.StdOut; - -var FSO = WScript.CreateObject("Scripting.FileSystemObject"); -var C = FSO.CreateTextFile("configure.js", true); -var B = FSO.CreateTextFile("configure.bat", true); -re = /\\script/i; -var PHP_DIR=FSO.GetParentFolderName(WScript.ScriptFullName).replace(re,""); - -var modules = ""; -var MODULES = WScript.CreateObject("Scripting.Dictionary"); -var module_dirs = new Array(); - -function ERROR(msg) -{ - STDERR.WriteLine("ERROR: " + msg); - WScript.Quit(3); -} - -function file_get_contents(filename) -{ - var t = ""; - var F = FSO.OpenTextFile(filename, 1); - - if (!F.AtEndOfStream) { - t = F.ReadAll(); - F.Close(); - } - return t; -} - -function Module_Item(module_name, config_path, dir_line, deps, content) -{ - this.module_name = module_name; - this.config_path = config_path; - this.dir_line = dir_line; - this.deps = deps; - this.content = content; -} - -function get_module_dep(contents) -{ - var re_dep_line = new RegExp("ADD_EXTENSION_DEP\\([^,]*\\s*,\\s*['\"]([^'\"]+)['\"].*\\)", "gm"); - var calls = contents.match(re_dep_line); - var deps = new Array(); - if (calls != null) { - for (i = 0; i < calls.length; i++) { - // now we need the extension name out of this thing - if (calls[i].match(re_dep_line)) { - deps[deps.length] = RegExp.$1; - - } - } - } - return deps; -} - -function find_config_w32(dirname) -{ - if (!FSO.FolderExists(dirname)) { - return; - } - - var f = FSO.GetFolder(dirname); - var fc = new Enumerator(f.SubFolders); - var c, i, ok, n; - var item = null; - - c = dirname + "\\config.w32"; - if (FSO.FileExists(c)) { - var dir_line = "configure_module_dirname = condense_path(FSO.GetParentFolderName('" - + c.replace(new RegExp('(["\\\\])', "g"), '\\$1') + "'));\r\n"; - var contents = file_get_contents(c); - - deps = get_module_dep(contents); - - item = new Module_Item(n, c, dir_line, deps, contents); - MODULES.Add(n, item); - } - - for (; !fc.atEnd(); fc.moveNext()) { - /* check if we already picked up a module with the same dirname; - * if we have, don't include it here */ - n = FSO.GetFileName(fc.item()); - if (n == '.svn' || n == 'tests' || n == '.git') { - continue; - } - - c = FSO.BuildPath(fc.item(), "config.w32"); - if (FSO.FileExists(c)) { - var dir_line = "configure_module_dirname = condense_path(FSO.GetParentFolderName('" - + c.replace(new RegExp('(["\\\\])', "g"), '\\$1') + "'));\r\n"; - var contents = file_get_contents(c); - - deps = get_module_dep(contents); - - item = new Module_Item(n, c, dir_line, deps, contents); - MODULES.Add(n, item); - } - } -} - -function emit_module(item) -{ - return item.dir_line + item.content; -} - -function emit_dep_modules(module_names) -{ - var i, mod_name, j; - var output = ""; - var item = null; - - for (i in module_names) { - mod_name = module_names[i]; - - if (MODULES.Exists(mod_name)) { - item = MODULES.Item(mod_name); - MODULES.Remove(mod_name); - if (item.deps.length) { - output += emit_dep_modules(item.deps); - } - output += emit_module(item); - } - } - - return output; -} - -function gen_modules() -{ - var module_names = (new VBArray(MODULES.Keys())).toArray(); - var i, mod_name, j; - var item; - var output = ""; - - // first, look for modules with empty deps; emit those first - for (i in module_names) { - STDOUT.WriteLine("module ... " + module_names); - mod_name = module_names[i]; - item = MODULES.Item(mod_name); - if (item.deps.length == 0) { - MODULES.Remove(mod_name); - output += emit_module(item); - } - } - - // now we are left with modules that have dependencies on other modules - module_names = (new VBArray(MODULES.Keys())).toArray(); - output += emit_dep_modules(module_names); - - return output; -} - -// Process buildconf arguments -function buildconf_process_args() -{ - args = WScript.Arguments; - - for (i = 0; i < args.length; i++) { - arg = args(i); - // If it is --foo=bar, split on the equals sign - arg = arg.split("=", 2); - argname = arg[0]; - if (arg.length > 1) { - argval = arg[1]; - } else { - argval = null; - } - - if (argname == '--clean' && argval != null) { - STDOUT.WriteLine("Cleaning..."); - return 0; - } - - if (argname == '--help') { - STDOUT.WriteLine("Usage: phpize [--clean|--help|--version|-v]"); - return 0; - } - return 1; - } -} - -if (buildconf_process_args() == 0) { - WScript.Quit(3); -} -STDOUT.WriteLine("Rebuilding configure.js"); -STDOUT.WriteLine(PHP_DIR); - -// Write the head of the configure script -C.WriteLine("/* This file automatically generated from script/confutils.js */"); -C.WriteLine("var MODE_PHPIZE = true;"); -C.WriteLine("var PHP_DIR = " + '"' + PHP_DIR.replace(new RegExp('(["\\\\])', "g"), '\\$1') + '"'); -C.WriteLine("var PHP_PREFIX = " + '"' + PHP_PREFIX.replace(new RegExp('(["\\\\])', "g"), '\\$1') + '"'); - -/* XXX this needs to be implemented for the phpize mode yet, a quick fix just to disable it for now */ -C.WriteLine("var PHP_ANALYZER = 'disabled';"); -C.WriteLine("var PHP_PGO = 'no';"); -C.WriteLine("var PHP_PGI = 'no';"); - -C.Write(file_get_contents(PHP_DIR + "//script//ext_deps.js")); -if (FSO.FileExists(PHP_DIR + "/script/ext_pickle.js")) { - C.Write(file_get_contents(PHP_DIR + "//script//ext_pickle.js")); -} - -C.Write(file_get_contents(PHP_DIR + "/script/confutils.js")); -C.Write(file_get_contents(PHP_DIR + "/script/config.phpize.js")); - -// Pull in code for the base detection -modules = file_get_contents(PHP_DIR + "/script/config.w32.phpize.in"); - -C.WriteLine("ARG_ENABLE('debug', 'Compile with debugging symbols', PHP_DEBUG);"); -find_config_w32("."); - -// Now generate contents of module based on MODULES, chasing dependencies -// to ensure that dependent modules are emitted first -modules += gen_modules(); - -// Look for ARG_ENABLE or ARG_WITH calls -re = new RegExp("(ARG_(ENABLE|WITH)\([^;]+\);)", "gm"); -calls = modules.match(re); -for (i = 0; i < calls.length; i++) { - item = calls[i]; - C.WriteLine("try {"); - C.WriteLine(item); - C.WriteLine("} catch (e) {"); - C.WriteLine('\tSTDOUT.WriteLine("problem: " + e);'); - C.WriteLine("}"); -} - -C.WriteBlankLines(1); -C.WriteLine("conf_process_args();"); -C.WriteBlankLines(1); - -// Comment out the calls from their original positions -modules = modules.replace(re, "/* $1 */"); -C.Write(modules); - - -C.WriteBlankLines(1); -C.Write(file_get_contents(PHP_DIR + "\\script\\configure.tail")); - -B.WriteLine("@echo off"); -B.WriteLine("cscript /nologo configure.js %*"); +/* + +----------------------------------------------------------------------+ + | PHP Version 7 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2018 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Author: Pierre Joye | + +----------------------------------------------------------------------+ +*/ + +/* $Id$ */ +// This generates a configure script for win32 build + +var STDOUT = WScript.StdOut; + +var FSO = WScript.CreateObject("Scripting.FileSystemObject"); +var C = FSO.CreateTextFile("configure.js", true); +var B = FSO.CreateTextFile("configure.bat", true); +re = /\\script/i; +var PHP_DIR=FSO.GetParentFolderName(WScript.ScriptFullName).replace(re,""); + +var modules = ""; +var MODULES = WScript.CreateObject("Scripting.Dictionary"); +var module_dirs = new Array(); + +function ERROR(msg) +{ + STDERR.WriteLine("ERROR: " + msg); + WScript.Quit(3); +} + +function file_get_contents(filename) +{ + var t = ""; + var F = FSO.OpenTextFile(filename, 1); + + if (!F.AtEndOfStream) { + t = F.ReadAll(); + F.Close(); + } + return t; +} + +function Module_Item(module_name, config_path, dir_line, deps, content) +{ + this.module_name = module_name; + this.config_path = config_path; + this.dir_line = dir_line; + this.deps = deps; + this.content = content; +} + +function get_module_dep(contents) +{ + var re_dep_line = new RegExp("ADD_EXTENSION_DEP\\([^,]*\\s*,\\s*['\"]([^'\"]+)['\"].*\\)", "gm"); + var calls = contents.match(re_dep_line); + var deps = new Array(); + if (calls != null) { + for (i = 0; i < calls.length; i++) { + // now we need the extension name out of this thing + if (calls[i].match(re_dep_line)) { + deps[deps.length] = RegExp.$1; + + } + } + } + return deps; +} + +function find_config_w32(dirname) +{ + if (!FSO.FolderExists(dirname)) { + return; + } + + var f = FSO.GetFolder(dirname); + var fc = new Enumerator(f.SubFolders); + var c, i, ok, n; + var item = null; + + c = dirname + "\\config.w32"; + if (FSO.FileExists(c)) { + var dir_line = "configure_module_dirname = condense_path(FSO.GetParentFolderName('" + + c.replace(new RegExp('(["\\\\])', "g"), '\\$1') + "'));\r\n"; + var contents = file_get_contents(c); + + deps = get_module_dep(contents); + + item = new Module_Item(n, c, dir_line, deps, contents); + MODULES.Add(n, item); + } + + for (; !fc.atEnd(); fc.moveNext()) { + /* check if we already picked up a module with the same dirname; + * if we have, don't include it here */ + n = FSO.GetFileName(fc.item()); + if (n == '.svn' || n == 'tests' || n == '.git') { + continue; + } + + c = FSO.BuildPath(fc.item(), "config.w32"); + if (FSO.FileExists(c)) { + var dir_line = "configure_module_dirname = condense_path(FSO.GetParentFolderName('" + + c.replace(new RegExp('(["\\\\])', "g"), '\\$1') + "'));\r\n"; + var contents = file_get_contents(c); + + deps = get_module_dep(contents); + + item = new Module_Item(n, c, dir_line, deps, contents); + MODULES.Add(n, item); + } + } +} + +function emit_module(item) +{ + return item.dir_line + item.content; +} + +function emit_dep_modules(module_names) +{ + var i, mod_name, j; + var output = ""; + var item = null; + + for (i in module_names) { + mod_name = module_names[i]; + + if (MODULES.Exists(mod_name)) { + item = MODULES.Item(mod_name); + MODULES.Remove(mod_name); + if (item.deps.length) { + output += emit_dep_modules(item.deps); + } + output += emit_module(item); + } + } + + return output; +} + +function gen_modules() +{ + var module_names = (new VBArray(MODULES.Keys())).toArray(); + var i, mod_name, j; + var item; + var output = ""; + + // first, look for modules with empty deps; emit those first + for (i in module_names) { + STDOUT.WriteLine("module ... " + module_names); + mod_name = module_names[i]; + item = MODULES.Item(mod_name); + if (item.deps.length == 0) { + MODULES.Remove(mod_name); + output += emit_module(item); + } + } + + // now we are left with modules that have dependencies on other modules + module_names = (new VBArray(MODULES.Keys())).toArray(); + output += emit_dep_modules(module_names); + + return output; +} + +// Process buildconf arguments +function buildconf_process_args() +{ + args = WScript.Arguments; + + for (i = 0; i < args.length; i++) { + arg = args(i); + // If it is --foo=bar, split on the equals sign + arg = arg.split("=", 2); + argname = arg[0]; + if (arg.length > 1) { + argval = arg[1]; + } else { + argval = null; + } + + if (argname == '--clean' && argval != null) { + STDOUT.WriteLine("Cleaning..."); + return 0; + } + + if (argname == '--help') { + STDOUT.WriteLine("Usage: phpize [--clean|--help|--version|-v]"); + return 0; + } + return 1; + } +} + +if (buildconf_process_args() == 0) { + WScript.Quit(3); +} +STDOUT.WriteLine("Rebuilding configure.js"); +STDOUT.WriteLine(PHP_DIR); + +// Write the head of the configure script +C.WriteLine("/* This file automatically generated from script/confutils.js */"); +C.WriteLine("var MODE_PHPIZE = true;"); +C.WriteLine("var PHP_DIR = " + '"' + PHP_DIR.replace(new RegExp('(["\\\\])', "g"), '\\$1') + '"'); +C.WriteLine("var PHP_PREFIX = " + '"' + PHP_PREFIX.replace(new RegExp('(["\\\\])', "g"), '\\$1') + '"'); + +/* XXX this needs to be implemented for the phpize mode yet, a quick fix just to disable it for now */ +C.WriteLine("var PHP_ANALYZER = 'disabled';"); +C.WriteLine("var PHP_PGO = 'no';"); +C.WriteLine("var PHP_PGI = 'no';"); + +C.Write(file_get_contents(PHP_DIR + "//script//ext_deps.js")); +if (FSO.FileExists(PHP_DIR + "/script/ext_pickle.js")) { + C.Write(file_get_contents(PHP_DIR + "//script//ext_pickle.js")); +} + +C.Write(file_get_contents(PHP_DIR + "/script/confutils.js")); +C.Write(file_get_contents(PHP_DIR + "/script/config.phpize.js")); + +// Pull in code for the base detection +modules = file_get_contents(PHP_DIR + "/script/config.w32.phpize.in"); + +C.WriteLine("ARG_ENABLE('debug', 'Compile with debugging symbols', PHP_DEBUG);"); +find_config_w32("."); + +// Now generate contents of module based on MODULES, chasing dependencies +// to ensure that dependent modules are emitted first +modules += gen_modules(); + +// Look for ARG_ENABLE or ARG_WITH calls +re = new RegExp("(ARG_(ENABLE|WITH)\([^;]+\);)", "gm"); +calls = modules.match(re); +for (i = 0; i < calls.length; i++) { + item = calls[i]; + C.WriteLine("try {"); + C.WriteLine(item); + C.WriteLine("} catch (e) {"); + C.WriteLine('\tSTDOUT.WriteLine("problem: " + e);'); + C.WriteLine("}"); +} + +C.WriteBlankLines(1); +C.WriteLine("conf_process_args();"); +C.WriteBlankLines(1); + +// Comment out the calls from their original positions +modules = modules.replace(re, "/* $1 */"); +C.Write(modules); + + +C.WriteBlankLines(1); +C.Write(file_get_contents(PHP_DIR + "\\script\\configure.tail")); + +B.WriteLine("@echo off"); +B.WriteLine("cscript /nologo configure.js %*"); FSO.CopyFile(PHP_DIR + "\\script\\run-tests.php", "run-tests.php", true); -- 2.40.0