From 378c047ae30184bdcefdf767fb49538655ee2191 Mon Sep 17 00:00:00 2001 From: Oliver Schneider Date: Fri, 13 Nov 2020 22:27:45 +0100 Subject: Makefiles: Explicitly tell 'make' tool what Makefile name to use CMake did not specify the filename of the Makefile generated by it. Due to GNU make precedence rules this means that the presence of a GNUmakefile or makefile would take precedence over the generated Makefile. This is only relevant for in-source builds and only whenever an alternative makefile by the above mentioned names exists. This patch adds the (seemingly universal) `-f` switch and the (hardcoded) filename (it is now hardcoded separately in these two files): - cmLocalUnixMakefileGenerator3.cxx - cmGlobalUnixMakefileGenerator3.cxx Fixes: #21418 --- Source/cmGlobalUnixMakefileGenerator3.cxx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Source/cmGlobalUnixMakefileGenerator3.cxx b/Source/cmGlobalUnixMakefileGenerator3.cxx index c6c540b..9c3a533 100644 --- a/Source/cmGlobalUnixMakefileGenerator3.cxx +++ b/Source/cmGlobalUnixMakefileGenerator3.cxx @@ -589,6 +589,11 @@ cmGlobalUnixMakefileGenerator3::GenerateBuildCommand( } makeCommand.Add(this->SelectMakeProgram(makeProgram)); + // Explicitly tell the make tool to use the Makefile written by + // cmLocalUnixMakefileGenerator3::WriteLocalMakefile + makeCommand.Add("-f"); + makeCommand.Add("Makefile"); + if (jobs != cmake::NO_BUILD_PARALLEL_LEVEL) { if (jobs == cmake::DEFAULT_BUILD_PARALLEL_LEVEL) { makeCommand.Add("-j"); -- cgit v0.12