Changeset 480 in Sophya for trunk/SophyaLib/SysTools/pdlmgr.cc


Ignore:
Timestamp:
Oct 20, 1999, 12:25:32 PM (26 years ago)
Author:
ansari
Message:

MAJ / PEIDA 3.8 , Reza 20/10/99

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/SysTools/pdlmgr.cc

    r296 r480  
    2323if ( (path.length() > 0) && (path[path.length()] != '/')  ) GetTmpDir() = path + '/';
    2424else GetTmpDir() = path;
     25#if defined(OSF1) || defined(Linux) || defined(SunOS)
     26  string cmd = "LD_LIBRARY_PATH=";
     27  char* varenv=NULL;
     28  varenv=getenv("LD_LIBRARY_PATH");
     29#elif defined(IRIX64)
     30  string cmd = "LD_LIBRARYN32_PATH=";
     31  char* varenv=NULL;
     32  varenv=getenv("LD_LIBRARYN32_PATH");
     33
     34  if (varenv == NULL) {
     35    cmd += '.'; 
     36    if (path.length() > 0)  cmd += ':' + path;
     37    }
     38  else {
     39    if (varenv[0] != '.') cmd += ".:";
     40    if (path.length() > 0)  cmd += path + ':';
     41    cmd += varenv;
     42    putenv(cmd.c_str());
     43    }
     44#elif defined(AIX)
     45  string cmd = "LIBPATH=";
     46  char* varenv=NULL;
     47  varenv=getenv("LIBPATH");
     48  if (varenv == NULL) {
     49    cmd += '.'; 
     50    if (path.length() > 0)  cmd += ':' + path;
     51    cmd += ":/usr/lib:/lib";
     52    }
     53  else {
     54    if (varenv[0] != '.') cmd += ".:";
     55    if (path.length() > 0)  cmd += path + ':';
     56    cmd += varenv;
     57    putenv(const_cast<char *>(cmd.c_str()));
     58    }
     59
     60#endif
    2561return;
    2662}
     
    4985
    5086// Compilation du fichier
    51 #if defined(OSF1) || defined(Linux)
     87#ifndef __mac__
    5288cmd = "cc -c -o " + fnameobj + " " + fname;
     89#else
     90cmd = "Il faut compiler !!!" + fnameobj + " " + fname;
    5391#endif
    5492rc = system(cmd.c_str());
     
    68106#if defined(OSF1)
    69107  cmd = "ld -shared -o " + fnameso + " -all " + fnameobj + " -none -lm -lc";
    70 #else
     108#elif defined(Linux)
    71109  cmd = "ld -shared -o " + fnameso + " " + fnameobj + " -lm -lc";
     110#elif defined(SunOS)
     111  cmd = "ld -G -o " + fnameso + " " + fnameobj + " -lm -lc";
     112#elif defined(IRIX64)
     113  cmd = "ld -shared -o " + fnameso + " " + fnameobj + " -lm -lc";
     114#elif defined(AIX)
     115  cmd = "ld -G -bnogc -bexpall -bM:1L -o " + fnameso + " " + fnameobj;
     116#elif defined(HPUX)
     117  cmd = "ld -b -o " + fnameso + " " + fnameobj + " -lm -lc";
     118#else
     119  cmd = "ld -o " + fnameso + " " + fnameobj + " -lm -lc";
    72120#endif
    73121rc = system(cmd.c_str());
     
    76124  return(NULL);
    77125  }
    78 
    79126PDynLinkMgr* rdyn = new PDynLinkMgr(fnameso, false);
    80127rdyn->copy = true;
     
    117164soName = fnameso;
    118165
    119 #if defined(OSF1) || defined(Linux)
     166#if defined(HPUX)
     167dlhandle = NULL;
     168cerr << "PDynLinkMgr::PDynLinkMgr() Not yet available on HP-UX " << endl;
     169return;
     170#else
    120171dlhandle =  dlopen(fnameso.c_str(), RTLD_NOW);
    121172if (dlhandle == NULL) {
     
    132183PDynLinkMgr::~PDynLinkMgr()
    133184{
    134 #if defined(OSF1) || defined(Linux)
     185#if defined(HPUX)
     186cerr << "PDynLinkMgr::~PDynLinkMgr() Not yet available on HP-UX " << endl;
     187return;
     188#else
    135189if (dlhandle) dlclose(dlhandle);    dlhandle = NULL;
    136 #endif
    137190if (copy) {
    138191  string cmd = "rm -f " + soName;
    139192  system(cmd.c_str());
    140193  }
     194#endif
    141195}
    142196
     
    145199{
    146200DlFunction f = NULL;
    147 #if defined(OSF1) || defined(Linux)
     201#if defined(HPUX)
     202cerr << "PDynLinkMgr::GetFunction() Not yet available on HP-UX " << endl;
     203return f;
     204#else
    148205if (dlhandle != NULL) 
    149206  f = (DlFunction)dlsym(dlhandle, funcname.c_str());
    150 #endif
    151 if (f == NULL) cerr << "PDynLinkMgr::PDynLinkMgr(): Error linking " << funcname << endl;
     207if (f == NULL) cerr << "PDynLinkMgr::GetFunction(): Error linking " << funcname << endl;
    152208return(f);
    153 }
    154 
     209#endif
     210}
     211
Note: See TracChangeset for help on using the changeset viewer.