generate_internal_functions();\r
generate_config_h();\r
generate_phpize();\r
+ } else {\r
+ generate_config_pickle_h();\r
+ generate_ext_pickle();\r
}\r
STDOUT.WriteLine("Done.");\r
STDOUT.WriteBlankLines(1);\r
}\r
}\r
\r
+function generate_ext_pickle()\r
+{\r
+ var content;\r
+ var DEPS = null;\r
+ var dest;\r
+ var deps_lines = new Array();\r
+\r
+ var build_var_name = function(name) {\r
+ return "PHP_" + name.toUpperCase();\r
+ }\r
+\r
+ STDOUT.WriteLine("Generating pickle deps");\r
+ dest = PHP_DIR + "/script/";\r
+\r
+ if (!FSO.FolderExists(dest)) {\r
+ FSO.CreateFolder(dest);\r
+ }\r
+\r
+ if (FSO.FileExists(dest + "/ext_pickle.js")) {\r
+ DEPS = FSO.OpenTextFile(dest + "/ext_pickle.js", 1);\r
+\r
+ while (!DEPS.AtEndOfStream) {\r
+ var ln = DEPS.ReadLine();\r
+ var found = false;\r
+\r
+ for (var i in extensions_enabled) {\r
+ var reg0 = new RegExp(build_var_name(extensions_enabled[i][0]) + "\s*=.+", "g");\r
+ var reg1 = new RegExp(build_var_name(extensions_enabled[i][0]) + "_SHARED" + "\s*=.+", "g");\r
+\r
+ if (ln.match(reg1) || ln.match(reg0)) {\r
+ found = true;\r
+ break;\r
+ }\r
+ }\r
+\r
+ if (!found) {\r
+ deps_lines.push(ln);\r
+ }\r
+ }\r
+ }\r
+\r
+ for (var i in extensions_enabled) {\r
+ deps_lines.push(build_var_name(extensions_enabled[i][0]) + "=true;");\r
+ deps_lines.push(build_var_name(extensions_enabled[i][0]) + "_SHARED=" + (extensions_enabled[i][1] == 'shared' ? 'true' : 'false') + ";");\r
+ }\r
+\r
+ if (!!DEPS) {\r
+ DEPS.Close();\r
+ DEPS = null;\r
+ }\r
+\r
+ /* Replace the ext_pickle.js with the new content */\r
+ DEPS = FSO.CreateTextFile(dest + "/ext_pickle.js", true);\r
+\r
+ for (var j in deps_lines) {\r
+ DEPS.WriteLine(deps_lines[j]);\r
+ }\r
+\r
+ DEPS.Close();\r
+}\r
+\r
+function generate_config_pickle_h()\r
+{\r
+ var outfile = null;\r
+ var lines = new Array();\r
+ var keys = (new VBArray(configure_hdr.Keys())).toArray();\r
+ dest = PHP_DIR + "/include/main";\r
+\r
+ var ignore_key = function(key) {\r
+ var ignores = [ "CONFIGURE_COMMAND", "PHP_COMPILER_ID", "COMPILER", "ARCHITECTURE", "HAVE_STRNLEN", "PHP_DIR" ];\r
+\r
+ for (var k in ignores) {\r
+ if (ignores[k] == key) {\r
+ return true;\r
+ }\r
+ }\r
+\r
+ return false;\r
+ }\r
+\r
+\r
+ STDOUT.WriteLine("Generating main/config.pickle.h");\r
+\r
+ if (FSO.FileExists(dest + "/config.pickle.h")) {\r
+ outfile = FSO.OpenTextFile(dest + "/config.pickle.h", 1);\r
+\r
+ while (!outfile.AtEndOfStream) {\r
+ var found = false;\r
+ var ln = outfile.ReadLine();\r
+\r
+ for (var i in keys) {\r
+ var reg = new RegExp("#define[\s ]+" + keys[i] + "[\s ]*.*", "g");\r
+\r
+ if (ln.match(reg)) {\r
+ found = true;\r
+ break;\r
+ }\r
+ }\r
+\r
+ if (!found) {\r
+ lines.push(ln);\r
+ }\r
+ }\r
+ }\r
+\r
+ for (var i in keys) {\r
+ var item = configure_hdr.Item(keys[i]);\r
+\r
+ if (ignore_key(keys[i])) {\r
+ continue;\r
+ }\r
+\r
+ /* XXX fix comment handling */\r
+ /*if (!lines[j].match(/^#define.+/g)) {\r
+ continue;\r
+ }*/\r
+\r
+ lines.push("#define " + keys[i] + " " + item[0]);\r
+ }\r
+\r
+ if (outfile) {\r
+ outfile.Close();\r
+ outfile = null;\r
+ }\r
+\r
+ outfile = FSO.CreateTextFile(dest + "/config.pickle.h", true);\r
+\r
+ for (var k in lines) {\r
+ outfile.WriteLine(lines[k]);\r
+ }\r
+\r
+ outfile.Close();\r
+}\r
+\r
function generate_config_h()\r
{\r
var infile, outfile;\r