/** SGX

The   sss    gggg x   x   
     s      g      x x    Engine
      sss   g  gg   x
         s  g   g  x x          Copyright 1995-2009.
     ssss    gggg x   x         Steven Goodwin. All Rights Reserved.
    
This version has been released under the GNU Public License v2.0.

Please see the license files for details.

File: sgx/include/sgx/core/types/compiler.hpp

*/

#ifndef SGX_CORE_TYPES_COMPILER_HPP 
#define SGX_CORE_TYPES_COMPILER_HPP

//
// These macros use the (compiler-specific) project settings
// to create independant versions for the game.
//
#ifdef  _MSC_VER
 #include "sgx/core/types/compiler/msvc.hpp"
#endif

#ifdef  __MWERKS__
 #include "sgx/core/types/compiler/mwerks.hpp"
#endif

#ifdef  __GNUC__
 #include "sgx/core/types/compiler/gnu.hpp"
#endif


//
// add any generic macros the compiler doesn't support
//

// For manually aligning data
#ifndef SGX_PACKDATA_BEGIN
  #define SGX_PACKDATA_BEGIN(align)
#endif

#ifndef SGX_PACKDATA_END
  #define SGX_PACKDATA_END(align)
#endif

// Compiler support
#ifndef SGX_INLINE
  #define SGX_INLINE        inline
#endif

#ifndef SGX_FORCE_INLINE
  #define SGX_FORCE_INLINE  inline
#endif

#ifndef SGXAPI
  #define SGXAPI
#endif

#ifndef SGX_UNUSED
  #define SGX_UNUSED(_arg)	_arg
#endif

#endif /* SGX_CORE_TYPES_COMPILER_HPP */
