浏览代码

ENH: remove one call to make, and clean echo stuff a bit

Bill Hoffman 24 年之前
父节点
当前提交
d1fb9d757f
共有 2 个文件被更改,包括 37 次插入39 次删除
  1. 8 5
      Source/cmNMakeMakefileGenerator.cxx
  2. 29 34
      Source/cmUnixMakefileGenerator.cxx

+ 8 - 5
Source/cmNMakeMakefileGenerator.cxx

@@ -309,7 +309,8 @@ void cmNMakeMakefileGenerator::OutputMakeRule(std::ostream& fout,
     {
     replace = ShortPathCommand(command);
     m_Makefile->ExpandVariablesInString(replace);
-    if(replace[0] != '-' && replace.find("echo") != 0)
+    if(replace[0] != '-' && replace.find("echo") != 0 
+       && replace.find("$(MAKE)") != 0)
       {
       fout << "\t" << "echo " << replace.c_str() << "\n";
       }
@@ -319,7 +320,8 @@ void cmNMakeMakefileGenerator::OutputMakeRule(std::ostream& fout,
     {
     replace = ShortPathCommand(command2);
     m_Makefile->ExpandVariablesInString(replace);
-    if(replace[0] != '-' && replace.find("echo") != 0)
+    if(replace[0] != '-' && replace.find("echo") != 0 
+       && replace.find("$(MAKE)") != 0)
       {
       fout << "\t" << "echo " << replace.c_str() << "\n";
       }
@@ -329,7 +331,8 @@ void cmNMakeMakefileGenerator::OutputMakeRule(std::ostream& fout,
     {
     replace = ShortPathCommand(command3);
     m_Makefile->ExpandVariablesInString(replace);
-    if(replace[0] != '-' && replace.find("echo") != 0)
+    if(replace[0] != '-' && replace.find("echo") != 0 
+       && replace.find("$(MAKE)") != 0)
       {
       fout << "\t" << "echo " << replace.c_str() << "\n";
       }
@@ -339,7 +342,8 @@ void cmNMakeMakefileGenerator::OutputMakeRule(std::ostream& fout,
     {
     replace = ShortPathCommand(command4);
     m_Makefile->ExpandVariablesInString(replace);
-    if(replace[0] != '-' && replace.find("echo") != 0)
+    if(replace[0] != '-' && replace.find("echo") != 0 
+       && replace.find("$(MAKE)") != 0)
       {
       fout << "\t" << "echo " << replace.c_str() << "\n";
       }
@@ -722,7 +726,6 @@ void cmNMakeMakefileGenerator::OutputBuildLibraryInDir(std::ostream& fout,
   fout << cmSystemTools::EscapeSpaces(fullpath)
        << ":\n\tcd " << cmSystemTools::EscapeSpaces(path)  << "\n"
        << "\t$(MAKE) -$(MAKEFLAGS) $(MAKESILENT) cmake.depends\n"
-       << "\t$(MAKE) -$(MAKEFLAGS) $(MAKESILENT) cmake.check_depends\n"
        << "\t$(MAKE) -$(MAKEFLAGS) $(MAKESILENT) -f cmake.check_depends\n"
        << "\t$(MAKE) $(MAKESILENT) " << cmSystemTools::EscapeSpaces(fullpath)
        << "\n\tcd " <<

+ 29 - 34
Source/cmUnixMakefileGenerator.cxx

@@ -253,7 +253,6 @@ void cmUnixMakefileGenerator::OutputMakefile(const char* file)
                    "default_target",
                    0,
                    "$(MAKE) -$(MAKEFLAGS) $(MAKESILENT) cmake.depends",
-                   "$(MAKE) -$(MAKEFLAGS) $(MAKESILENT) cmake.check_depends",
                    "$(MAKE) -$(MAKEFLAGS) $(MAKESILENT) -f cmake.check_depends",
                    "$(MAKE) -$(MAKEFLAGS) $(MAKESILENT) all");
   
@@ -290,7 +289,7 @@ void cmUnixMakefileGenerator::OutputMakefile(const char* file)
       }
     else
       {
-      checkdependout << "all:\n\tcd .\n";
+      checkdependout << "all:\n\t@echo cmake.depends is up-to-date\n";
       }
     }
   this->OutputCustomRules(fout);
@@ -901,7 +900,6 @@ void cmUnixMakefileGenerator::OutputBuildLibraryInDir(std::ostream& fout,
   fout << cmSystemTools::EscapeSpaces(fullpath)
        << ":\n\tcd " << cmSystemTools::EscapeSpaces(path)
        << "; $(MAKE) -$(MAKEFLAGS) $(MAKESILENT) cmake.depends"
-       << "; $(MAKE) -$(MAKEFLAGS) $(MAKESILENT) cmake.check_depends"
        << "; $(MAKE) -$(MAKEFLAGS) $(MAKESILENT) -f cmake.check_depends"
        << "; $(MAKE) $(MAKESILENT) " << makeTarget << "\n\n"; 
 }
@@ -1599,10 +1597,29 @@ void cmUnixMakefileGenerator::OutputMakeRules(std::ostream& fout)
                          "-@ $(RM) $(CLEAN_OBJECT_FILES) $(EXECUTABLES)"
                          " $(TARGETS)");
     }
+  // collect up all the sources
+  std::string allsources("$(CMAKE_MAKEFILE_SOURCES) ");
+  std::map<cmStdString, cmTarget>& targets = m_Makefile->GetTargets();
+  for(std::map<cmStdString, cmTarget>::const_iterator target = targets.begin(); 
+      target != targets.end(); ++target)
+    {
+    // Iterate over every source for this target.
+    const std::vector<cmSourceFile>& sources = target->second.GetSourceFiles();
+    for(std::vector<cmSourceFile>::const_iterator source = sources.begin(); 
+        source != sources.end(); ++source)
+      {
+      if(!source->IsAHeaderFileOnly())
+        {
+          allsources += " \\\n";
+          allsources += source->GetFullPath();
+        }
+      }
+    }
+
   this->OutputMakeRule(fout, 
                        "Rule to build the cmake.depends and Makefile as side effect, if a source cmakelist file is out of date.",
                        "cmake.depends",
-                       "$(CMAKE_MAKEFILE_SOURCES) ",
+                       allsources.c_str(),
                        "$(CMAKE_COMMAND) "
                        "-S$(CMAKE_CURRENT_SOURCE) -O$(CMAKE_CURRENT_BINARY) "
                        "-H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)"
@@ -1623,32 +1640,6 @@ void cmUnixMakefileGenerator::OutputMakeRules(std::ostream& fout)
                        "-S$(CMAKE_CURRENT_SOURCE) -O$(CMAKE_CURRENT_BINARY) "
                        "-H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)");  
 
-  // collect up all the sources
-  std::string allsources;
-  std::map<cmStdString, cmTarget>& targets = m_Makefile->GetTargets();
-  for(std::map<cmStdString, cmTarget>::const_iterator target = targets.begin(); 
-      target != targets.end(); ++target)
-    {
-    // Iterate over every source for this target.
-    const std::vector<cmSourceFile>& sources = target->second.GetSourceFiles();
-    for(std::vector<cmSourceFile>::const_iterator source = sources.begin(); 
-        source != sources.end(); ++source)
-      {
-      if(!source->IsAHeaderFileOnly())
-        {
-          allsources += " \\\n";
-          allsources += source->GetFullPath();
-        }
-      }
-    }
-  this->OutputMakeRule(fout, 
-                       "rule to rebuild cmake.depends if a source file is changed.",
-                       "cmake.check_depends",
-                       allsources.c_str(),
-                       "$(CMAKE_COMMAND) "
-                       "-S$(CMAKE_CURRENT_SOURCE) -O$(CMAKE_CURRENT_BINARY) "
-                       "-H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)");
-
   this->OutputMakeRule(fout, 
                        "Rebuild CMakeCache.txt file",
                        "rebuild_cache",
@@ -1870,7 +1861,8 @@ void cmUnixMakefileGenerator::OutputMakeRule(std::ostream& fout,
     {
     replace = command;
     m_Makefile->ExpandVariablesInString(replace);
-    if(replace[0] != '-' || replace.find("echo") != 0)
+    if(replace[0] != '-' || replace.find("echo") != 0  
+       && replace.find("$(MAKE)") != 0)
       {
       fout << "\t" << "echo " << replace.c_str() << "\n";
       }
@@ -1880,7 +1872,8 @@ void cmUnixMakefileGenerator::OutputMakeRule(std::ostream& fout,
     {
     replace = command2;
     m_Makefile->ExpandVariablesInString(replace);
-    if(replace[0] != '-' && replace.find("echo") != 0)
+    if(replace[0] != '-' && replace.find("echo") != 0  
+       && replace.find("$(MAKE)") != 0)
       {
       fout << "\t" << "echo " << replace.c_str() << "\n";
       }
@@ -1890,7 +1883,8 @@ void cmUnixMakefileGenerator::OutputMakeRule(std::ostream& fout,
     {
     replace = command3;
     m_Makefile->ExpandVariablesInString(replace);
-    if(replace[0] != '-' && replace.find("echo") != 0)
+    if(replace[0] != '-' && replace.find("echo") != 0  
+       && replace.find("$(MAKE)") != 0)
       {
       fout << "\t" << "echo " << replace.c_str() << "\n";
       }
@@ -1900,7 +1894,8 @@ void cmUnixMakefileGenerator::OutputMakeRule(std::ostream& fout,
     {
     replace = command4;
     m_Makefile->ExpandVariablesInString(replace);
-    if(replace[0] != '-' && replace.find("echo") != 0)
+    if(replace[0] != '-' && replace.find("echo") != 0  
+       && replace.find("$(MAKE)") != 0)
       {
       fout << "\t" << "echo " << replace.c_str() << "\n";
       }