diff --git a/Source/cmMakefileExecutableTargetGenerator.cxx b/Source/cmMakefileExecutableTargetGenerator.cxx index 17b2578e9..195a34b98 100644 --- a/Source/cmMakefileExecutableTargetGenerator.cxx +++ b/Source/cmMakefileExecutableTargetGenerator.cxx @@ -329,18 +329,6 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink) cmLocalGenerator::UNCHANGED)); } - // Add a command to remove any existing files for this executable. - std::vector commands1; - this->LocalGenerator->AppendCleanCommand(commands1, exeCleanFiles, - *this->Target, "target"); - this->LocalGenerator->CreateCDCommand - (commands1, - this->Makefile->GetStartOutputDirectory(), - this->Makefile->GetHomeOutputDirectory()); - - commands.insert(commands.end(), commands1.begin(), commands1.end()); - commands1.clear(); - // Add the pre-build and pre-link rules building but not when relinking. if(!relink) { @@ -356,6 +344,7 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink) linkRuleVar += "_LINK_EXECUTABLE"; std::string linkRule = this->Makefile->GetRequiredDefinition(linkRuleVar.c_str()); + std::vector commands1; cmSystemTools::ExpandListArgument(linkRule, commands1); if(this->Target->GetPropertyAsBool("ENABLE_EXPORTS")) { diff --git a/Source/cmMakefileLibraryTargetGenerator.cxx b/Source/cmMakefileLibraryTargetGenerator.cxx index a2aedd56e..8a2ade89c 100644 --- a/Source/cmMakefileLibraryTargetGenerator.cxx +++ b/Source/cmMakefileLibraryTargetGenerator.cxx @@ -643,16 +643,20 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules } #endif - // Add a command to remove any existing files for this library. std::vector commands1; - this->LocalGenerator->AppendCleanCommand(commands1, libCleanFiles, - *this->Target, "target"); - this->LocalGenerator->CreateCDCommand - (commands1, - this->Makefile->GetStartOutputDirectory(), - this->Makefile->GetHomeOutputDirectory()); - commands.insert(commands.end(), commands1.begin(), commands1.end()); - commands1.clear(); + // Add a command to remove any existing files for this library. + // for static libs only + if(this->Target->GetType() == cmTarget::STATIC_LIBRARY) + { + this->LocalGenerator->AppendCleanCommand(commands1, libCleanFiles, + *this->Target, "target"); + this->LocalGenerator->CreateCDCommand + (commands1, + this->Makefile->GetStartOutputDirectory(), + this->Makefile->GetHomeOutputDirectory()); + commands.insert(commands.end(), commands1.begin(), commands1.end()); + commands1.clear(); + } // Add the pre-build and pre-link rules building but not when relinking. if(!relink)