ARG_ENABLE("opcache", "whether to enable Zend OPcache support", "yes");
-if (PHP_OPCACHE != "no") {
+var PHP_OPCACHE_PGO = false;
- PHP_PGI = "no"; // workaround
- PHP_PGO = "no"; // workaround
+if (PHP_OPCACHE != "no") {
EXTENSION('opcache', "\
ZendAccelerator.c \
// CFLAGS, LDFLAGS and BUILD_DIR are defined
// Add compiler and link flags if PGO options are selected
if (PHP_DEBUG != "yes" && PHP_PGI == "yes") {
- ADD_FLAG('DLL_LDFLAGS', "/LTCG:PGINSTRUMENT");
ADD_FLAG("STATIC_EXT_CFLAGS", "/GL /O2");
DEFINE("PGOPGD_DIR", "$(BUILD_DIR)");
}
else if (PHP_DEBUG != "yes" && PHP_PGO != "no") {
- ADD_FLAG('DLL_LDFLAGS', "/LTCG:PGUPDATE");
ADD_FLAG("STATIC_EXT_CFLAGS", "/GL /O2");
DEFINE("PGOPGD_DIR", ((PHP_PGO.length == 0 || PHP_PGO == "yes") ? "$(BUILD_DIR)" : PHP_PGO));
}
return true;\r
}\r
\r
+var static_pgo_enabled = false;\r
+\r
function EXTENSION(extname, file_list, shared, cflags, dllname, obj_dir)\r
{\r
var objs = null;\r
ADD_FLAG("STATIC_EXT_LIBS", "$(LIBS_" + EXT + ")");\r
ADD_FLAG("STATIC_EXT_LDFLAGS", "$(LDFLAGS_" + EXT + ")");\r
ADD_FLAG("STATIC_EXT_CFLAGS", "$(CFLAGS_" + EXT + ")");\r
+ if (is_pgo_desired(extname) && (PHP_PGI == "yes" || PHP_PGO != "no")) {\r
+ if (!static_pgo_enabled) {\r
+ if (PHP_DEBUG != "yes" && PHP_PGI == "yes") {\r
+ ADD_FLAG('STATIC_EXT_LDFLAGS', "/LTCG:PGINSTRUMENT");\r
+ }\r
+ else if (PHP_DEBUG != "yes" && PHP_PGO != "no") {\r
+ ADD_FLAG('STATIC_EXT_LDFLAGS', "/LTCG:PGUPDATE");\r
+ }\r
+\r
+ ADD_FLAG("STATIC_EXT_CFLAGS", "/GL /O2");\r
+ static_pgo_enabled = true;\r
+ }\r
+ }\r
\r
/* find the header that declares the module pointer,\r
* so we can include it in internal_functions.c */\r