text: /*
   *  gucefPATCHER: GUCEF RAD module providing a patch delivery system
   *  Copyright (C) 2002 - 2007.  Dinand Vanvelzen
   *
   *  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, or (at your option) any later version.
   *
   *  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 
   */
  
  #ifndef GUCEF_PATCHER_MACROS_H
  #define GUCEF_PATCHER_MACROS_H
  
  /*
   *      Build configuration specific macros.
   *      Also includes the generic macros which are build config independant.
   */
   
  /*-------------------------------------------------------------------------//
  //                                                                         //
  //      INCLUDES                                                           //
  //                                                                         //
  //-------------------------------------------------------------------------*/
  
  #ifndef GUCEF_CORE_BASICMACROS_H
  #include "macros.h"                /* generic often used macros */
  #define GUCEF_CORE_BASICMACROS_H
  #endif /* GUCEF_CORE_BASICMACROS_H ? */
  
  #ifndef GUCEF_CORE_CTRACER_H
  #include "CTracer.h"
  #define GUCEF_CORE_CTRACER_H
  #endif /* GUCEF_CORE_CTRACER_H ? */
  
  #ifndef GUCEF_PATCHER_CONFIG_H
  #include "gucefPATCHER_config.h"
  #define GUCEF_PATCHER_CONFIG_H
  #endif /* GUCEF_PATCHER_CONFIG_H ? */
  
  #ifndef GUCEF_PATCHER_ETYPES_H
  #include "gucefPATCHER_ETypes.h"      /* simple types */
  #define GUCEF_PATCHER_ETYPES_H
  #endif /* GUCEF_PATCHER_ETYPES_H ? */
  
  /*-------------------------------------------------------------------------//
  //                                                                         //
  //      GENERAL MACROS                                                     //
  //                                                                         //
  //-------------------------------------------------------------------------*/
  
  /*
   *      Auto detection of debug mode
   */
  #ifndef MANUAL_DEBUG_MODE_DEFINE
    #if defined( _DEBUG )
      #define GUCEF_PATCHER_DEBUG_MODE
    #else
      #undef GUCEF_PATCHER_DEBUG_MODE
    #endif /* compiler DEBUG switches */
  #endif /* MANUAL_DEBUG_MODE_DEFINE ? */
  
  /*-------------------------------------------------------------------------*/
  
  /*
   *      Macros for dynamic linking or static linking. Use the switches in the
   *      config file to control the export type.
   */
  #ifdef GUCEFPATCHER_BUILD_MODULE
    #define GUCEF_PATCHER_BUILD_MODULE
  #endif
  
  #undef GUCEF_PATCHER_EXPORT
  #ifdef GUCEF_PATCHER_BUILD_MODULE
    #define GUCEF_PATCHER_EXPORT GUCEF_EXPORT
  #else
    #define GUCEF_PATCHER_EXPORT GUCEF_IMPORT
  #endif /* GUCEF_PATCHER_BUILD_MODULE ? */
  
  #undef GUCEF_PATCHER_EXPORT_CPP
  #ifdef GUCEF_PATCHER_EXPORT_CPP_CODE
    #define GUCEF_PATCHER_EXPORT_CPP GUCEF_PATCHER_EXPORT  
  #else
    #define GUCEF_PATCHER_EXPORT_CPP
  #endif /* GUCEF_PATCHER_EXPORT_CPP_CODE */
  
  #undef GUCEF_PATCHER_EXPORT_C 
  #ifdef GUCEF_PATCHER_EXPORT_C_CODE
    #define GUCEF_PATCHER_EXPORT_C GUCEF_PATCHER_EXPORT
  #else
    #define GUCEF_PATCHER_EXPORT_C
  #endif /* GUCEF_PATCHER_EXPORT_C_CODE */
  
  #define GUCEFPATCHER_EXPORT_CPP GUCEF_PATCHER_EXPORT_CPP
  #define GUCEFPATCHER_EXPORT_C GUCEF_PATCHER_EXPORT_C
  
  /*-------------------------------------------------------------------------*/
  
  #ifdef GUCEFPATCHER_DEBUG_MODE
    #ifndef TSPRINTING_H
      #include "tsprinting.h"
      #define TSPRINTING_H
    #endif /* TSPRINTING_H ? */
  #endif /* GUCEFPATCHER_DEBUG_MODE ? */
  
  /*-------------------------------------------------------------------------*/
  
  #undef DEBUGOUTPUT 
  #undef DEBUGOUTPUTs
  #undef DEBUGOUTPUTi
  #undef DEBUGOUTPUTss
  #undef DEBUGOUTPUTsi
  #undef DEBUGOUTPUTis
  #undef DEBUGOUTPUTsss
  #ifdef GUCEFPATCHER_DEBUG_MODE
    #ifdef GUCEFPATCHER_ADD_EXTRA_INFO_TO_DEBUGOUTPUT
      #define DEBUGOUTPUT( c_str ) ( GUCEF::CORE::tsprintf( "%s @ Line %d File %s\n", c_str, __LINE__, __FILE__ ) )
      #define DEBUGOUTPUTs DEBUGOUTPUT
      #define DEBUGOUTPUTi( intval ) ( GUCEF::CORE::tsprintf( "%i @ Line %d File %s\n", intval, __LINE__, __FILE__ ) )    
      #define DEBUGOUTPUTss( c_str1, c_str2 ) ( GUCEF::CORE::tsprintf( "%s%s @ Line %d File %s\n", c_str1, c_str2, __LINE__, __FILE__ ) )
      #define DEBUGOUTPUTis( intval, c_str ) ( GUCEF::CORE::tsprintf( "%i%s @ Line %d File %s\n", intval, c_str, __LINE__, __FILE__ ) )
      #define DEBUGOUTPUTsi( c_str, intval ) ( GUCEF::CORE::tsprintf( "%s%i @ Line %d File %s\n", c_str, intval, __LINE__, __FILE__ ) )    
      #define DEBUGOUTPUTsss( c_str1, c_str2, c_str3 ) ( GUCEF::CORE::tsprintf( "%s%s%s @ Line %d File %s\n", c_str1, c_str2, c_str3, __LINE__, __FILE__ ) )
    #else
      #define DEBUGOUTPUT( c_str ) ( GUCEF::CORE::tsprintf( "%s\n", c_str ) )
      #define DEBUGOUTPUTs DEBUGOUTPUT
      #define DEBUGOUTPUTi( intval ) ( GUCEF::CORE::tsprintf( "%i\n", intval ) )    
      #define DEBUGOUTPUTss( c_str1, c_str2 ) ( GUCEF::CORE::tsprintf( "%s%s\n", c_str1, c_str2 ) )
      #define DEBUGOUTPUTis( intval, c_str ) ( GUCEF::CORE::tsprintf( "%i%s\n", intval, c_str ) )
      #define DEBUGOUTPUTsi( c_str, intval ) ( GUCEF::CORE::tsprintf( "%s%i\n", c_str, intval ) )
      #define DEBUGOUTPUTsss( c_str1, c_str2, c_str3 ) ( GUCEF::CORE::tsprintf( "%s%s%s\n", c_str1, c_str2, c_str3 ) )
    #endif  
  #else
    #define DEBUGOUTPUT( c_str ) ( )
    #define DEBUGOUTPUTi ( intval ) ( )
    #define DEBUGOUTPUTs DEBUGOUTPUT
    #define DEBUGOUTPUTss( c_str1, c_str2 ) ( )
    #define DEBUGOUTPUTsi( c_str, intval ) ( )
    #define DEBUGOUTPUTis( intval, c_str ) ( )
    #define DEBUGOUTPUTsss( c_str1, c_str2, c_str3 ) ( )
  #endif /* DEBUG_MODE ? */  
  
  /*-------------------------------------------------------------------------*/
  
  #endif /* GUCEF_PATCHER_MACROS_H ? */
  
  /*-------------------------------------------------------------------------//
  //                                                                         //
  //      Info & Changes                                                     //
  //                                                                         //
  //-------------------------------------------------------------------------//
  
  - 26-03-2005 :
         - Initial version of this file.
  
  -----------------------------------------------------------------------------*/
  