--- /dev/null
+#include "CASCatch_CatchSignals.hxx"
+
+#include "CASCatch_Failure.hxx"
+#include "CASCatch_ErrorHandler.hxx"
+#include <TCollection_AsciiString.hxx>
+
+#define MAX_HANDLER_NUMBER 6
+
+
+//================================================================================
+/*! Public -
+ * \brief creates a CASCatch_CatchSignals
+ */
+//================================================================================
+CASCatch_CatchSignals::CASCatch_CatchSignals()
+ :myIsActivated(Standard_False)
+{
+
+ Standard_Integer i = 0;
+ for(; i<=MAX_HANDLER_NUMBER; i++)
+ mySigStates[i] = NULL;
+}
+
+#ifndef WNT
+
+//================================ UNIX part ==================================================
+
+#include <OSD.hxx>
+#include <OSD_WhoAmI.hxx>
+#include <OSD_SIGHUP.hxx>
+#include <OSD_SIGINT.hxx>
+#include <OSD_SIGQUIT.hxx>
+#include <OSD_SIGILL.hxx>
+#include <OSD_SIGKILL.hxx>
+#include <OSD_SIGBUS.hxx>
+#include <OSD_SIGSEGV.hxx>
+#include <OSD_SIGSYS.hxx>
+#ifndef LIN
+#include <exception.h>
+#endif
+
+//==============================
+typedef void (ACT_SIGIO_HANDLER)(void) ;
+
+ACT_SIGIO_HANDLER *ADR_ACT_SIGIO_HANDLER = NULL ;
+
+typedef void (* SIG_PFV) (int);
+
+#ifdef SUN
+# include <floatingpoint.h>
+#endif
+
+#ifdef SOLARIS
+# include <floatingpoint.h>
+# include <sys/machsig.h>
+# include <stdlib.h>
+# include <stdio.h>
+#endif
+
+#include <signal.h>
+#include <sys/signal.h>
+
+#ifdef LIN
+# include <stdlib.h>
+# include <stdio.h>
+#else
+# ifdef SA_SIGINFO
+# ifndef AIX
+# include <sys/siginfo.h>
+# endif
+# endif
+#endif
+
+
+#ifdef IRIX
+# include <sigfpe.h>
+# include <sys/siginfo.h>
+#endif
+
+
+//================================================================================
+/*! Private -
+ * \brief universal handler for signals
+ */
+//================================================================================
+static void Handler(const OSD_Signals theSig, const OSD_Signals)
+{
+ sigset_t set;
+ sigemptyset(&set);
+ sigaddset(&set, theSig);
+ sigprocmask(SIG_UNBLOCK, &set, NULL) ;
+
+ TCollection_AsciiString aMessage(theSig);
+ aMessage+=" signal detected";
+
+ CASCatch_Failure::Raise(aMessage.ToCString());
+}
+
+
+#ifdef SA_SIGINFO
+//================================================================================
+/*! Private -
+ * \brief handler for SIGSEGV signal
+ */
+//================================================================================
+static void SegvHandler(const OSD_Signals, const Standard_Address, const Standard_Address)
+{
+ sigset_t set;
+ sigemptyset(&set);
+ sigaddset(&set, SIGSEGV);
+ sigprocmask (SIG_UNBLOCK, &set, NULL);
+
+ CASCatch_Failure::Raise("SIGSEGV detected");
+}
+#endif
+
+
+//================================================================================
+/*! Public -
+ * \brief activates a signals handling
+ */
+//================================================================================
+void CASCatch_CatchSignals::Activate()
+{
+ if(myIsActivated) return;
+
+ struct sigaction act;
+
+ Standard_Integer i = 0;
+ for(; i<=MAX_HANDLER_NUMBER; i++)
+ mySigStates[i] = new struct sigaction(); //Initialize structures
+
+ int stat;
+ act.sa_handler = (SIG_PFV) &Handler ;
+ sigemptyset(&act.sa_mask) ;
+
+
+ stat = sigaction(SIGHUP,&act,(struct sigaction*)mySigStates[0]); // ...... hangup
+ stat = sigaction(SIGFPE,&act,(struct sigaction*) mySigStates[1]); // ...... floating point exception
+ stat = sigaction(SIGINT,&act,(struct sigaction*)mySigStates[2]); // ...... interrupt
+ stat = sigaction(SIGQUIT,&act,(struct sigaction*)mySigStates[3]); // ...... quit
+ stat = sigaction(SIGBUS,&act,(struct sigaction*)mySigStates[4]); // ...... bus error
+ stat = sigaction(SIGILL,&act,(struct sigaction*)mySigStates[5]); // ...... illegal instruction
+
+#ifdef SA_RESTART
+ act.sa_flags = SA_RESTART ;
+#else
+ act.sa_flags = 0 ;
+#endif
+ act.sa_handler = (SIG_PFV) &SegvHandler ;
+
+#ifdef SA_SIGINFO // OSF,SOLARIS,IRIX
+ act.sa_flags = act.sa_flags | SA_SIGINFO ;
+# ifdef SOLARIS
+ act.sa_sigaction = (void(*)(int, siginfo_t *, void*)) &SegvHandler ;
+# endif
+#endif
+
+ stat = sigaction( SIGSEGV , &act , (struct sigaction*)mySigStates[6]); // ...... segmentation violation
+
+ myIsActivated = Standard_True;
+}
+
+
+//================================================================================
+/*! Public -
+ * \brief deactivates a signals handling
+ */
+//================================================================================
+void CASCatch_CatchSignals::Deactivate()
+{
+ if(!myIsActivated) return;
+
+ struct sigaction oact;
+ int stat;
+
+ stat = sigaction(SIGHUP,(struct sigaction*)mySigStates[0],&oact); // ...... hangup
+ stat = sigaction(SIGFPE,(struct sigaction*)mySigStates[1],&oact); // ...... floating point exception
+ stat = sigaction(SIGINT,(struct sigaction*)mySigStates[2],&oact); // ...... interrupt
+ stat = sigaction(SIGQUIT,(struct sigaction*)mySigStates[3],&oact); // ...... quit
+ stat = sigaction(SIGBUS,(struct sigaction*)mySigStates[4],&oact); // ...... bus error
+ stat = sigaction(SIGILL,(struct sigaction*)mySigStates[5],&oact); // ...... illegal instruction
+ stat = sigaction(SIGSEGV,(struct sigaction*)mySigStates[6],&oact); // ...... segmentation violation
+
+
+ Standard_Integer i = 0;
+ for(; i<=MAX_HANDLER_NUMBER; i++)
+ delete (struct sigaction*)mySigStates[i];
+
+ myIsActivated = Standard_False;
+}
+
+
+
+#else
+//====================================== WNT part ====================================================
+#include <OSD_WNT_1.hxx>
+
+#include <process.h>
+#include <signal.h>
+#include <float.h>
+
+#define _OSD_FPX ( _EM_DENORMAL | _EM_INEXACT | _EM_UNDERFLOW | _EM_ZERODIVIDE | _EM_OVERFLOW) //Mask these exceptions
+
+//================================================================================
+/*! Private -
+ * \brief handler for unexpected exceptions
+ */
+//================================================================================
+static Standard_Integer WntHandler(const Standard_Address theExceptionInfo)
+{
+ LPEXCEPTION_POINTERS lpXP = ( LPEXCEPTION_POINTERS )theExceptionInfo;
+ DWORD dwExceptionCode = lpXP -> ExceptionRecord -> ExceptionCode;
+
+ TCollection_AsciiString aMessage((Standard_Integer)dwExceptionCode);
+ aMessage+=" Exception code - unexpected exception";
+
+ CASCatch_Failure::Raise(aMessage.ToCString());
+
+ return EXCEPTION_EXECUTE_HANDLER;
+}
+
+void SIGWntHandler(int , int ) ;
+static void (*SIGWNTHANDLER)(int) = ( void (*)(int) ) ( &SIGWntHandler ) ;
+
+
+//================================================================================
+/*! Private -
+ * \brief handler for signals
+ */
+//================================================================================
+static void SIGWntHandler(const int signum , const int theCode)
+{
+
+ void (*OLDSIGWNTHANDLER)(int) ;
+ switch( signum ) {
+ case SIGFPE :
+ _fpreset() ;
+ _clearfp() ;
+ _controlfp ( _OSD_FPX, _MCW_EM );
+ OLDSIGWNTHANDLER = signal( signum , SIGWNTHANDLER );
+
+ if(theCode == _FPE_UNDERFLOW || theCode == _FPE_INEXACT) return;
+ CASCatch_Failure::Raise ("Floating point error");
+ break;
+ case SIGSEGV :
+ OLDSIGWNTHANDLER = signal( signum , SIGWNTHANDLER );
+ CASCatch_Failure::Raise("Access violation");
+ break;
+ case SIGILL :
+ OLDSIGWNTHANDLER = signal( signum , SIGWNTHANDLER );
+ CASCatch_Failure::Raise("Illegal instruction" );
+ break;
+ }
+}
+
+
+//================================================================================
+/*! Public -
+ * \brief activates a signals handling
+ */
+//================================================================================
+void CASCatch_CatchSignals::Activate()
+{
+ if(myIsActivated) return;
+
+ mySigStates[0] = SetUnhandledExceptionFilter (( LPTOP_LEVEL_EXCEPTION_FILTER )&WntHandler);
+
+ myFloatOpWord = _controlfp(0, 0);
+ _controlfp ( _OSD_FPX, _MCW_EM ); //Enable floating point exceptions
+
+ mySigStates[1] = signal( SIGSEGV , SIGWNTHANDLER );
+ mySigStates[2] = signal( SIGFPE , SIGWNTHANDLER );
+ mySigStates[3] = signal( SIGILL , SIGWNTHANDLER );
+
+ myIsActivated = Standard_True;
+}
+
+//================================================================================
+/*! Public -
+ * \brief deactivates a signals handling
+ */
+//================================================================================
+void CASCatch_CatchSignals::Deactivate()
+{
+ if(!myIsActivated) return;
+
+ SetUnhandledExceptionFilter (( LPTOP_LEVEL_EXCEPTION_FILTER )mySigStates[0]);
+
+ _controlfp ( myFloatOpWord, _MCW_EM );
+
+ signal( SIGSEGV , ( void (*)(int) )mySigStates[1]);
+ signal( SIGFPE , ( void (*)(int) )mySigStates[2]);
+ signal( SIGILL , ( void (*)(int) )mySigStates[3]);
+
+ Standard_Integer i = 0;
+ for(; i<=MAX_HANDLER_NUMBER; i++)
+ mySigStates[i] = NULL;
+
+ myIsActivated = Standard_False;
+}
+
+#endif
+
+//================================================================================
+/*! Private -
+ * \brief deactivates a signals handling
+ */
+//================================================================================
+void CASCatch_CatchSignals::Destroy()
+{
+ if(myIsActivated) Deactivate();
+}
+
--- /dev/null
+
+#ifndef _CASCatch_CatchSignals_HeaderFile
+#define _CASCatch_CatchSignals_HeaderFile
+
+#include <Standard.hxx>
+
+/*!
+ * \class CASCatch_CatchSignals
+ * \brief This class controls an exception handling
+ *
+ */
+class CASCatch_CatchSignals {
+
+public:
+
+ // Methods PUBLIC
+ //
+Standard_EXPORT CASCatch_CatchSignals();
+Standard_EXPORT void Destroy() ;
+~CASCatch_CatchSignals() { Destroy(); }
+Standard_EXPORT void Activate() ;
+Standard_EXPORT void Deactivate() ;
+
+private:
+
+/*!\var mySigStates[7], private
+ * \brief stores signals' handler functions
+ */
+Standard_Address mySigStates[7];
+
+/*!\var myFloatOpWord
+ * \brief stores a float operation word, private
+ */
+Standard_Integer myFloatOpWord;
+
+/*!\var myIsActivated
+ * \brief stores a flag whether a catcher is activated, private]
+ */
+Standard_Boolean myIsActivated;
+
+};
+
+
+#endif
--- /dev/null
+
+#ifdef NO_CXX_EXCEPTION
+
+#include "CASCatch_ErrorHandler.hxx"
+
+// During setjmp()/longjmp() K_SETJMP_CASCatch is non zero (try)
+// So if there is an abort request and if K_SETJMP_CASCatch is non zero, the abort
+// request will be ignored. If the abort request do a raise during a setjmp
+// or a longjmp, there will be a "terminating SEGV" impossible to handle.
+
+
+Standard_EXPORT int K_SETJMP_CASCatch = 0 ;
+
+static Handle(CASCatch_Failure) GlbError; //Last caught Error, Null if there is no error
+
+static CASCatch_ErrorHandler* Top = 0; //The top of the Errors Stack
+
+//=======================================================================
+//function : CASCatch_ErrorHandler
+//purpose : Constructor
+//=======================================================================
+CASCatch_ErrorHandler::CASCatch_ErrorHandler ()
+{
+ Previous = Top;
+ Top = this;
+ CaughtError.Nullify();
+ GlbError.Nullify();
+}
+
+//=======================================================================
+//function : ~CASCatch_ErrorHandler
+//purpose : Destructor : Delete the ErrorHandler and Abort if there is a 'Error'.
+//=======================================================================
+CASCatch_ErrorHandler::~CASCatch_ErrorHandler()
+{
+ Top = Top->Previous;
+ if( !GlbError.IsNull() ) Abort();
+}
+
+//=======================================================================
+//function : Abort: make a longjmp to the saved Context.
+//purpose : Abort if there is a non null 'Error'
+//=======================================================================
+void CASCatch_ErrorHandler::Abort ()
+{
+ //==== Check if can do the "longjmp" =======================================
+ if(Top == NULL || Top->Label == NULL) {
+ cout << "*** Abort *** an exception was raised, but no catch was found." << endl;
+ cout << "\t... The exception is:" << GlbError;
+ exit(1);
+ }
+
+#ifdef DO_ABORT
+ if ( K_SETJMP_CASCatch )
+ cout << "Recursive abort ===> Terminating SEGV ..." << endl ;
+ K_SETJMP_CASCatch = 1 ;
+#endif
+
+ longjmp(Top->Label, Standard_True);
+}
+
+//=======================================================================
+//function : Catches
+//purpose : If there is a 'Error', and it is in good type
+// returns True and clean 'Error', else returns False.
+//=======================================================================
+Standard_Boolean CASCatch_ErrorHandler::Catches
+ (const Handle(Standard_Type)& AType)
+{
+#ifdef DO_ABORT
+ K_SETJMP_CASCatch = 0 ;
+#endif
+ if(GlbError.IsNull())
+ return Standard_False;
+
+ if(GlbError->IsKind(AType)){
+ CaughtError = GlbError;
+ GlbError.Nullify();
+ return Standard_True;
+ } else {
+ return Standard_False;
+ }
+}
+
+//=======================================================================
+//function : LastCaughtError
+//purpose :
+//=======================================================================
+Handle(CASCatch_Failure) CASCatch_ErrorHandler::LastCaughtError()
+{
+ return Top->CaughtError;
+}
+
+//=======================================================================
+//function : Error
+//purpose :
+//=======================================================================
+void CASCatch_ErrorHandler::Error(const Handle(CASCatch_Failure)& aError)
+{
+ GlbError = aError;
+}
+
+#endif
--- /dev/null
+
+#ifndef _CASCatch_ErrorHandler_HeaderFile
+#define _CASCatch_ErrorHandler_HeaderFile
+
+#include "CASCatch_Failure.hxx"
+
+#include <stdlib.h>
+#include <setjmp.h>
+
+
+extern int K_SETJMP_CASCatch ;
+
+/*!
+ * \class CASCatch_ErrorHandler
+ * \brief This class is an exception handler, private
+ *
+ */
+class CASCatch_ErrorHandler
+{
+ friend class CASCatch_Failure; // To execute the raise exception.
+
+ public:
+
+ Standard_EXPORT CASCatch_ErrorHandler();
+ Standard_EXPORT ~CASCatch_ErrorHandler();
+ Standard_EXPORT Standard_Boolean Catches (const Handle(Standard_Type)&);
+
+ private:
+ Standard_EXPORT static void Abort();
+ Standard_EXPORT static void Error(const Handle(CASCatch_Failure)&);
+ Standard_EXPORT static Handle(CASCatch_Failure) LastCaughtError();
+
+ //==== The fields ===========================================================
+ private:
+ CASCatch_ErrorHandler* Previous;
+ Handle(CASCatch_Failure) CaughtError;
+
+ public:
+ jmp_buf Label;
+
+};
+
+#undef CASCatch_TRY
+#define CASCatch_TRY try
+
+#undef CASCatch_CATCH
+#define CASCatch_CATCH catch
+
+
+#ifdef NO_CXX_EXCEPTION
+# undef CASCatch_TRY
+# undef CASCatch_CATCH
+
+# if defined(DO_ABORT)
+
+# define DoesNotAbort_CASCatch(aHandler) !(K_SETJMP_CASCatch = setjmp(aHandler.Label))
+
+# define CASCatch_TRY CASCatch_ErrorHandler _Function; \
+ K_SETJMP_CASCatch = 1 ; \
+ if(DoesNotAbort_CASCatch(_Function))
+
+# else //If DO_ABORT is not defined
+# define DoesNotAbort_CASCatch(aHandler) !setjmp(aHandler.Label)
+
+# define CASCatch_TRY CASCatch_ErrorHandler _Function; \
+ if(DoesNotAbort_CASCatch(_Function))
+# endif //DO_ABORT
+
+
+# define CASCatch_CATCH(Error) else if(_Function.Catches(STANDARD_TYPE(Error)))
+#endif //NO_CXX_EXCEPTION
+
+#endif //_CASCatch_ErrorHandler_HeaderFile
--- /dev/null
+#include "CASCatch_Failure.hxx"
+#include "CASCatch_ErrorHandler.hxx"
+#include <Standard_TypeMismatch.hxx>
+#include <Standard_Type.hxx>
+#include <string.h>
+
+IMPLEMENT_STANDARD_HANDLE( CASCatch_Failure, Standard_Transient )
+IMPLEMENT_STANDARD_RTTIEXT( CASCatch_Failure, Standard_Transient )
+
+
+#ifndef NO_CXX_EXCEPTION
+static Handle(CASCatch_Failure) RaisedError;
+#endif
+
+//================================================================================
+/*! Public -
+ * \brief creates a CASCatch_Failure
+ */
+//================================================================================
+CASCatch_Failure::CASCatch_Failure () { myMessage = "Signal detected";}
+
+
+//================================================================================
+/*! Public -
+ * \brief creates a CASCatch_Failure with a message
+ * \param an exception message
+ */
+//================================================================================
+CASCatch_Failure::CASCatch_Failure (const Standard_CString AString)
+{
+ if(AString) {
+ myMessage = new Standard_Character[strlen(AString) + 1];
+ strcpy(myMessage,AString);
+ }
+}
+
+//================================================================================
+/*! Public -
+ * \brief returns the last caught exception
+ */
+//================================================================================
+Handle(CASCatch_Failure) CASCatch_Failure::Caught()
+{
+#ifdef NO_CXX_EXCEPTION
+ return CASCatch_ErrorHandler::LastCaughtError();
+#else
+ return RaisedError ;
+#endif
+}
+
+//================================================================================
+/*! Public -
+ * \brief raises a CASCatch_Failure exception
+ * \param an exception message
+ */
+//================================================================================
+void CASCatch_Failure::Raise (const Standard_CString AString)
+{
+ Handle(CASCatch_Failure) E = new CASCatch_Failure() ;
+ E->Reraise (AString) ;
+}
+
+
+//================================================================================
+/*! Public -
+ * \brief re-raises a CASCatch_Failure exception
+ * \param an exception message
+ */
+//================================================================================
+void CASCatch_Failure::Reraise (const Standard_CString AString)
+{
+ if(AString){
+ myMessage = new Standard_Character[strlen(AString) + 1];
+ strcpy(myMessage,AString);
+ }
+
+#ifdef NO_CXX_EXCEPTION
+ CASCatch_ErrorHandler::Error(this) ;
+ CASCatch_ErrorHandler::Abort();
+#else
+ RaisedError = this ;
+ Throw() ;
+#endif
+}
+
+//================================================================================
+/*! Public -
+ * \brief returns an exception message
+ */
+//================================================================================
+Standard_CString CASCatch_Failure::GetError() const
+{
+ return myMessage;
+}
+
+//================================================================================
+/*! Public -
+ * \brief Is called when using standard C++ exceptions
+ */
+//================================================================================
+void CASCatch_Failure::Throw() const
+{
+#ifndef NO_CXX_EXCEPTION
+ throw CASCatch_Failure() ;
+#endif
+}
+
--- /dev/null
+#ifndef _CASCATCH_FAILURE_HeaderFile
+#define _CASCATCH_FAILURE_HeaderFile
+
+#include <Standard_Transient.hxx>
+#include <Standard_DefineHandle.hxx>
+DEFINE_STANDARD_HANDLE( CASCatch_Failure, Standard_Transient )
+
+#include <Standard.hxx>
+
+/*!
+ * \class CASCatch_Failure
+ * \brief This class presents an exception to be thrown
+ *
+ */
+class CASCatch_Failure : public Standard_Transient
+{
+
+public:
+
+Standard_EXPORT CASCatch_Failure();
+Standard_EXPORT CASCatch_Failure(const Standard_CString aString);
+Standard_EXPORT void Reraise(const Standard_CString aMessage) ;
+Standard_EXPORT Standard_CString GetError() const;
+Standard_EXPORT static Handle_CASCatch_Failure Caught() ;
+Standard_EXPORT static void Raise(const Standard_CString aMessage = "") ;
+Standard_EXPORT virtual void Throw() const;public:
+
+public:
+
+DEFINE_STANDARD_RTTI( CASCatch_Failure )
+
+private:
+/*!\var myMessage
+ * \brief stores an exception message
+ */
+Standard_CString myMessage;
+
+};
+
+
+#endif
+++ /dev/null
-// KERNEL Utils : common utils for KERNEL
-// Copyright (C) 2003 CEA
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
-//
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-//
-// See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-
-
-#include "CASCatch_SignalsHandler.h"
-#include <OSD.hxx>
-
-
-CASCatch_SignalsHandler::CASCatch_SignalsHandler(bool theFloatingSignal)
-{
- OSD::SetSignal(theFloatingSignal);
-}
+++ /dev/null
-// KERNEL Utils : common utils for KERNEL
-// Copyright (C) 2003 CEA
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
-//
-
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-//
-// See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
-
-#ifndef _CASCATCH_SIGNALSHANDLER_H_
-#define _CASCATCH_SIGNALSHANDLER_H_
-
-
-#include "Utils_SignalsHandler.h"
-#include <Standard_ErrorHandler.hxx>
-
-class Standard_EXPORT CASCatch_SignalsHandler: private Utils_SignalsHandler{
- public:
- CASCatch_SignalsHandler(bool theFloatingSignal = true);
-};
-
-
-#endif
-# SALOME Utils : general SALOME's definitions and tools
-#
-# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#
-# See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
-#
-#
-#
# File : Makefile.in
-# Author : Marc Tajchman (CEA)
+# Author : Sergey RUIN (OCN)
# Module : SALOME
-# $Header$
top_srcdir=@top_srcdir@
top_builddir=../..
srcdir=@srcdir@
-VPATH=.:@srcdir@:@top_srcdir@/idl
+VPATH=.:@srcdir@:@top_srcdir@/idl:$(top_srcdir)/idl
@COMMENCE@
# header files
-EXPORT_HEADERS= CASCatch_SignalsHandler.h
+EXPORT_HEADERS= CASCatch_Failure.hxx \
+ CASCatch_CatchSignals.hxx \
+ CASCatch_ErrorHandler.hxx
# Libraries targets
LIB = libCASCatch.la
-LIB_SRC = CASCatch_SignalsHandler.cxx
+
+LIB_SRC = CASCatch_Failure.cxx \
+ CASCatch_ErrorHandler.cxx \
+ CASCatch_CatchSignals.cxx
CPPFLAGS += $(OCC_INCLUDES)
CXXFLAGS += $(OCC_CXXFLAGS)