Index: trunk/SophyaLib/SysTools/pdlmgr.cc
===================================================================
--- trunk/SophyaLib/SysTools/pdlmgr.cc	(revision 296)
+++ trunk/SophyaLib/SysTools/pdlmgr.cc	(revision 480)
@@ -23,4 +23,40 @@
 if ( (path.length() > 0) && (path[path.length()] != '/')  ) GetTmpDir() = path + '/';
 else GetTmpDir() = path;
+#if defined(OSF1) || defined(Linux) || defined(SunOS)
+  string cmd = "LD_LIBRARY_PATH=";
+  char* varenv=NULL;
+  varenv=getenv("LD_LIBRARY_PATH");
+#elif defined(IRIX64)
+  string cmd = "LD_LIBRARYN32_PATH=";
+  char* varenv=NULL;
+  varenv=getenv("LD_LIBRARYN32_PATH");
+
+  if (varenv == NULL) { 
+    cmd += '.';  
+    if (path.length() > 0)  cmd += ':' + path; 
+    }
+  else { 
+    if (varenv[0] != '.') cmd += ".:";
+    if (path.length() > 0)  cmd += path + ':';
+    cmd += varenv;
+    putenv(cmd.c_str());
+    }
+#elif defined(AIX)
+  string cmd = "LIBPATH=";
+  char* varenv=NULL;
+  varenv=getenv("LIBPATH");
+  if (varenv == NULL) { 
+    cmd += '.';  
+    if (path.length() > 0)  cmd += ':' + path; 
+    cmd += ":/usr/lib:/lib";
+    }
+  else { 
+    if (varenv[0] != '.') cmd += ".:";
+    if (path.length() > 0)  cmd += path + ':';
+    cmd += varenv;
+    putenv(const_cast<char *>(cmd.c_str()));
+    }
+
+#endif
 return;
 }
@@ -49,6 +85,8 @@
 
 // Compilation du fichier
-#if defined(OSF1) || defined(Linux)
+#ifndef __mac__
 cmd = "cc -c -o " + fnameobj + " " + fname;
+#else 
+cmd = "Il faut compiler !!!" + fnameobj + " " + fname;
 #endif
 rc = system(cmd.c_str());
@@ -68,6 +106,16 @@
 #if defined(OSF1) 
   cmd = "ld -shared -o " + fnameso + " -all " + fnameobj + " -none -lm -lc";
-#else
+#elif defined(Linux)
   cmd = "ld -shared -o " + fnameso + " " + fnameobj + " -lm -lc";
+#elif defined(SunOS)
+  cmd = "ld -G -o " + fnameso + " " + fnameobj + " -lm -lc";
+#elif defined(IRIX64)
+  cmd = "ld -shared -o " + fnameso + " " + fnameobj + " -lm -lc";
+#elif defined(AIX)
+  cmd = "ld -G -bnogc -bexpall -bM:1L -o " + fnameso + " " + fnameobj;
+#elif defined(HPUX)
+  cmd = "ld -b -o " + fnameso + " " + fnameobj + " -lm -lc";
+#else 
+  cmd = "ld -o " + fnameso + " " + fnameobj + " -lm -lc";
 #endif
 rc = system(cmd.c_str());
@@ -76,5 +124,4 @@
   return(NULL);
   }
-
 PDynLinkMgr* rdyn = new PDynLinkMgr(fnameso, false);
 rdyn->copy = true;
@@ -117,5 +164,9 @@
 soName = fnameso;
 
-#if defined(OSF1) || defined(Linux)
+#if defined(HPUX)
+dlhandle = NULL;
+cerr << "PDynLinkMgr::PDynLinkMgr() Not yet available on HP-UX " << endl;
+return;
+#else
 dlhandle =  dlopen(fnameso.c_str(), RTLD_NOW);
 if (dlhandle == NULL) { 
@@ -132,11 +183,14 @@
 PDynLinkMgr::~PDynLinkMgr()
 {
-#if defined(OSF1) || defined(Linux)
+#if defined(HPUX)
+cerr << "PDynLinkMgr::~PDynLinkMgr() Not yet available on HP-UX " << endl;
+return;
+#else
 if (dlhandle) dlclose(dlhandle);    dlhandle = NULL;
-#endif
 if (copy) {
   string cmd = "rm -f " + soName;
   system(cmd.c_str());
   }
+#endif
 }
 
@@ -145,10 +199,13 @@
 {
 DlFunction f = NULL;
-#if defined(OSF1) || defined(Linux)
+#if defined(HPUX)
+cerr << "PDynLinkMgr::GetFunction() Not yet available on HP-UX " << endl;
+return f;
+#else
 if (dlhandle != NULL)  
   f = (DlFunction)dlsym(dlhandle, funcname.c_str());
-#endif
-if (f == NULL) cerr << "PDynLinkMgr::PDynLinkMgr(): Error linking " << funcname << endl;
+if (f == NULL) cerr << "PDynLinkMgr::GetFunction(): Error linking " << funcname << endl;
 return(f);
-}
-
+#endif
+}
+
Index: trunk/SophyaLib/SysTools/pdlmgr.h
===================================================================
--- trunk/SophyaLib/SysTools/pdlmgr.h	(revision 296)
+++ trunk/SophyaLib/SysTools/pdlmgr.h	(revision 480)
@@ -8,7 +8,4 @@
 #include "machdefs.h"
 #include <string>
-#if defined(__KCC__)
-using std::string ;
-#endif
 
 
@@ -41,5 +38,5 @@
 #if defined(HPUX)
   shl_t dlhandle;
-#else
+#else 
   void * dlhandle;
 #endif
Index: trunk/SophyaLib/SysTools/periodic.h
===================================================================
--- trunk/SophyaLib/SysTools/periodic.h	(revision 296)
+++ trunk/SophyaLib/SysTools/periodic.h	(revision 480)
@@ -6,7 +6,4 @@
 #include "machdefs.h"
 #include <list>
-#if defined(__KCC__)
-#include <list.h>
-#endif
 
 class Periodic;
Index: trunk/SophyaLib/SysTools/psighand.cc
===================================================================
--- trunk/SophyaLib/SysTools/psighand.cc	(revision 296)
+++ trunk/SophyaLib/SysTools/psighand.cc	(revision 480)
@@ -5,14 +5,12 @@
 #include <signal.h>
 #include "psighand.h"
-#include "pexceptions.h" 
+#include "pexceptions.h"
 
-using namespace PlanckDPC;
-
-static bool sigprstate[5] = {false, false, false, false};
+static bool sigprstate[6] = {false, false, false, false, false, false};
 
 void PeidaProcessSignal(int s);
 
 /* Nouvelle-Fonction */
-void PeidaConfigureSignalhandling(bool cfpe, bool csegv, bool cquit, bool cusr1, bool cusr2) 
+void PeidaConfigureSignalhandling(bool cfpe, bool csegv, bool cint, bool cquit, bool cusr1, bool cusr2) 
 {
   struct sigaction ae, ad;
@@ -53,6 +51,20 @@
     sigprstate[1] = csegv;
     }
+
+// SIGINT
+  if (sigprstate[2] != cint) {
+    if (cquit)   { 
+      sigaction(SIGINT, &ae, NULL);
+      puts("PeidaConfigureSignalhandling(): Activating SIGINT handling (-> throw) ...");
+      }
+    else  { 
+      sigaction(SIGINT, &ad, NULL);
+      puts("PeidaConfigureSignalhandling(): Back to default SIGINT handling ...");
+      }
+    sigprstate[2] = cint; 
+    }
+  
 // SIGQUIT
-  if (sigprstate[2] != cquit) {
+  if (sigprstate[3] != cquit) {
     if (cquit)   { 
       sigaction(SIGQUIT, &ae, NULL);
@@ -63,9 +75,9 @@
       puts("PeidaConfigureSignalhandling(): Back to default SIGQUIT handling ...");
       }
-    sigprstate[2] = cquit; 
+    sigprstate[3] = cquit; 
     }
   
 // SIGUSR1
-  if (sigprstate[3] != cusr1) {
+  if (sigprstate[4] != cusr1) {
     if (cusr1)   { 
       sigaction(SIGUSR1, &ae, NULL);
@@ -76,8 +88,8 @@
       puts("PeidaConfigureSignalhandling(): Back to default SIGUSR1 handling ...");
       }
-    sigprstate[3] = cusr1;
+    sigprstate[4] = cusr1;
     }
-// SIGUSR1
-  if (sigprstate[4] != cusr2) {
+// SIGUSR2
+  if (sigprstate[5] != cusr2) {
     if (cusr2)   { 
       sigaction(SIGUSR2, &ae, NULL);
@@ -88,5 +100,5 @@
       puts("PeidaConfigureSignalhandling(): Back to default SIGUSR2 handling ...");
       }
-    sigprstate[4] = cusr2;
+    sigprstate[5] = cusr2;
     }    
 }
@@ -94,27 +106,37 @@
 void PeidaProcessSignal(int s)
 {
+string msg;
 switch(s)
   {
   case SIGFPE :
     puts("PeidaProcessSignal: ###Signal SIGFPE catched, throw catchedSIGFPE ###");
-    throw CaughtSignalExc("SIGFPE");
+    msg = "Caught SIGFPE";
+    throw ( CaughtSignalExc(msg, s) );
   case SIGSEGV :
     puts("PeidaProcessSignal: ###Signal SIGSEGV catched, throw catchedSIGSEGV ###");
-    throw CaughtSignalExc("SIGSEGV");
+    msg = "Caught SIGSEGV";
+    throw ( CaughtSignalExc(msg, s) );
   case SIGINT :
     puts("PeidaProcessSignal: ###Signal SIGINT catched, throw catchedSIGINT ###");
-    throw CaughtSignalExc("SIGINT");
+    msg = "Caught SIGINT";
+    throw ( CaughtSignalExc(msg, s) );
   case SIGQUIT :
     puts("PeidaProcessSignal: ###Signal SIGQUIT catched, throw catchedSIGQUIT ###");
-    throw CaughtSignalExc("SIGQUIT");
+    msg = "Caught SIGQUIT";
+    throw ( CaughtSignalExc(msg, s) );
   case SIGUSR1 :
     puts("PeidaProcessSignal: ###Signal SIGUSR1 catched, throw catchedSIGUSR1 ###");
-    throw CaughtSignalExc("SIGUSR1");
+    msg = "Caught SIGUSR1";
+    throw ( CaughtSignalExc(msg, s) );
   case SIGUSR2 :
     puts("PeidaProcessSignal: ###Signal SIGUSR2 catched, throw catchedSIGUSR2 ###");
-    throw CaughtSignalExc("SIGUSR2");
+    msg = "Caught SIGUSR2";
+    throw ( CaughtSignalExc(msg, s) );
   default :
     printf("PeidaProcessSignal: ###Signal %d catched, throw  inconsistentErr ### \n", s);
-    throw CaughtSignalExc("???");
+    msg = "Caught SIG???";
+    throw ( CaughtSignalExc(msg, s) );
   }
+
+// return;
 }
Index: trunk/SophyaLib/SysTools/psighand.h
===================================================================
--- trunk/SophyaLib/SysTools/psighand.h	(revision 296)
+++ trunk/SophyaLib/SysTools/psighand.h	(revision 480)
@@ -6,4 +6,6 @@
 
 #include "machdefs.h"
-void PeidaConfigureSignalhandling(bool cfpe=false, bool csegv=false, bool cquit=false, bool cusr1=false, bool cusr2=false); 
+void PeidaConfigureSignalhandling(bool cfpe=false, bool csegv=false, 
+                                  bool cint=false, bool cquit=false, 
+                                  bool cusr1=false, bool cusr2=false); 
 #endif
