]> granicus.if.org Git - php/commitdiff
Implement output verbosity seting for nmakefile
authorAnatol Belski <ab@php.net>
Fri, 20 Apr 2018 09:19:16 +0000 (11:19 +0200)
committerAnatol Belski <ab@php.net>
Fri, 20 Apr 2018 09:19:16 +0000 (11:19 +0200)
win32/build/config.w32
win32/build/config.w32.phpize.in
win32/build/confutils.js

index aff9be79b10bf228b8e57802bb1bf2e1ae105e6a..eb9e6211d8ae7a7fb799fce6f4dd822f47408be3 100644 (file)
@@ -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");
index f7b4031abc59fb2eb37e314aaa90bdfdd05cbfba..b650a3a67e70abb660da2a91bff7fffb2dc82621 100644 (file)
@@ -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");
index c19839b0ea1621f06e9074345f923838af5796dc..cde74a235714e8f48760e6e751ed405d76262c0a 100644 (file)
@@ -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 = "@";
+       }
+}
+