Browse Source

BUG: fix inplace builds

Bill Hoffman 25 years ago
parent
commit
5b13f975b9
2 changed files with 17 additions and 11 deletions
  1. 1 1
      CMakeRules.make.in
  2. 16 10
      Source/cmMakefile.cxx

+ 1 - 1
CMakeRules.make.in

@@ -20,7 +20,7 @@ depend: ${CMAKE} ${SUBDIR_DEPEND}
 clean: ${SUBDIR_CLEAN}
 	rm -f ${SRC_OBJ} ${EXECUTABLES} ${TARGETS}
 
-CMakeTargets.make: ${CMAKE} ${srcdir}/CMakeLists.txt 
+CMakeTargets.make: ${CMAKE} ${srcdir}/CMakeLists.txt ${CMAKE_CONFIG_DIR}/CMakeCache.txt
 	${CMAKE} ${currentdir}/CMakeLists.txt -S${currentdir} -O${currentbindir} -H${topdir} -B${CMAKE_CONFIG_DIR}
 
 rebuild_cache: ${CMAKE_CONFIG_DIR}/CMakeCache.txt

+ 16 - 10
Source/cmMakefile.cxx

@@ -670,20 +670,26 @@ void cmMakefile::GenerateCacheOnly()
          << mf->GetHomeOutputDirectory() << "/CMake/CMakeMaster.make\n";
     dest = mf->GetStartOutputDirectory();
     dest += "/CMakeTargets.make";
-    std::cout << "cmake: creating : " << dest.c_str() << "\n";
-    std::ofstream fout2(dest.c_str());
-    if(!fout2)
-      { 
-      cmSystemTools::Error("Failed to open file for write " , dest.c_str());
+    // make sure there is a CMakeTargets.make file as some
+    // makes require it to exist
+    if(!cmSystemTools::FileExists(dest.c_str()))
+      {
+	std::cout << "cmake: creating : " << dest.c_str() << "\n";
+	std::ofstream fout(dest.c_str());
+	if(!fout)
+	  { 
+	    cmSystemTools::Error("Failed to open file for write " , dest.c_str());
+	  }
+	fout << "#Initial CMakeTargets.make file created only to keep \n";
+	fout << "#certain makes happy that don't like to include makefiles\n";
+	fout << "#that do not exist\n";
       }
-    fout2 << "#Initial CMakeTargets.make file created only to keep \n";
-    fout2 << "#certain makes happy that don't like to include makefiles\n";
-    fout2 << "#that do not exist\n";
     }
-  
+
+  // CLEAN up the makefiles created
   for(unsigned int i =0; i < makefiles.size(); ++i)
     {
-    delete makefiles[i];
+      delete makefiles[i];
     }
 }