Makefiles: Fix silencing of nested calls for GNU make 4.3

Since GNU make 4.3, `.SILENT:` no longer causes nested `$(MAKE)` calls
to get `-s` implicitly.  Add the `-s` flag explicitly on such calls to
suppress messages about Entering/Leaving directories.

Fixes: #20487
This commit is contained in:
Brad King 2020-03-23 08:51:15 -04:00
parent b7d8c91822
commit d6d9da5178

View File

@ -712,6 +712,10 @@ void cmLocalUnixMakefileGenerator3::WriteSpecialTargetsTop(
;
/* clang-format on */
} else {
makefileStream << "# Command-line flag to silence nested $(MAKE).\n"
"$(VERBOSE)MAKESILENT = -s\n"
"\n";
// Write special target to silence make output. This must be after
// the default target in case VERBOSE is set (which changes the
// name). The setting of CMAKE_VERBOSE_MAKEFILE to ON will cause a
@ -1910,7 +1914,7 @@ std::string cmLocalUnixMakefileGenerator3::GetRecursiveMakeCall(
{
// Call make on the given file.
std::string cmd = cmStrCat(
"$(MAKE) -f ",
"$(MAKE) $(MAKESILENT) -f ",
this->ConvertToOutputFormat(makefile, cmOutputConverter::SHELL), ' ');
cmGlobalUnixMakefileGenerator3* gg =