|  | @@ -480,7 +480,6 @@ cmGlobalUnixMakefileGenerator3
 | 
	
		
			
				|  |  |         (l->second->GetType() == cmTarget::SHARED_LIBRARY) ||
 | 
	
		
			
				|  |  |         (l->second->GetType() == cmTarget::MODULE_LIBRARY) ||
 | 
	
		
			
				|  |  |         (l->second->GetType() == cmTarget::OBJECT_LIBRARY) ||
 | 
	
		
			
				|  |  | -       (l->second->GetType() == cmTarget::INTERFACE_LIBRARY) ||
 | 
	
		
			
				|  |  |         (l->second->GetType() == cmTarget::UTILITY))
 | 
	
		
			
				|  |  |        {
 | 
	
		
			
				|  |  |        if(l->second->Target->IsImported())
 | 
	
	
		
			
				|  | @@ -658,7 +657,6 @@ cmGlobalUnixMakefileGenerator3
 | 
	
		
			
				|  |  |            (t->second->GetType() == cmTarget::SHARED_LIBRARY) ||
 | 
	
		
			
				|  |  |            (t->second->GetType() == cmTarget::MODULE_LIBRARY) ||
 | 
	
		
			
				|  |  |            (t->second->GetType() == cmTarget::OBJECT_LIBRARY) ||
 | 
	
		
			
				|  |  | -          (t->second->GetType() == cmTarget::INTERFACE_LIBRARY) ||
 | 
	
		
			
				|  |  |            (t->second->GetType() == cmTarget::UTILITY)))
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |          // Add a rule to build the target by name.
 | 
	
	
		
			
				|  | @@ -680,10 +678,6 @@ cmGlobalUnixMakefileGenerator3
 | 
	
		
			
				|  |  |                            t->second->GetName(), depends, commands,
 | 
	
		
			
				|  |  |                            true);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        if (t->second->GetType() == cmTarget::INTERFACE_LIBRARY)
 | 
	
		
			
				|  |  | -          {
 | 
	
		
			
				|  |  | -          continue;
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  |          // Add a fast rule to build the target
 | 
	
		
			
				|  |  |          std::string localName =
 | 
	
		
			
				|  |  |                            lg->GetRelativeTargetDirectory(*t->second->Target);
 | 
	
	
		
			
				|  | @@ -757,7 +751,6 @@ cmGlobalUnixMakefileGenerator3
 | 
	
		
			
				|  |  |          || (t->second->GetType() == cmTarget::SHARED_LIBRARY)
 | 
	
		
			
				|  |  |          || (t->second->GetType() == cmTarget::MODULE_LIBRARY)
 | 
	
		
			
				|  |  |          || (t->second->GetType() == cmTarget::OBJECT_LIBRARY)
 | 
	
		
			
				|  |  | -        || (t->second->GetType() == cmTarget::INTERFACE_LIBRARY)
 | 
	
		
			
				|  |  |          || (t->second->GetType() == cmTarget::UTILITY)))
 | 
	
		
			
				|  |  |        {
 | 
	
		
			
				|  |  |        std::string makefileName;
 | 
	
	
		
			
				|  | @@ -774,64 +767,53 @@ cmGlobalUnixMakefileGenerator3
 | 
	
		
			
				|  |  |          << localName << "\n\n";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        commands.clear();
 | 
	
		
			
				|  |  | +      makeTargetName = localName;
 | 
	
		
			
				|  |  | +      makeTargetName += "/depend";
 | 
	
		
			
				|  |  | +      commands.push_back(lg->GetRecursiveMakeCall
 | 
	
		
			
				|  |  | +                         (makefileName.c_str(),makeTargetName.c_str()));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      if(t->second->GetType() != cmTarget::INTERFACE_LIBRARY)
 | 
	
		
			
				|  |  | +      // add requires if we need it for this generator
 | 
	
		
			
				|  |  | +      if (needRequiresStep)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |          makeTargetName = localName;
 | 
	
		
			
				|  |  | -        makeTargetName += "/depend";
 | 
	
		
			
				|  |  | +        makeTargetName += "/requires";
 | 
	
		
			
				|  |  |          commands.push_back(lg->GetRecursiveMakeCall
 | 
	
		
			
				|  |  |                            (makefileName.c_str(),makeTargetName.c_str()));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      makeTargetName = localName;
 | 
	
		
			
				|  |  | +      makeTargetName += "/build";
 | 
	
		
			
				|  |  | +      commands.push_back(lg->GetRecursiveMakeCall
 | 
	
		
			
				|  |  | +                         (makefileName.c_str(),makeTargetName.c_str()));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        // add requires if we need it for this generator
 | 
	
		
			
				|  |  | -        if (needRequiresStep)
 | 
	
		
			
				|  |  | -          {
 | 
	
		
			
				|  |  | -          makeTargetName = localName;
 | 
	
		
			
				|  |  | -          makeTargetName += "/requires";
 | 
	
		
			
				|  |  | -          commands.push_back(lg->GetRecursiveMakeCall
 | 
	
		
			
				|  |  | -                            (makefileName.c_str(),makeTargetName.c_str()));
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | -        makeTargetName = localName;
 | 
	
		
			
				|  |  | -        makeTargetName += "/build";
 | 
	
		
			
				|  |  | -        commands.push_back(lg->GetRecursiveMakeCall
 | 
	
		
			
				|  |  | -                            (makefileName.c_str(),makeTargetName.c_str()));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        // Write the rule.
 | 
	
		
			
				|  |  | -        localName += "/all";
 | 
	
		
			
				|  |  | -        depends.clear();
 | 
	
		
			
				|  |  | +      // Write the rule.
 | 
	
		
			
				|  |  | +      localName += "/all";
 | 
	
		
			
				|  |  | +      depends.clear();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        std::string progressDir =
 | 
	
		
			
				|  |  | -          lg->GetMakefile()->GetHomeOutputDirectory();
 | 
	
		
			
				|  |  | -        progressDir += cmake::GetCMakeFilesDirectory();
 | 
	
		
			
				|  |  | +      std::string progressDir =
 | 
	
		
			
				|  |  | +        lg->GetMakefile()->GetHomeOutputDirectory();
 | 
	
		
			
				|  |  | +      progressDir += cmake::GetCMakeFilesDirectory();
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +        cmOStringStream progCmd;
 | 
	
		
			
				|  |  | +        progCmd << "$(CMAKE_COMMAND) -E cmake_progress_report ";
 | 
	
		
			
				|  |  | +        // all target counts
 | 
	
		
			
				|  |  | +        progCmd << lg->Convert(progressDir.c_str(),
 | 
	
		
			
				|  |  | +                                cmLocalGenerator::FULL,
 | 
	
		
			
				|  |  | +                                cmLocalGenerator::SHELL);
 | 
	
		
			
				|  |  | +        progCmd << " ";
 | 
	
		
			
				|  |  | +        std::vector<unsigned long>& progFiles =
 | 
	
		
			
				|  |  | +          this->ProgressMap[t->second->Target].Marks;
 | 
	
		
			
				|  |  | +        for (std::vector<unsigned long>::iterator i = progFiles.begin();
 | 
	
		
			
				|  |  | +              i != progFiles.end(); ++i)
 | 
	
		
			
				|  |  |            {
 | 
	
		
			
				|  |  | -          cmOStringStream progCmd;
 | 
	
		
			
				|  |  | -          progCmd << "$(CMAKE_COMMAND) -E cmake_progress_report ";
 | 
	
		
			
				|  |  | -          // all target counts
 | 
	
		
			
				|  |  | -          progCmd << lg->Convert(progressDir.c_str(),
 | 
	
		
			
				|  |  | -                                  cmLocalGenerator::FULL,
 | 
	
		
			
				|  |  | -                                  cmLocalGenerator::SHELL);
 | 
	
		
			
				|  |  | -          progCmd << " ";
 | 
	
		
			
				|  |  | -          std::vector<unsigned long>& progFiles =
 | 
	
		
			
				|  |  | -            this->ProgressMap[t->second->Target].Marks;
 | 
	
		
			
				|  |  | -          for (std::vector<unsigned long>::iterator i = progFiles.begin();
 | 
	
		
			
				|  |  | -                i != progFiles.end(); ++i)
 | 
	
		
			
				|  |  | -            {
 | 
	
		
			
				|  |  | -            progCmd << " " << *i;
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -          commands.push_back(progCmd.str());
 | 
	
		
			
				|  |  | +          progCmd << " " << *i;
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | -        progressDir = "Built target ";
 | 
	
		
			
				|  |  | -        progressDir += t->second->GetName();
 | 
	
		
			
				|  |  | -        lg->AppendEcho(commands,progressDir.c_str());
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -      else
 | 
	
		
			
				|  |  | -        {
 | 
	
		
			
				|  |  | -        depends.clear();
 | 
	
		
			
				|  |  | +        commands.push_back(progCmd.str());
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +      progressDir = "Built target ";
 | 
	
		
			
				|  |  | +      progressDir += t->second->GetName();
 | 
	
		
			
				|  |  | +      lg->AppendEcho(commands,progressDir.c_str());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |        this->AppendGlobalTargetDepends(depends,*t->second->Target);
 | 
	
		
			
				|  |  | -      if(depends.empty() && this->EmptyRuleHackDepends != "")
 | 
	
		
			
				|  |  | -        {
 | 
	
		
			
				|  |  | -        depends.push_back(this->EmptyRuleHackDepends);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  |        lg->WriteMakeRule(ruleFileStream, "All Build rule for target.",
 | 
	
		
			
				|  |  |                          localName.c_str(), depends, commands, true);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -847,7 +829,7 @@ cmGlobalUnixMakefileGenerator3
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        // Write the rule.
 | 
	
		
			
				|  |  |        commands.clear();
 | 
	
		
			
				|  |  | -      std::string progressDir = lg->GetMakefile()->GetHomeOutputDirectory();
 | 
	
		
			
				|  |  | +      progressDir = lg->GetMakefile()->GetHomeOutputDirectory();
 | 
	
		
			
				|  |  |        progressDir += cmake::GetCMakeFilesDirectory();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        {
 |