| 
					
				 | 
			
			
				@@ -1857,9 +1857,9 @@ cmLocalUnixMakefileGenerator2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   std::string targetNameSO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   std::string targetNameReal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   std::string targetNameBase; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  this->GetLibraryNames(target, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        targetName, targetNameSO, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        targetNameReal, targetNameBase); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  target.GetLibraryNames(m_Makefile, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                         targetName, targetNameSO, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                         targetNameReal, targetNameBase); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // Construct the full path version of the names. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   std::string outpath = m_LibraryOutputPath; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1897,18 +1897,42 @@ cmLocalUnixMakefileGenerator2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   buildEcho += targetOutPath.c_str(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   this->AppendEcho(commands, buildEcho.c_str()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // Add a command to remove any existing files for this library. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // Construct a list of files associated with this library that may 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // need to be cleaned. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   std::vector<std::string> cleanFiles; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  cleanFiles.push_back(targetFullPathReal); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if(targetOutPathSO != targetOutPathReal) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    cleanFiles.push_back(targetFullPathSO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if(targetOutPath != targetOutPathSO && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     targetOutPath != targetOutPathReal) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    cleanFiles.push_back(targetFullPath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  std::string cleanStaticName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  std::string cleanSharedName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  std::string cleanSharedSOName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  std::string cleanSharedRealName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  target.GetLibraryCleanNames(m_Makefile, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              cleanStaticName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              cleanSharedName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              cleanSharedSOName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              cleanSharedRealName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  std::string cleanFullStaticName = outpath + cleanStaticName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  std::string cleanFullSharedName = outpath + cleanSharedName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  std::string cleanFullSharedSOName = outpath + cleanSharedSOName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  std::string cleanFullSharedRealName = outpath + cleanSharedRealName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  cleanFiles.push_back(cleanFullStaticName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if(cleanSharedRealName != cleanStaticName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    cleanFiles.push_back(cleanFullSharedRealName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if(cleanSharedSOName != cleanStaticName && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     cleanSharedSOName != cleanSharedRealName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    cleanFiles.push_back(cleanFullSharedSOName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if(cleanSharedName != cleanStaticName && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     cleanSharedName != cleanSharedSOName && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     cleanSharedName != cleanSharedRealName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    cleanFiles.push_back(cleanFullSharedName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // Add a command to remove any existing files for this library. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   this->AppendCleanCommand(commands, cleanFiles); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // Add the pre-build and pre-link rules. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2775,60 +2799,6 @@ cmLocalUnixMakefileGenerator2::SamePath(const char* path1, const char* path2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//---------------------------------------------------------------------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-void cmLocalUnixMakefileGenerator2::GetLibraryNames(const cmTarget& t, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    std::string& name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    std::string& soName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    std::string& realName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    std::string& baseName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // Check for library version properties. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  const char* version = t.GetProperty("VERSION"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  const char* soversion = t.GetProperty("SOVERSION"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if((t.GetType() != cmTarget::SHARED_LIBRARY && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      t.GetType() != cmTarget::MODULE_LIBRARY) || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     !m_Makefile->GetDefinition("CMAKE_SHARED_LIBRARY_SONAME_C_FLAG")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // Versioning is supported only for shared libraries and modules, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // and then only when the platform supports an soname flag. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    version = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    soversion = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if(version && !soversion) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // The soversion must be set if the library version is set.  Use 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // the library version as the soversion. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    soversion = version; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // The library name. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  name = t.GetFullName(m_Makefile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // The library's soname. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  soName = name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if(soversion) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    soName += "."; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    soName += soversion; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // The library's real name on disk. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  realName = name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if(version) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    realName += "."; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    realName += version; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  else if(soversion) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    realName += "."; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    realName += soversion; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // The library name without extension. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  baseName = t.GetBaseName(m_Makefile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //---------------------------------------------------------------------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 std::string 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 cmLocalUnixMakefileGenerator2 
			 |