Browse Source

BUG: fix for sun compiler

Bill Hoffman 24 years ago
parent
commit
d4498a9e52
2 changed files with 8 additions and 1 deletions
  1. 1 1
      Source/cmCacheManager.cxx
  2. 7 0
      Source/cmUnixMakefileGenerator.cxx

+ 1 - 1
Source/cmCacheManager.cxx

@@ -111,7 +111,7 @@ bool cmCacheManager::LoadCache(const char* path,
   const int bsize = 4096;
   char buffer[bsize];
   // input line is:         key:type=value
-  cmRegularExpression reg("(.*):(.*)=(.*)");
+  cmRegularExpression reg("^([^:]*):([^=]*)=(.*)$");
   while(fin)
     {
     // Format is key:type=value

+ 7 - 0
Source/cmUnixMakefileGenerator.cxx

@@ -760,6 +760,13 @@ void cmUnixMakefileGenerator::OutputMakeVariables(std::ostream& fout)
     "\n"
     "\n";
   std::string replaceVars = variables;
+  bool dll = cmCacheManager::GetInstance()->IsOn("BUILD_SHARED_LIBS");
+  if(!dll)
+    {
+    // if not a dll then remove the shlib -fpic flag
+    m_Makefile->AddDefinition("CMAKE_SHLIB_CFLAGS", "");
+    }
+  
   m_Makefile->ExpandVariablesInString(replaceVars);
   fout << replaceVars.c_str();
   fout << "CMAKE_CURRENT_SOURCE = " << m_Makefile->GetStartDirectory() << "\n";