Skip to content

Commit ce2ad0d

Browse files
committed
basic routines for phpize mode to
- generate headers for non core ext defines - generate js deps for non core exts
1 parent 04821a1 commit ce2ad0d

File tree

1 file changed

+137
-0
lines changed

1 file changed

+137
-0
lines changed

win32/build/confutils.js

Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1636,6 +1636,9 @@ function generate_files()
16361636
generate_internal_functions();
16371637
generate_config_h();
16381638
generate_phpize();
1639+
} else {
1640+
generate_config_pickle_h();
1641+
generate_ext_pickle();
16391642
}
16401643
STDOUT.WriteLine("Done.");
16411644
STDOUT.WriteBlankLines(1);
@@ -1648,6 +1651,140 @@ function generate_files()
16481651
}
16491652
}
16501653

1654+
function generate_ext_pickle()
1655+
{
1656+
var content;
1657+
var DEPS = null;
1658+
var dest;
1659+
var deps_lines = new Array();
1660+
1661+
var build_var_name = function(name) {
1662+
return "PHP_" + name.toUpperCase();
1663+
}
1664+
1665+
STDOUT.WriteLine("Generating pickle deps");
1666+
dest = PHP_DIR + "/script/";
1667+
1668+
if (!FSO.FolderExists(dest)) {
1669+
FSO.CreateFolder(dest);
1670+
}
1671+
1672+
if (FSO.FileExists(dest + "/ext_pickle.js")) {
1673+
DEPS = FSO.OpenTextFile(dest + "/ext_pickle.js", 1);
1674+
1675+
while (!DEPS.AtEndOfStream) {
1676+
var ln = DEPS.ReadLine();
1677+
var found = false;
1678+
1679+
for (var i in extensions_enabled) {
1680+
var reg0 = new RegExp(build_var_name(extensions_enabled[i][0]) + "\s*=.+", "g");
1681+
var reg1 = new RegExp(build_var_name(extensions_enabled[i][0]) + "_SHARED" + "\s*=.+", "g");
1682+
1683+
if (ln.match(reg1) || ln.match(reg0)) {
1684+
found = true;
1685+
break;
1686+
}
1687+
}
1688+
1689+
if (!found) {
1690+
deps_lines.push(ln);
1691+
}
1692+
}
1693+
}
1694+
1695+
for (var i in extensions_enabled) {
1696+
deps_lines.push(build_var_name(extensions_enabled[i][0]) + "=true;");
1697+
deps_lines.push(build_var_name(extensions_enabled[i][0]) + "_SHARED=" + (extensions_enabled[i][1] == 'shared' ? 'true' : 'false') + ";");
1698+
}
1699+
1700+
if (!!DEPS) {
1701+
DEPS.Close();
1702+
DEPS = null;
1703+
}
1704+
1705+
/* Replace the ext_pickle.js with the new content */
1706+
DEPS = FSO.CreateTextFile(dest + "/ext_pickle.js", true);
1707+
1708+
for (var j in deps_lines) {
1709+
DEPS.WriteLine(deps_lines[j]);
1710+
}
1711+
1712+
DEPS.Close();
1713+
}
1714+
1715+
function generate_config_pickle_h()
1716+
{
1717+
var outfile = null;
1718+
var lines = new Array();
1719+
var keys = (new VBArray(configure_hdr.Keys())).toArray();
1720+
dest = PHP_DIR + "/include/main";
1721+
1722+
var ignore_key = function(key) {
1723+
var ignores = [ "CONFIGURE_COMMAND", "PHP_COMPILER_ID", "COMPILER", "ARCHITECTURE", "HAVE_STRNLEN", "PHP_DIR" ];
1724+
1725+
for (var k in ignores) {
1726+
if (ignores[k] == key) {
1727+
return true;
1728+
}
1729+
}
1730+
1731+
return false;
1732+
}
1733+
1734+
1735+
STDOUT.WriteLine("Generating main/config.pickle.h");
1736+
1737+
if (FSO.FileExists(dest + "/config.pickle.h")) {
1738+
outfile = FSO.OpenTextFile(dest + "/config.pickle.h", 1);
1739+
1740+
while (!outfile.AtEndOfStream) {
1741+
var found = false;
1742+
var ln = outfile.ReadLine();
1743+
1744+
for (var i in keys) {
1745+
var reg = new RegExp("#define[\s ]+" + keys[i] + "[\s ]*.*", "g");
1746+
1747+
if (ln.match(reg)) {
1748+
found = true;
1749+
break;
1750+
}
1751+
}
1752+
1753+
if (!found) {
1754+
lines.push(ln);
1755+
}
1756+
}
1757+
}
1758+
1759+
for (var i in keys) {
1760+
var item = configure_hdr.Item(keys[i]);
1761+
1762+
if (ignore_key(keys[i])) {
1763+
continue;
1764+
}
1765+
1766+
/* XXX fix comment handling */
1767+
/*if (!lines[j].match(/^#define.+/g)) {
1768+
continue;
1769+
}*/
1770+
1771+
lines.push("#define " + keys[i] + " " + item[0]);
1772+
}
1773+
1774+
if (outfile) {
1775+
outfile.Close();
1776+
outfile = null;
1777+
}
1778+
1779+
outfile = FSO.CreateTextFile(dest + "/config.pickle.h", true);
1780+
1781+
for (var k in lines) {
1782+
outfile.WriteLine(lines[k]);
1783+
}
1784+
1785+
outfile.Close();
1786+
}
1787+
16511788
function generate_config_h()
16521789
{
16531790
var infile, outfile;

0 commit comments

Comments
 (0)