]> Creatis software - bbtk.git/commitdiff
*** empty log message ***
authorEduardo Davila <Eduardo.Davila@creatis.insa-lyon.fr>
Mon, 18 Oct 2010 08:33:55 +0000 (08:33 +0000)
committerEduardo Davila <Eduardo.Davila@creatis.insa-lyon.fr>
Mon, 18 Oct 2010 08:33:55 +0000 (08:33 +0000)
kernel/cmake/BBTKConfigurePackagePaths.cmake
kernel/cmake/BBTKKernelConfig.cmake
kernel/src/bbtkConfigurationFile.cxx

index e49161f0f1c5496c24dc36b6cc4757fc6e1f82b7..f45b308b54f8a704f7af60bafe8cc14eacec0fdd 100644 (file)
@@ -1,5 +1,6 @@
 
 
+SET(BBTK_PACKAGE_LIB_PATH ${CMAKE_CREA_LIB_PATH} )
 
 IF(WIN32)
   SET (EXECUTABLE_OUTPUT_REL_PATH "") 
@@ -16,7 +17,6 @@ IF(WIN32)
 
 ##  SET (ADDITIONAL_DLL_PATH "C:/Program Files/CreaTools/crea_ThirdParty_dlls-0.2.0/bin" CACHE PATH "Additional paths in which to look for dlls")
 
-  SET(BBTK_PACKAGE_LIB_PATH bin)
   SET(BBTK_BBI "${BBTK_BIN_PATH}/bbi")
   SET(BBTK_BBS2CPP "${BBTK_BIN_PATH}/bbs2cpp")
   SET(BBTK_BBC "${BBTK_BIN_PATH}/bbc")
@@ -27,20 +27,6 @@ ELSE(WIN32)
 #  SET (EXECUTABLE_OUTPUT_REL_PATH bin) 
 #  SET (LIBRARY_OUTPUT_REL_PATH    bin)
   SET(BBTK_BIN_PATH ${BBTK_INSTALL_PREFIX}/bin)
-
-       if( NOT APPLE )
-               # check 64 bit
-               if( ${CMAKE_SIZEOF_VOID_P} EQUAL 4 )
-                       set( HAVE_64_BIT 0 )
-                       SET(BBTK_PACKAGE_LIB_PATH lib)
-               else( ${CMAKE_SIZEOF_VOID_P}EQUAL 4 )
-                       set( HAVE_64_BIT 1 )
-                       SET(BBTK_PACKAGE_LIB_PATH lib64)
-               endif( ${CMAKE_SIZEOF_VOID_P} EQUAL 4 )
-        endif( NOT APPLE )
-
-
-
   SET(BBTK_BBI "${BBTK_BIN_PATH}/bbi")
   SET(BBTK_BBS2CPP "${BBTK_BIN_PATH}/bbs2cpp")
   SET(BBTK_BBC "${BBTK_BIN_PATH}/bbc")
index d461929f74693997c7db3f48b51f888f4c150f29..94c7831b4639306678cd15dcb2b56da3e81dc7af 100644 (file)
@@ -44,6 +44,9 @@ SET (LIBRARY_OUTPUT_PATH
 # WARNING : 
 # On WIN32, these paths will only be right at *BUILD TIME* in VS6 or .net
 # Cannot be used at cmake run time !
+
+SET(BBTK_LIB_PATH ${CMAKE_CREA_LIB_PATH} )
+
 IF(WIN32)
   IF(MSVC10)  #FCY 18-06-10
          SET(BBTK_BIN_PATH $(OutDir))
@@ -54,23 +57,12 @@ IF(WIN32)
            SET(BBTK_BIN_PATH $(SolutionDir)/$(OutDir))
          ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 6")
   ENDIF(MSVC10)
-  SET(BBTK_LIB_PATH bin)
   SET(BBTK_BBS2CPP ${BBTK_BIN_PATH}/bbs2cpp.exe)
   SET(BBTK_BBC ${BBTK_BIN_PATH}/bbc.exe)
   SET(BBTK_BBI ${BBTK_BIN_PATH}/bbi.exe)
   SET(BBTK_BBFY ${BBTK_BIN_PATH}/bbfy.exe)
 
 ELSE(WIN32)
-       if( NOT APPLE )
-               # check 64 bit
-               if( ${CMAKE_SIZEOF_VOID_P} EQUAL 4 )
-                       set( HAVE_64_BIT 0 )
-                       SET(BBTK_LIB_PATH  lib)
-               else( ${CMAKE_SIZEOF_VOID_P}EQUAL 4 )
-                       set( HAVE_64_BIT 1 )
-                       SET(BBTK_LIB_PATH  lib64)
-               endif( ${CMAKE_SIZEOF_VOID_P} EQUAL 4 )
-        endif( NOT APPLE )
 # For Xcode : have to test the cmake generator !
   IF ( CMAKE_GENERATOR STREQUAL Xcode)
     SET(BBTK_BIN_PATH ${EXECUTABLE_OUTPUT_PATH}/Debug)
index 8e2d78ce31d6b5b30c145a4e3cd497b9813d5b39..0fe498342befac96364994ca44483a2216efb39e 100644 (file)
@@ -1,9 +1,9 @@
-/*=========================================================================                                                                               
+/*=========================================================================
   Program:   bbtk
   Module:    $RCSfile: bbtkConfigurationFile.cxx,v $
   Language:  C++
-  Date:      $Date: 2009/12/08 14:10:36 $
-  Version:   $Revision: 1.32 $
+  Date:      $Date: 2010/10/18 08:33:57 $
+  Version:   $Revision: 1.33 $
 =========================================================================*/
 
 /* ---------------------------------------------------------------------
 * Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
 * Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
 *
-*  This software is governed by the CeCILL-B license under French law and 
-*  abiding by the rules of distribution of free software. You can  use, 
-*  modify and/ or redistribute the software under the terms of the CeCILL-B 
-*  license as circulated by CEA, CNRS and INRIA at the following URL 
-*  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
+*  This software is governed by the CeCILL-B license under French law and
+*  abiding by the rules of distribution of free software. You can  use,
+*  modify and/ or redistribute the software under the terms of the CeCILL-B
+*  license as circulated by CEA, CNRS and INRIA at the following URL
+*  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
 *  or in the file LICENSE.txt.
 *
 *  As a counterpart to the access to the source code and  rights to copy,
 *  modify and redistribute granted by the license, users are provided only
 *  with a limited warranty  and the software's author,  the holder of the
 *  economic rights,  and the successive licensors  have only  limited
-*  liability. 
+*  liability.
 *
 *  The fact that you are presently reading this means that you have had
 *  knowledge of the CeCILL-B license and that you accept its terms.
-* ------------------------------------------------------------------------ */                                                                         
+* ------------------------------------------------------------------------ */
 
 /**
  *\file
@@ -55,43 +55,43 @@ namespace bbtk
   {
 
        mFile_separator = VALID_FILE_SEPARATOR;
-    
-    // ==> Set system paths 
+
+    // ==> Set system paths
     mBin_path = Utilities::GetExecutablePath();
 
-         
-         
-         
-/*     EED 23 Mars 2009  
+
+
+
+/*     EED 23 Mars 2009
 #ifdef MACOSX
     mInstall_path = mBin_path + "/../../../..";
 #else
     mInstall_path = mBin_path + "/..";
 #endif
-*/    
+*/
 #ifdef MACOSX
-         
-         std::string macPath("Contents/MacOS"); 
+
+         std::string macPath("Contents/MacOS");
          int sbp = mBin_path.length();
          int smp = macPath.length();
          if (mBin_path.compare( sbp-smp, smp, macPath )==0 )
          {
                  mBin_path = mBin_path + "/../../..";
          }
-         
-         
-#endif   
+
+
+#endif
          mInstall_path = mBin_path + "/..";
 
-         
-         
+
+
     // The relative path to the doc folder (=BBTK_DOC_REL_PATH)
     //    mDoc_rel_path = BBTK_STRINGIFY_SYMBOL(BBTK_DOC_REL_PATH);
     // The path to the doc folder (=mInstall_path+"/"+mDoc_rel_path)
     //    mDoc_path = mInstall_path + "/" + mDoc_rel_path;
-    // Have to create bbtk user's dirs if needed 
+    // Have to create bbtk user's dirs if needed
 
-    // LG 27/01/09 : doc is now user dependent 
+    // LG 27/01/09 : doc is now user dependent
     //               and located in user's .bbtk dir /doc
     // All dirs under .bbtk user's dir are set and created by:
     InitializeDotBbtkStructure();
@@ -100,10 +100,10 @@ namespace bbtk
     mBbs_rel_path = BBTK_STRINGIFY_SYMBOL(BBTK_BBS_REL_PATH);
     // The path to the bbs folder (=mInstall_path+"/"+mBbs_rel_path)
     mBbs_path = mInstall_path + "/" + mBbs_rel_path;
-    
+
     mData_path = mInstall_path + "/" + BBTK_STRINGIFY_SYMBOL(BBTK_DATA_REL_PATH);
-    
-    Utilities::replace( mBin_path, 
+
+    Utilities::replace( mBin_path,
                        INVALID_FILE_SEPARATOR,
                        VALID_FILE_SEPARATOR);
     Utilities::replace( mInstall_path,
@@ -115,7 +115,7 @@ namespace bbtk
     Utilities::replace( mData_path,
                        INVALID_FILE_SEPARATOR,
                        VALID_FILE_SEPARATOR);
-    
+
     bbtkMessage("config",1," ==> bin    : '"<<mBin_path<<"'"<<std::endl);
     bbtkMessage("config",1," ==> prefix : '"<<mInstall_path<<"'"<<std::endl);
     bbtkMessage("config",1," ==> doc    : '"<<mDoc_path<<"'"<<std::endl);
@@ -124,13 +124,13 @@ namespace bbtk
 
 
 
-    
+
     // bbs_paths
     // always add "." (current working directory) at the begining
-    mBbs_paths.push_back( "." ); 
-    // add system bbs path 
+    mBbs_paths.push_back( "." );
+    // add system bbs path
     mBbs_paths.push_back(mBbs_path);
-    // add toolsbbtk/appli 
+    // add toolsbbtk/appli
 //EED    std::string toolsappli_rel_path(mFile_separator);
     std::string toolsappli_rel_path("/");
 //EED    toolsappli_rel_path +=  "toolsbbtk" + mFile_separator + "appli";
@@ -138,24 +138,25 @@ namespace bbtk
     //
     //-----------------------------------------------------------
     // LG : REMOVE BUGGY PATH WITH include *:
-    // 
+    //
     //    mBbs_paths.push_back(mBbs_path + toolsappli_rel_path);
     //-----------------------------------------------------------
     int iStrVec,sizeStrVec;
-    
+
     sizeStrVec = mBbs_paths.size();
     for (iStrVec=0;iStrVec<sizeStrVec;iStrVec++){
       Utilities::replace( mBbs_paths[iStrVec] , INVALID_FILE_SEPARATOR , VALID_FILE_SEPARATOR);
     }
-    
-    
+
+
     // always add "." (current working directory) at the begining
-    mPackage_paths.push_back(".");   
+    mPackage_paths.push_back(".");
     // add system bin path (for build tree / standalone folder install)
     mPackage_paths.push_back(mBin_path);
     // add system lib path (for install tree)
     //EED    mPackage_paths.push_back(mInstall_path + mFile_separator + "lib");
     mPackage_paths.push_back(mInstall_path + "/lib");
+    mPackage_paths.push_back(mInstall_path + "/lib64");
 #ifdef WIN32
     // add bin/Debug bin/Release paths (for build/install tree)
     //EED    mPackage_paths.push_back(mBin_path + mFile_separator + "Debug");
@@ -163,52 +164,52 @@ namespace bbtk
     //EED    mPackage_paths.push_back(mBin_path + mFile_separator + "Release");
     mPackage_paths.push_back(mBin_path + "/Release");
 #endif
-    
+
     sizeStrVec = mPackage_paths.size();
     for (iStrVec=0;iStrVec<sizeStrVec;iStrVec++){
       Utilities::replace( mPackage_paths[iStrVec] , INVALID_FILE_SEPARATOR , VALID_FILE_SEPARATOR);
     }
-    
-    
-    
+
+
+
     GetHelp(2);
-    
+
     // ==> First we look for bbtk_config.xml in "."
     char buf[2048];
     const char *currentDir = getcwd(buf, 2048);
-    
+
     if( !currentDir )
       {
        std::cerr << "Path was too long to fit on 2048 bytes ?!?" << std::endl;
        // \todo : what else?
        // How abort a constructor and warn the caller function?
-       // LG : throw an exception 
+       // LG : throw an exception
       }
-    
+
     //    std::string configXmlFullPathName = currentDir + mFile_separator + "bbtk_config.xml";
     std::string configXmlFullPathName = currentDir ;
     configXmlFullPathName += "/bbtk_config.xml";
     Utilities::replace( configXmlFullPathName , INVALID_FILE_SEPARATOR , VALID_FILE_SEPARATOR);
-    
+
     if ( Utilities::FileExists( configXmlFullPathName ))
       {
-       bbtkMessage("config",1, "ConfigurationFile : [" << configXmlFullPathName << 
-                   "] found in current directory" << std::endl); 
+       bbtkMessage("config",1, "ConfigurationFile : [" << configXmlFullPathName <<
+                   "] found in current directory" << std::endl);
        //Read(configXmlFullPathName.c_str());
-       // traiter le fichier local     
+       // traiter le fichier local
       }
-    
+
     // ==> Then we look for bbtk_config.xml in ".bbtk"
-    else 
+    else
       {
        configXmlFullPathName = Utilities::MakeUserSettingsFullFileName("bbtk_config.xml");
        if (!Utilities::FileExists( configXmlFullPathName ))
-         {         
+         {
            // ==> Nothing found, we create bbtk_config.xml in ".bbtk"
            InstallPath ();
          }
       }
-    
+
     // In any case, deal with bbtk_config.xml!
     Read(configXmlFullPathName.c_str());
   }
@@ -220,33 +221,33 @@ namespace bbtk
   {
   }
   //=========================================================================
-  
+
   //=========================================================================
   void ConfigurationFile::InitializeDotBbtkStructure()
   {
     mDot_bbtk_path = Utilities::GetUserSettingsDir();
     mDot_bbtk_is_new = false;
-    if (!Utilities::FileExists(mDot_bbtk_path)) mDot_bbtk_is_new = true;      
+    if (!Utilities::FileExists(mDot_bbtk_path)) mDot_bbtk_is_new = true;
     Utilities::CreateDirectoryIfNeeded(mDot_bbtk_path);
-    
+
     mDoc_path = Utilities::MakeUserSettingsFullFileName("doc");
     Utilities::CreateDirectoryIfNeeded(mDoc_path);
 
-    std::string bbdoc_path = 
+    std::string bbdoc_path =
       Utilities::MakeUserSettingsFullFileName("doc/bbdoc");
     Utilities::CreateDirectoryIfNeeded(bbdoc_path);
-    
+
     // Create help_contents.html if does not exist
     std::string filename = Utilities::MakeUserSettingsFullFileName("doc/help_contents.html");
     if (!Utilities::FileExists(filename))
       {
-                       bbtkDebugMessage("config",1, 
+                       bbtkDebugMessage("config",1,
                         "* Creating [" << filename << "]" << std::endl);
                        // The path to the doc folder (=mInstall_path+"/"+mDoc_rel_path)
-                       std::string doc_path = mInstall_path + "/" 
+                       std::string doc_path = mInstall_path + "/"
                          + BBTK_STRINGIFY_SYMBOL(BBTK_DOC_REL_PATH) + "/";
-                       Utilities::MakeValidFileName(doc_path); 
-       
+                       Utilities::MakeValidFileName(doc_path);
+
 
                        std::ofstream f;
                        f.open(filename.c_str(), std::ios::out );
@@ -258,11 +259,11 @@ namespace bbtk
                          << "charset=iso-8859-1\"></head><H1>Help Contents</H1>"
                          << "<a href=\"bbdoc/index-category.html#demo\" "
                          << "target=\"information\">Demos</a><br>"
-                         << "<a href=\"bbdoc/index-category.html#example\" "   
+                         << "<a href=\"bbdoc/index-category.html#example\" "
                          << "target=\"information\">Examples</a>"
                          << "<H2>Guides</H2>"
                          << "<a href=\""
-                         << doc_path 
+                         << doc_path
                          << "bbtkUsersGuide/bbtkUsersGuide.pdf"
                          << "\" target=\"information\">User's Guide</a><br>"
                          << "<a href=\""
@@ -311,57 +312,57 @@ namespace bbtk
     fprintf(fp, "</config>\n");
     fclose(fp);
   }
-  //=========================================================================  
+  //=========================================================================
+
+
 
-       
-       
 
   //=========================================================================
   void ConfigurationFile::InstallPath ()
   {
-    
+
     /*--------------------------------------------------
       New policy for bbtk_config.xml :
-      
+
       if bbtk_config.xml found in current directory (user is an aware user!)
       use it!
-      
+
       else if bbtk_config.xml found in HOME/.bbtk (user already worked with it)
       use it!
-      
+
       else if bbtk_config.xml.tmp found in /usr/local/bin or c:\\Program Files\\BBTK\\bin
       copy it as .bbtk/bbtk_config.xml
-      
+
       else (nothing installed)
       create a minimum version in HOME/.bbtk
       ----------------------------------------------------*/
-    
-    
+
+
     // -----------------------------------------------------------------
 #if defined(__GNUC__)
-    
+
     // ------------------ create some usefull strings ----------------
     // installed bbtk_path
     char bbtk_path[100];
     strcpy(bbtk_path, "/usr/local/bin");
-    
+
     // rootDirectory
     char rootDirectory[200];
     sprintf( rootDirectory,  "%s/.bbtk", getenv("HOME"));
-    
+
     // configPath
     char configPath[200];
     sprintf(configPath, "%s/bbtk_config.xml",rootDirectory);
-    
+
     // configXmlTmp
-    char configXmlTmp[250]; 
+    char configXmlTmp[250];
     sprintf(configXmlTmp, "%s/bbtk_config.xml.tmp", bbtk_path);
-    
+
     // copyFile
     char copyFile[250];
-    
+
     if (!Utilities::FileExists(configXmlTmp)) // bbtk_config.xml.tmp not found (not installed)
-      {  
+      {
        // if "bbtk_path/bbtk_config.xml.tmp" doesn't exist, hard-create a minimum version in .bbtk
        CreateConfigXML( rootDirectory );// create .bbtk
       }
@@ -374,46 +375,46 @@ namespace bbtk
          }
       }
     return;
-    
+
     // ------------------------------------------------------------------
 #elif defined(WIN32)
-    
-    
+
+
     // installed bbtk_path
     char bbtk_path[100];
     strcpy(bbtk_path, "\"c:\\Program Files\\BBTK\\bin\"");
     char bbtk_path2[100];
     strcpy(bbtk_path2, "c:\\Program Files\\BBTK\\bin");
-    
+
     // rootDirectory
-    char rootDirectory[200];  
+    char rootDirectory[200];
     sprintf(rootDirectory, "%s\\.bbtk",getenv("USERPROFILE"));
     //  std::cout << "[" << rootDirectory << "]" << std::endl;
-    
+
     // configPath
     char configPath[200];
     sprintf(configPath, "%s\\bbtk_config.xml",rootDirectory);
-    
+
     // makeDir
     char makeDir[250];
     sprintf( makeDir, "mkdir \"%s\" ", rootDirectory);
-    
+
     // configXmlTmp
-    char configXmlTmp[250]; 
+    char configXmlTmp[250];
     sprintf(configXmlTmp, "%s\\bbtk_config.xml.tmp", bbtk_path2);
-    
+
     // copyFile
     char copyFile[250];
-    
+
     if (!Utilities::FileExists(configXmlTmp)) // bbtk_config.xml.tmp not found
       {
        // if "bbtk_path/bbtk_config.xml.tmp" doesn't exist, hard-create a minimum version in .bbtk
        CreateConfigXML( rootDirectory );// create .bbtk
        return;
-      }  
-    
+      }
+
     sprintf(copyFile,"copy %s\\bbtk_config.xml.tmp \"%s\"\\bbtk_config.xml ",bbtk_path,rootDirectory );
-    
+
     int attribs = GetFileAttributes (rootDirectory);
     bbtkMessage("config",1,std::hex << attribs << " " << FILE_ATTRIBUTE_DIRECTORY << std::endl);
     if ( attribs != 0xFFFFFFFF)
@@ -422,21 +423,21 @@ namespace bbtk
          {
            if ( GetFileAttributes( configPath ) == 0xFFFFFFFF)
              {
-               system(copyFile);  
-             } 
+               system(copyFile);
+             }
          }
-      } 
-    else 
+      }
+    else
       {
        system(makeDir);
-       system(copyFile); 
-      }    
-    return;  
-    // ------------------------------------------------------------------    
+       system(copyFile);
+      }
+    return;
+    // ------------------------------------------------------------------
 #else
 /// \todo  ConfigurationFile::InstallPath() : exit when for not WIN32 and not__GNUC__
 
-  return;    
+  return;
 #endif
 
 }
@@ -447,17 +448,17 @@ namespace bbtk
   //=========================================================================
   // Gets the list of directories holding bb scripts, packages, dll, ... from the xml file
   //      bbtk_config.xml
-  
+
   void ConfigurationFile::Read(const std::string& filename)
   {
-    
+
     bbtkDebugMessage("config",1,"ConfigurationFile::Read(" <<filename << ")" << std::endl);
-    
+
     mConfig_xml_full_path = filename;
     XMLResults* res = new XMLResults;
     XMLNode BB = XMLNode::parseFile((XMLCSTR)filename.c_str(),(XMLCSTR)"config",res);
-    
-    if ( res->error != eXMLErrorNone ) 
+
+    if ( res->error != eXMLErrorNone )
       {
        std::string mess = GetErrorMessage(res,filename);
        delete res;
@@ -465,78 +466,78 @@ namespace bbtk
        bbtkError(mess);
       }
     delete res;
-    
+
     bbtkDebugMessage("config",1,"OK" << std::endl);
-  
+
     int i,j;
-    
+
     // Description
-    for (i=0,j=0; i<BB.nChildNode((XMLCSTR)"description"); i++) 
+    for (i=0,j=0; i<BB.nChildNode((XMLCSTR)"description"); i++)
       {
        std::string val;
        GetTextOrClear(BB.getChildNode((XMLCSTR)"description",&j),val);
        mDescription += val;
-      }    
-    
+      }
+
     // Url
-    if( BB.nChildNode((XMLCSTR)"url") ) 
+    if( BB.nChildNode((XMLCSTR)"url") )
       GetTextOrClear(BB.getChildNode((XMLCSTR)"url"),mUrl);
-    
+
     // Data_Path
-    if( BB.nChildNode((XMLCSTR)"data_path") ) 
+    if( BB.nChildNode((XMLCSTR)"data_path") )
       GetTextOrClear(BB.getChildNode((XMLCSTR)"data_path"),mData_path);
-    
+
     // install_path
     //  if( BB.nChildNode((XMLCSTR)"install_path") )
     //   GetTextOrClear(BB.getChildNode((XMLCSTR)"install_path"),mInstall_path);
-    
+
     // add user bbs paths
-    for (i=0,j=0; i<BB.nChildNode((XMLCSTR)"bbs_path"); i++) 
+    for (i=0,j=0; i<BB.nChildNode((XMLCSTR)"bbs_path"); i++)
       {
        std::string val;
        GetTextOrClear(BB.getChildNode((XMLCSTR)"bbs_path",&j),val);
        mBbs_paths.push_back(val);
       }
-    
+
     // package_paths
-    
+
     // add user package path
-    for (i=0,j=0; i<BB.nChildNode((XMLCSTR)"package_path"); i++) 
+    for (i=0,j=0; i<BB.nChildNode((XMLCSTR)"package_path"); i++)
       {
        std::string val;
        GetTextOrClear(BB.getChildNode((XMLCSTR)"package_path",&j),val);
        mPackage_paths.push_back(val);
       }
-    
+
     // default_temp_dir
     /*
-    if( BB.nChildNode((XMLCSTR)"default_temp_dir") ) 
+    if( BB.nChildNode((XMLCSTR)"default_temp_dir") )
       GetTextOrClear(BB.getChildNode((XMLCSTR)"default_temp_dir"),mDefault_temp_dir);
-    
+
     if ( mDefault_temp_dir == "$") // no value found in config_xml
       {
        size_t pos = mConfig_xml_full_path.find("bbtk_config.xml");
-       mDefault_temp_dir = mConfig_xml_full_path.substr (0,pos); 
-      }    
+       mDefault_temp_dir = mConfig_xml_full_path.substr (0,pos);
+      }
     */
 
     GetHelp(2);
   }
   //=========================================================================
-  
+
   //=========================================================================
   bool ConfigurationFile::AddPackagePathsAndWrite( const std::string& path )
   {
     bbtkDebugMessageInc("config",9,
                        "ConfigurationFile::AddPackagePathsAndWrite("
                        <<path<<")"<<std::endl);
-    
+
      XMLResults* res = new XMLResults;
-    XMLNode BB = 
+    XMLNode BB =
       XMLNode::parseFile((XMLCSTR)Get_config_xml_full_path().c_str(),
                         (XMLCSTR)"config",res);
-    
-    if ( res->error != eXMLErrorNone ) 
+
+    if ( res->error != eXMLErrorNone )
       {
        std::string mess = GetErrorMessage(res,Get_config_xml_full_path());
        delete res;
@@ -554,7 +555,7 @@ namespace bbtk
     BBSPATH.addText((XMLCSTR)bbs_path.c_str());
     Utilities::replace(bbs_path, INVALID_FILE_SEPARATOR, VALID_FILE_SEPARATOR);
     mBbs_paths.push_back(bbs_path);
+
 #ifdef _WIN32
     std::string pack_path = path + "/bin";
 #else
@@ -585,7 +586,7 @@ namespace bbtk
 
 
     XMLError err = BB.writeToFile((XMLCSTR)Get_config_xml_full_path().c_str());
-    if ( err != eXMLErrorNone ) 
+    if ( err != eXMLErrorNone )
       {
        std::string mess = GetErrorMessage(res,Get_config_xml_full_path());
        bbtkDebugMessage("config",1,mess<< std::endl);
@@ -601,34 +602,34 @@ namespace bbtk
   {
     bbtkDebugMessageInc("config",9,"ConfigurationFile::GetHelp("<<level
                        <<")"<<std::endl);
-    
-    const std::string config_xml_full_path      = Get_config_xml_full_path();    
+
+    const std::string config_xml_full_path      = Get_config_xml_full_path();
     const std::string description               = Get_description();
     const std::string url                       = Get_doc_path();
     const std::string data_path                 = Get_data_path();
-    const std::string default_temp_dir          = Get_default_temp_dir();    
-    const std::string file_separator            = Get_file_separator();    
+    const std::string default_temp_dir          = Get_default_temp_dir();
+    const std::string file_separator            = Get_file_separator();
     const std::vector<std::string>bbs_paths     = Get_bbs_paths();
     const std::vector<std::string>package_paths = Get_package_paths();
-    
-    bbtkMessage("help",level, "============="   << std::endl);           
+
+    bbtkMessage("help",level, "============="   << std::endl);
     bbtkMessage("help",level, "Configuration"   << std::endl);
     bbtkMessage("help",level, "============="   << std::endl);
-    bbtkMessage("help",level, "bbtk_config.xml    : [" << config_xml_full_path  << "]" << std::endl); 
+    bbtkMessage("help",level, "bbtk_config.xml    : [" << config_xml_full_path  << "]" << std::endl);
     bbtkMessage("help",level, "Documentation Path : [" << url             << "]" << std::endl);
     bbtkMessage("help",level, "Data Path          : [" << data_path       << "]" << std::endl);
     bbtkMessage("help",level, "Temp Directory     : [" << default_temp_dir << "]" << std::endl);
     bbtkMessage("help",level, "File Separator     : [" << file_separator  << "]" << std::endl);
 
     std::vector<std::string>::const_iterator i;
-           
-    bbtkMessage("help",level, "BBS Paths   " << std::endl);     
+
+    bbtkMessage("help",level, "BBS Paths   " << std::endl);
     for (i = bbs_paths.begin(); i!=bbs_paths.end(); ++i )
     {
       bbtkMessage("help",level,"--- ["<<*i<<"]"<<std::endl);
-    }    
-    
-    bbtkMessage("help",level, "PACKAGE Paths : " << std::endl);     
+    }
+
+    bbtkMessage("help",level, "PACKAGE Paths : " << std::endl);
     for (i = package_paths.begin(); i!=package_paths.end(); ++i )
     {
       bbtkMessage("help",level,"--- ["<<*i<<"]"<<std::endl);