diff options
author | Anatol Belski <ab@php.net> | 2018-04-20 11:19:16 +0200 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2018-04-20 11:19:16 +0200 |
commit | 978cef04a536d9bffe084fc30bd319759198fce7 (patch) | |
tree | 2a5c18ee21f524addf34a937cef62c79020a702c /win32 | |
parent | c4f4cc95c76ebaefa4d85afe036ec658bfb9e5f5 (diff) | |
download | php-git-978cef04a536d9bffe084fc30bd319759198fce7.tar.gz |
Implement output verbosity seting for nmakefile
Diffstat (limited to 'win32')
-rw-r--r-- | win32/build/config.w32 | 3 | ||||
-rw-r--r-- | win32/build/config.w32.phpize.in | 3 | ||||
-rw-r--r-- | win32/build/confutils.js | 99 |
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 = "@"; + } +} + |