From 94847d0aa74a0964a461f9f42d319815fb30becf Mon Sep 17 00:00:00 2001 From: Ken Martin Date: Wed, 9 Jun 2004 18:56:00 -0400 Subject: [PATCH] BUG#891: When building CMake itself, use the new cmake to install so that the current cmake can be overwritten. --- Source/cmLocalUnixMakefileGenerator.cxx | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/Source/cmLocalUnixMakefileGenerator.cxx b/Source/cmLocalUnixMakefileGenerator.cxx index a6aaaf9c9..b34fab7ef 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"); + } }