summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalUnixMakefileGenerator.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmLocalUnixMakefileGenerator.cxx')
-rw-r--r--Source/cmLocalUnixMakefileGenerator.cxx17
1 files changed, 15 insertions, 2 deletions
diff --git a/Source/cmLocalUnixMakefileGenerator.cxx b/Source/cmLocalUnixMakefileGenerator.cxx
index a6aaaf9..b34fab7 100644
--- a/Source/cmLocalUnixMakefileGenerator.cxx
+++ b/Source/cmLocalUnixMakefileGenerator.cxx
@@ -2692,8 +2692,21 @@ void cmLocalUnixMakefileGenerator::OutputMakeRules(std::ostream& fout)
"",
cmd.c_str());
}
- this->OutputMakeRule(fout, "installation", "install", "",
- "$(CMAKE_COMMAND) -P cmake_install.cmake");
+ if(m_Makefile->GetDefinition("CMake_BINARY_DIR"))
+ {
+ // We are building CMake itself. We cannot use the original
+ // executable to install over itself.
+ std::string rule = m_Makefile->GetDefinition("EXECUTABLE_OUTPUT_PATH");
+ rule += "/cmake";
+ rule = cmSystemTools::ConvertToOutputPath(rule.c_str());
+ rule += " -P cmake_install.cmake";
+ this->OutputMakeRule(fout, "installation", "install", "", rule.c_str());
+ }
+ else
+ {
+ this->OutputMakeRule(fout, "installation", "install", "",
+ "$(CMAKE_COMMAND) -P cmake_install.cmake");
+ }
}