summaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2018-04-20 11:19:16 +0200
committerAnatol Belski <ab@php.net>2018-04-20 11:19:16 +0200
commit978cef04a536d9bffe084fc30bd319759198fce7 (patch)
tree2a5c18ee21f524addf34a937cef62c79020a702c /win32
parentc4f4cc95c76ebaefa4d85afe036ec658bfb9e5f5 (diff)
downloadphp-git-978cef04a536d9bffe084fc30bd319759198fce7.tar.gz
Implement output verbosity seting for nmakefile
Diffstat (limited to 'win32')
-rw-r--r--win32/build/config.w323
-rw-r--r--win32/build/config.w32.phpize.in3
-rw-r--r--win32/build/confutils.js99
3 files changed, 72 insertions, 33 deletions
diff --git a/win32/build/config.w32 b/win32/build/config.w32
index aff9be79b1..eb9e6211d8 100644
--- a/win32/build/config.w32
+++ b/win32/build/config.w32
@@ -3,6 +3,9 @@
// "Master" config file; think of it as a configure.ac
// equivalent.
+ARG_WITH("verbosity", "Output verbosity, 0-2.", "1");
+setup_verbosity();
+
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");
diff --git a/win32/build/config.w32.phpize.in b/win32/build/config.w32.phpize.in
index f7b4031abc..b650a3a67e 100644
--- a/win32/build/config.w32.phpize.in
+++ b/win32/build/config.w32.phpize.in
@@ -3,6 +3,9 @@
// "Master" config file; think of it as a configure.in
// equivalent.
+ARG_WITH("verbosity", "Output verbosity, 0-2.", "1");
+setup_verbosity();
+
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");
diff --git a/win32/build/confutils.js b/win32/build/confutils.js
index c19839b0ea..cde74a2357 100644
--- a/win32/build/confutils.js
+++ b/win32/build/confutils.js
@@ -41,6 +41,9 @@ var COMPILER_NAME = "unknown";
var PHP_OBJECT_OUT_DIR = "";
var PHP_CONFIG_PROFILE = "no";
var PHP_SANITIZER = "no";
+var VERBOSITY = 0;
+var CMD_MOD1 = "@";
+var CMD_MOD2 = "@";
var PHP_TEST_INI_PATH = "";
var PHP_TEST_INI = "";
@@ -1061,10 +1064,10 @@ function generate_version_info_manifest(makefiletarget)
if (MODE_PHPIZE) {
MFO.WriteLine("$(BUILD_DIR)\\" + manifest_name + ": " + PHP_DIR + "\\build\\default.manifest");
- MFO.WriteLine("\t@copy " + PHP_DIR + "\\build\\default.manifest $(BUILD_DIR)\\" + makefiletarget + ".manifest >nul");
+ MFO.WriteLine("\t" + CMD_MOD2 + "copy " + PHP_DIR + "\\build\\default.manifest $(BUILD_DIR)\\" + makefiletarget + ".manifest >nul");
} else {
MFO.WriteLine("$(BUILD_DIR)\\" + manifest_name + ": win32\\build\\default.manifest");
- MFO.WriteLine("\t@copy $(PHP_SRC_DIR)\\win32\\build\\default.manifest $(BUILD_DIR)\\" + makefiletarget + ".manifest >nul");
+ MFO.WriteLine("\t" + CMD_MOD2 + "copy $(PHP_SRC_DIR)\\win32\\build\\default.manifest $(BUILD_DIR)\\" + makefiletarget + ".manifest >nul");
}
return manifest_name;
@@ -1143,7 +1146,7 @@ function generate_version_info_resource(makefiletarget, basename, creditspath, s
*/
if (FSO.FileExists(creditspath + '\\template.rc')) {
MFO.WriteLine("$(BUILD_DIR)\\" + resname + ": " + creditspath + "\\template.rc");
- MFO.WriteLine("\t$(RC) /nologo $(BASE_INCLUDES) /fo $(BUILD_DIR)\\" + resname + logo + debug +
+ MFO.WriteLine("\t" + CMD_MOD1 + "$(RC) /nologo $(BASE_INCLUDES) /fo $(BUILD_DIR)\\" + resname + logo + debug +
' /d FILE_DESCRIPTION="\\"' + res_desc + '\\"" /d FILE_NAME="\\"' +
makefiletarget + '\\"" /d PRODUCT_NAME="\\"' + res_prod_name +
versioning + '\\"" /d THANKS_GUYS="\\"' + thanks + '\\"" ' +
@@ -1152,14 +1155,14 @@ function generate_version_info_resource(makefiletarget, basename, creditspath, s
}
if (MODE_PHPIZE) {
MFO.WriteLine("$(BUILD_DIR)\\" + resname + ": $(PHP_DIR)\\build\\template.rc");
- MFO.WriteLine("\t$(RC) /nologo $(BASE_INCLUDES) /I $(PHP_DIR)/include /n /fo $(BUILD_DIR)\\" + resname + logo + debug +
+ MFO.WriteLine("\t" + CMD_MOD1 + "$(RC) /nologo $(BASE_INCLUDES) /I $(PHP_DIR)/include /n /fo $(BUILD_DIR)\\" + resname + logo + debug +
' /d FILE_DESCRIPTION="\\"' + res_desc + '\\"" /d FILE_NAME="\\"'
+ makefiletarget + '\\"" /d URL="\\"' + project_url +
'\\"" /d INTERNAL_NAME="\\"' + internal_name + versioning +
'\\"" /d THANKS_GUYS="\\"' + thanks + '\\"" $(PHP_DIR)\\build\\template.rc');
} else {
MFO.WriteLine("$(BUILD_DIR)\\" + resname + ": win32\\build\\template.rc");
- MFO.WriteLine("\t$(RC) /nologo $(BASE_INCLUDES) /n /fo $(BUILD_DIR)\\" + resname + logo + debug +
+ MFO.WriteLine("\t" + CMD_MOD1 + "$(RC) /nologo $(BASE_INCLUDES) /n /fo $(BUILD_DIR)\\" + resname + logo + debug +
' /d FILE_DESCRIPTION="\\"' + res_desc + '\\"" /d FILE_NAME="\\"'
+ makefiletarget + '\\"" /d URL="\\"' + project_url +
'\\"" /d INTERNAL_NAME="\\"' + internal_name + versioning +
@@ -1224,7 +1227,7 @@ function SAPI(sapiname, file_list, makefiletarget, cflags, obj_dir)
manifest_name = generate_version_info_manifest(makefiletarget);
MFO.WriteLine(makefiletarget + ": $(BUILD_DIR)\\" + makefiletarget);
- MFO.WriteLine("\t@echo SAPI " + sapiname_for_printing + " build complete");
+ MFO.WriteLine("\t" + CMD_MOD2 + "echo SAPI " + sapiname_for_printing + " build complete");
if (MODE_PHPIZE) {
MFO.WriteLine("$(BUILD_DIR)\\" + makefiletarget + ": $(DEPS_" + SAPI + ") $(" + SAPI + "_GLOBAL_OBJS) $(PHPLIB) $(BUILD_DIR)\\" + resname + " $(BUILD_DIR)\\" + manifest_name);
} else {
@@ -1234,13 +1237,13 @@ function SAPI(sapiname, file_list, makefiletarget, cflags, obj_dir)
var is_lib = makefiletarget.match(new RegExp("\\.lib$"));
if (makefiletarget.match(new RegExp("\\.dll$"))) {
ldflags = "/dll $(LDFLAGS)";
- manifest = "-@$(_VC_MANIFEST_EMBED_DLL)";
+ manifest = "-" + CMD_MOD2 + "$(_VC_MANIFEST_EMBED_DLL)";
} else if (is_lib) {
ldflags = "$(ARFLAGS)";
- ld = "@$(MAKE_LIB)";
+ ld = CMD_MOD1 + "$(MAKE_LIB)";
} else {
ldflags = "$(LDFLAGS)";
- manifest = "-@$(_VC_MANIFEST_EMBED_EXE)";
+ manifest = "-" + CMD_MOD2 + "$(_VC_MANIFEST_EMBED_EXE)";
}
if (PHP_SANITIZER == "yes") {
@@ -1267,14 +1270,14 @@ function SAPI(sapiname, file_list, makefiletarget, cflags, obj_dir)
if (ld) {
MFO.WriteLine("\t" + ld + " /nologo /out:$(BUILD_DIR)\\" + makefiletarget + " " + ldflags + " $(" + SAPI + "_GLOBAL_OBJS_RESP) $(PHPLIB) $(ARFLAGS_" + SAPI + ") $(LIBS_" + SAPI + ") $(BUILD_DIR)\\" + resname);
} else {
- ld = '@"$(LINK)"';
+ ld = CMD_MOD1 + '"$(LINK)"';
MFO.WriteLine("\t" + ld + " /nologo " + " $(" + SAPI + "_GLOBAL_OBJS_RESP) $(PHPLIB) $(LIBS_" + SAPI + ") $(BUILD_DIR)\\" + resname + " /out:$(BUILD_DIR)\\" + makefiletarget + " " + ldflags + " $(LDFLAGS_" + SAPI + ")");
}
} else {
if (ld) {
MFO.WriteLine("\t" + ld + " /nologo /out:$(BUILD_DIR)\\" + makefiletarget + " " + ldflags + " $(" + SAPI + "_GLOBAL_OBJS_RESP) $(BUILD_DIR)\\$(PHPLIB) $(ARFLAGS_" + SAPI + ") $(LIBS_" + SAPI + ") $(BUILD_DIR)\\" + resname);
} else {
- ld = '@"$(LINK)"';
+ ld = CMD_MOD1 + '"$(LINK)"';
MFO.WriteLine("\t" + ld + " /nologo " + " $(" + SAPI + "_GLOBAL_OBJS_RESP) $(BUILD_DIR)\\$(PHPLIB) $(LIBS_" + SAPI + ") $(BUILD_DIR)\\" + resname + " /out:$(BUILD_DIR)\\" + makefiletarget + " " + ldflags + " $(LDFLAGS_" + SAPI + ")");
}
}
@@ -1452,7 +1455,7 @@ function EXTENSION(extname, file_list, shared, cflags, dllname, obj_dir)
var libname = dllname.substring(0, dllname.length-4) + ".lib";
var resname = generate_version_info_resource(dllname, extname, configure_module_dirname, false);
- var ld = '@"$(LINK)"';
+ var ld = CMD_MOD1 + '"$(LINK)"';
var manifest_name = generate_version_info_manifest(dllname);
ldflags = "";
@@ -1479,7 +1482,7 @@ function EXTENSION(extname, file_list, shared, cflags, dllname, obj_dir)
MFO.WriteLine("$(BUILD_DIR)\\" + dllname + ": $(DEPS_" + EXT + ") $(" + EXT + "_GLOBAL_OBJS) $(BUILD_DIR)\\$(PHPLIB) $(BUILD_DIR)\\" + resname + " $(BUILD_DIR)\\" + manifest_name);
MFO.WriteLine("\t" + ld + " $(" + EXT + "_GLOBAL_OBJS_RESP) $(BUILD_DIR)\\$(PHPLIB) $(LIBS_" + EXT + ") $(LIBS) $(BUILD_DIR)\\" + resname + " /out:$(BUILD_DIR)\\" + dllname + ldflags + " $(DLL_LDFLAGS) $(LDFLAGS) $(LDFLAGS_" + EXT + ")");
}
- MFO.WriteLine("\t-@$(_VC_MANIFEST_EMBED_DLL)");
+ MFO.WriteLine("\t-" + CMD_MOD2 + "$(_VC_MANIFEST_EMBED_DLL)");
MFO.WriteBlankLines(1);
if (configure_module_dirname.match("pecl")) {
@@ -1488,7 +1491,7 @@ function EXTENSION(extname, file_list, shared, cflags, dllname, obj_dir)
ADD_FLAG("EXT_TARGETS", dllname);
}
MFO.WriteLine(dllname + ": $(BUILD_DIR)\\" + dllname);
- MFO.WriteLine("\t@echo EXT " + extname + " build complete");
+ MFO.WriteLine("\t" + CMD_MOD2 + "echo EXT " + extname + " build complete");
MFO.WriteBlankLines(1);
DEFINE('CFLAGS_' + EXT + '_OBJ', '$(CFLAGS_' + EXT + ')');
@@ -1729,14 +1732,14 @@ function ADD_SOURCES(dir, file_list, target, obj_dir)
var filename = _tmp.pop();
obj = filename.replace(re, ".obj");
- MFO.WriteLine("\t@$(CC) $(" + flags + ") $(CFLAGS) $(" + bd_flags_name + ") /c " + dir + "\\" + src + " /Fo" + sub_build + d + obj);
+ MFO.WriteLine("\t" + CMD_MOD1 + "$(CC) $(" + flags + ") $(CFLAGS) $(" + bd_flags_name + ") /c " + dir + "\\" + src + " /Fo" + sub_build + d + obj);
if ("clang" == PHP_ANALYZER) {
- MFO.WriteLine("\t@\"$(CLANG_CL)\" " + analyzer_base_args + " $(" + flags + "_ANALYZER) $(CFLAGS_ANALYZER) $(" + bd_flags_name + "_ANALYZER) " + dir + "\\" + src);
+ MFO.WriteLine("\t" + CMD_MOD1 + "\"$(CLANG_CL)\" " + analyzer_base_args + " $(" + flags + "_ANALYZER) $(CFLAGS_ANALYZER) $(" + bd_flags_name + "_ANALYZER) " + dir + "\\" + src);
} else if ("cppcheck" == PHP_ANALYZER) {
- MFO.WriteLine("\t\"@$(CPPCHECK)\" " + analyzer_base_args + " $(" + flags + "_ANALYZER) $(CFLAGS_ANALYZER) $(" + bd_flags_name + "_ANALYZER) " + analyzer_base_flags + " " + dir + "\\" + src);
+ MFO.WriteLine("\t\"" + CMD_MOD1 + "$(CPPCHECK)\" " + analyzer_base_args + " $(" + flags + "_ANALYZER) $(CFLAGS_ANALYZER) $(" + bd_flags_name + "_ANALYZER) " + analyzer_base_flags + " " + dir + "\\" + src);
}else if (PHP_ANALYZER == "pvs") {
- MFO.WriteLine("\t@\"$(PVS_STUDIO)\" --cl-params $(" + flags + ") $(CFLAGS) $(" + bd_flags_name + ") /c " + dir + "\\" + src + " --source-file " + dir + "\\" + src
+ MFO.WriteLine("\t" + CMD_MOD1 + "\"$(PVS_STUDIO)\" --cl-params $(" + flags + ") $(CFLAGS) $(" + bd_flags_name + ") /c " + dir + "\\" + src + " --source-file " + dir + "\\" + src
+ " --cfg PVS-Studio.conf --errors-off \"V122 V117 V111\" ");
}
}
@@ -1747,7 +1750,7 @@ function ADD_SOURCES(dir, file_list, target, obj_dir)
src_line += dir + "\\" + file_list[srcs_by_dir[k][j]] + " ";
}
- MFO.WriteLine("\t$(CC) $(" + flags + ") $(CFLAGS) /Fo" + sub_build + d + " $(" + bd_flags_name + ") /c " + src_line);
+ MFO.WriteLine("\t" + CMD_MOD1 + "$(CC) $(" + flags + ") $(CFLAGS) /Fo" + sub_build + d + " $(" + bd_flags_name + ") /c " + src_line);
if ("clang" == PHP_ANALYZER) {
MFO.WriteLine("\t\"$(CLANG_CL)\" " + analyzer_base_args + " $(" + flags + "_ANALYZER) $(CFLAGS_ANALYZER) $(" + bd_flags_name + "_ANALYZER) " + src_line);
@@ -2538,38 +2541,38 @@ function generate_makefile()
MF.Write(TF.ReadAll());
MF.WriteLine("build-headers:");
- MF.WriteLine(" @if not exist $(BUILD_DIR_DEV)\\include mkdir $(BUILD_DIR_DEV)\\include >nul");
- MF.WriteLine(" @for %D in ($(INSTALL_HEADERS_DIR)) do @if not exist $(BUILD_DIR_DEV)\\include\\%D mkdir $(BUILD_DIR_DEV)\\include\\%D >nul");
+ MF.WriteLine(" " + CMD_MOD2 + "if not exist $(BUILD_DIR_DEV)\\include mkdir $(BUILD_DIR_DEV)\\include >nul");
+ MF.WriteLine(" " + CMD_MOD2 + "for %D in ($(INSTALL_HEADERS_DIR)) do " + CMD_MOD2 + "if not exist $(BUILD_DIR_DEV)\\include\\%D mkdir $(BUILD_DIR_DEV)\\include\\%D >nul");
for (i in headers_install) {
if (headers_install[i][2] != "") {
- MF.WriteLine(" @if not exist $(BUILD_DIR_DEV)\\include\\" + headers_install[i][2] + " mkdir $(BUILD_DIR_DEV)\\include\\" +
+ MF.WriteLine(" " + CMD_MOD2 + "if not exist $(BUILD_DIR_DEV)\\include\\" + headers_install[i][2] + " mkdir $(BUILD_DIR_DEV)\\include\\" +
headers_install[i][2] + ">nul");
- MF.WriteLine(" @copy " + headers_install[i][0] + " " + "$(BUILD_DIR_DEV)\\include\\" + headers_install[i][2] + " /y >nul");
+ MF.WriteLine(" " + CMD_MOD2 + "copy " + headers_install[i][0] + " " + "$(BUILD_DIR_DEV)\\include\\" + headers_install[i][2] + " /y >nul");
}
}
- MF.WriteLine(" @for %D in ($(INSTALL_HEADERS_DIR)) do @copy %D*.h $(BUILD_DIR_DEV)\\include\\%D /y >nul");
+ MF.WriteLine(" " + CMD_MOD2 + "for %D in ($(INSTALL_HEADERS_DIR)) do " + CMD_MOD2 + "copy %D*.h $(BUILD_DIR_DEV)\\include\\%D /y >nul");
if (MODE_PHPIZE) {
MF.WriteBlankLines(1);
MF.WriteLine("build-bins:");
for (var i in extensions_enabled) {
var lib = "php_" + extensions_enabled[i][0] + ".lib";
var dll = "php_" + extensions_enabled[i][0] + ".dll";
- MF.WriteLine(" @copy $(BUILD_DIR)\\" + lib + " $(BUILD_DIR_DEV)\\lib");
- MF.WriteLine(" @if not exist $(PHP_PREFIX) mkdir $(PHP_PREFIX) >nul");
- MF.WriteLine(" @if not exist $(PHP_PREFIX)\\ext mkdir $(PHP_PREFIX)\\ext >nul");
- MF.WriteLine(" @copy $(BUILD_DIR)\\" + dll + " $(PHP_PREFIX)\\ext");
+ MF.WriteLine(" " + CMD_MOD2 + "copy $(BUILD_DIR)\\" + lib + " $(BUILD_DIR_DEV)\\lib");
+ MF.WriteLine(" " + CMD_MOD2 + "if not exist $(PHP_PREFIX) mkdir $(PHP_PREFIX) >nul");
+ MF.WriteLine(" " + CMD_MOD2 + "if not exist $(PHP_PREFIX)\\ext mkdir $(PHP_PREFIX)\\ext >nul");
+ MF.WriteLine(" " + CMD_MOD2 + "copy $(BUILD_DIR)\\" + dll + " $(PHP_PREFIX)\\ext");
}
} else {
MF.WriteBlankLines(1);
MF.WriteLine("build-ext-libs:");
- MF.WriteLine(" @if not exist $(BUILD_DIR_DEV)\\lib mkdir $(BUILD_DIR_DEV)\\lib >nul");
+ MF.WriteLine(" " + CMD_MOD2 + "if not exist $(BUILD_DIR_DEV)\\lib mkdir $(BUILD_DIR_DEV)\\lib >nul");
for (var i in extensions_enabled) {
var lib;
lib = "php_" + extensions_enabled[i][0] + "*.lib";
if ('shared' == extensions_enabled[i][1]) {
- MF.WriteLine(" @if exist $(BUILD_DIR)\\" + lib + " copy $(BUILD_DIR)\\" + lib + " $(BUILD_DIR_DEV)\\lib");
+ MF.WriteLine(" " + CMD_MOD2 + "if exist $(BUILD_DIR)\\" + lib + " copy $(BUILD_DIR)\\" + lib + " $(BUILD_DIR_DEV)\\lib");
}
}
}
@@ -2593,12 +2596,12 @@ function generate_makefile()
}
}
MF.WriteLine("set-tmp-env:");
- MF.WriteLine(" @set PATH=" + extra_path + ";$(PATH)");
+ MF.WriteLine(" " + CMD_MOD2 + "set PATH=" + extra_path + ";$(PATH)");
MF.WriteBlankLines(2);
MF.WriteLine("dump-tmp-env: set-tmp-env");
- MF.WriteLine(" @set");
+ MF.WriteLine(" " + CMD_MOD2 + "set");
MF.WriteBlankLines(2);
@@ -3159,7 +3162,7 @@ function toolset_setup_codegen_arch()
function toolset_setup_linker()
{
if (VS_TOOLSET) {
- return PATH_PROG('link', WshShell.Environment("Process").Item("PATH"));
+ return PATH_PROG('link', null);
} else if (CLANG_TOOLSET) {
//return PATH_PROG('lld', WshShell.Environment("Process").Item("PATH"), "LINK");
return PATH_PROG('link', WshShell.Environment("Process").Item("PATH"));
@@ -3645,3 +3648,33 @@ function add_asan_opts(cflags_name, libs_name, ldflags_name)
}
}
+function setup_verbosity()
+{
+ if ("no" != PHP_VERBOSITY) {
+ if ("yes" == PHP_VERBOSITY) {
+ VERBOSITY = 1;
+ if (1 == VERBOSITY) {
+ CMD_MOD1 = "";
+ }
+ } else {
+ var _tmp = parseInt(PHP_VERBOSITY);
+ if (0 != _tmp && 1 != _tmp && 2 != _tmp) {
+ ERROR("Unsupported verbosity level '" + PHP_VERBOSITY + "'");
+ }
+ VERBOSITY = _tmp;
+
+ if (1 == VERBOSITY) {
+ CMD_MOD1 = "";
+ }
+ if (2 == VERBOSITY) {
+ CMD_MOD1 = "";
+ CMD_MOD2 = "";
+ }
+ }
+ } else {
+ VERBOSITY = 0;
+ CMD_MOD1 = "@";
+ CMD_MOD2 = "@";
+ }
+}
+