2013-09-26 15:23:32 +00:00
|
|
|
|
|
|
|
ARG_WITH("v8js", "for V8 Javascript Engine", "no");
|
|
|
|
|
2016-03-08 21:46:32 +00:00
|
|
|
function v8js_zeroPad(num, places) {
|
|
|
|
var zero = places - num.toString().length + 1;
|
|
|
|
return Array(+(zero > 0 && zero)).join("0") + num;
|
|
|
|
}
|
|
|
|
|
2013-09-26 15:23:32 +00:00
|
|
|
if (PHP_V8JS != "no") {
|
2013-09-28 00:02:49 +00:00
|
|
|
if (CHECK_LIB("v8.lib", "v8js") &&
|
2013-09-26 15:23:32 +00:00
|
|
|
CHECK_HEADER_ADD_INCLUDE("v8.h", "CFLAGS_V8JS")) {
|
|
|
|
|
2013-09-28 19:42:03 +00:00
|
|
|
ADD_FLAG("CFLAGS_V8JS", "/EHcs");
|
|
|
|
ADD_FLAG("CFLAGS_V8JS", "/D _ALLOW_KEYWORD_MACROS");
|
2014-11-12 23:24:39 +00:00
|
|
|
ADD_FLAG("CFLAGS_V8JS", "/D ZEND_WIN32_FORCE_INLINE");
|
|
|
|
ADD_FLAG("CFLAGS_V8JS", "/D __STDC_LIMIT_MACROS");
|
2013-09-28 00:02:49 +00:00
|
|
|
|
2016-03-08 21:12:51 +00:00
|
|
|
// defaults
|
|
|
|
var v8major = 4;
|
|
|
|
var v8minor = 7;
|
|
|
|
var v8build = 75;
|
|
|
|
var v8patch = 0;
|
|
|
|
var v8pinc = search_paths("v8-version.h", php_usual_include_suspects, null);
|
|
|
|
if (typeof(v8pinc) == "string") {
|
|
|
|
var v8versionh = file_get_contents(v8pinc + '\\v8-version.h');
|
|
|
|
if (v8versionh.match(/#define V8_MAJOR_VERSION ([0-9]*)/i)) {
|
|
|
|
v8major = RegExp.$1;
|
|
|
|
}
|
|
|
|
if (v8versionh.match(/#define V8_MINOR_VERSION ([0-9]*)/i)) {
|
|
|
|
v8minor = RegExp.$1;
|
|
|
|
}
|
|
|
|
if (v8versionh.match(/#define V8_BUILD_NUMBER ([0-9]*)/i)) {
|
|
|
|
v8build = RegExp.$1;
|
|
|
|
}
|
|
|
|
if (v8versionh.match(/#define V8_PATCH_LEVEL ([0-9]*)/i)) {
|
|
|
|
v8patch = RegExp.$1;
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
WARNING("Could not parse v8-version.h");
|
|
|
|
}
|
2016-03-09 10:42:14 +00:00
|
|
|
|
|
|
|
var v8api = v8major + v8js_zeroPad(v8minor, 3) + v8js_zeroPad(v8build, 3);
|
|
|
|
var v8ver = v8major + "." + v8minor + "." + v8build + "." + v8patch;
|
|
|
|
|
2016-03-08 21:12:51 +00:00
|
|
|
AC_DEFINE("PHP_V8_API_VERSION", v8api, "", false);
|
|
|
|
AC_DEFINE("PHP_V8_VERSION", v8ver, "", true);
|
2013-09-28 00:02:49 +00:00
|
|
|
|
2015-10-11 17:47:22 +00:00
|
|
|
EXTENSION("v8js", "v8js_array_access.cc v8js.cc v8js_class.cc v8js_commonjs.cc v8js_convert.cc v8js_exceptions.cc v8js_methods.cc v8js_object_export.cc v8js_timer.cc v8js_v8.cc v8js_v8object_class.cc v8js_variables.cc", "yes");
|
2013-09-26 15:23:32 +00:00
|
|
|
|
|
|
|
} else {
|
|
|
|
WARNING("v8js not enabled, headers or libs not found");
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|