config-default.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. /* This file was autogenerated by Premake */
  2. #ifndef _ODE_CONFIG_H_
  3. #define _ODE_CONFIG_H_
  4. /******************************************************************
  5. * CONFIGURATON SETTINGS - you can change these, and then rebuild
  6. * ODE to modify the behavior of the library.
  7. *
  8. * dTRIMESH_ENABLED - enable/disable trimesh support
  9. * dTRIMESH_OPCODE - use the OPCODE trimesh engine
  10. * dTRIMESH_GIMPACT - use the GIMPACT trimesh engine
  11. * Only one trimesh engine should be enabled.
  12. *
  13. * dTRIMESH_16BIT_INDICES (todo: opcode only)
  14. * Setup the trimesh engine to use 16 bit
  15. * triangle indices. The default is to use
  16. * 32 bit indices. Use the dTriIndex type to
  17. * detect the correct index size.
  18. *
  19. * dTRIMESH_OPCODE_USE_NEWOLD_TRIMESH_TRIMESH_COLLIDER
  20. * Use old implementation of trimesh-trimesh collider
  21. * (for backward compatibility only)
  22. *
  23. * dOU_ENABLED
  24. * dATOMICS_ENABLED
  25. * dTLS_ENABLED
  26. * Use generic features of OU library, atomic API
  27. * and TLS API respectively.
  28. * Generic features and atomic API are always enabled,
  29. * unless threading interface support is disabled.
  30. * Using TLS for global variables allows calling ODE
  31. * collision detection functions from multiple threads.
  32. *
  33. * dBUILTIN_THREADING_IMPL_ENABLED
  34. * Include built-in multithreaded threading
  35. * implementation (still must be created and assigned
  36. * to be used).
  37. *
  38. ******************************************************************/
  39. #define dTRIMESH_ENABLED 1
  40. #define dTRIMESH_OPCODE 1
  41. #define dTRIMESH_16BIT_INDICES 0
  42. #define dTRIMESH_OPCODE_USE_OLD_TRIMESH_TRIMESH_COLLIDER 0
  43. /* #define dOU_ENABLED 1 */
  44. /* #define dATOMICS_ENABLED 1 */
  45. /* #define dTLS_ENABLED 1 */
  46. /* #define dTHREADING_INTF_DISABLED 1 */
  47. /* #define dBUILTIN_THREADING_IMPL_ENABLED 1 */
  48. /******************************************************************
  49. * SYSTEM SETTINGS - you shouldn't need to change these. If you
  50. * run into an issue with these settings, please report it to
  51. * the ODE bug tracker at:
  52. * http://sf.net/tracker/?group_id=24884&atid=382799
  53. ******************************************************************/
  54. /* Try to identify the platform */
  55. #if defined(_XENON)
  56. #define ODE_PLATFORM_XBOX360
  57. #elif defined(SN_TARGET_PSP_HW)
  58. #define ODE_PLATFORM_PSP
  59. #elif defined(SN_TARGET_PS3)
  60. #define ODE_PLATFORM_PS3
  61. #elif defined(_MSC_VER) || defined(__CYGWIN32__) || defined(__MINGW32__)
  62. #define ODE_PLATFORM_WINDOWS
  63. #elif defined(__linux__)
  64. #define ODE_PLATFORM_LINUX
  65. #elif defined(__APPLE__) && defined(__MACH__)
  66. #define ODE_PLATFORM_OSX
  67. #else
  68. #error "Need some help identifying the platform!"
  69. #endif
  70. /* Additional platform defines used in the code */
  71. #if defined(ODE_PLATFORM_WINDOWS) && !defined(WIN32)
  72. #define WIN32
  73. #endif
  74. #if defined(__CYGWIN32__) || defined(__MINGW32__)
  75. #define CYGWIN
  76. #endif
  77. #if defined(ODE_PLATFORM_OSX)
  78. #define macintosh
  79. #endif
  80. #if !defined(ODE_PLATFORM_OSX) && !defined(ODE_PLATFORM_PS3)
  81. #include <malloc.h>
  82. #endif
  83. #if !defined(ODE_PLATFORM_WINDOWS)
  84. #include <alloca.h>
  85. #endif
  86. #ifdef dSINGLE
  87. #define dEpsilon FLT_EPSILON
  88. #else
  89. #define dEpsilon DBL_EPSILON
  90. #endif
  91. /* The efficient alignment. most platforms align data structures to some
  92. * number of bytes, but this is not always the most efficient alignment.
  93. * for example, many x86 compilers align to 4 bytes, but on a pentium it is
  94. * important to align doubles to 8 byte boundaries (for speed), and the 4
  95. * floats in a SIMD register to 16 byte boundaries. many other platforms have
  96. * similar behavior. setting a larger alignment can waste a (very) small
  97. * amount of memory. NOTE: this number must be a power of two. */
  98. #define EFFICIENT_ALIGNMENT 16
  99. /* Basic OU functionality is required if either atomic API or TLS support
  100. * is enabled. */
  101. #if (dATOMICS_ENABLED || dTLS_ENABLED) && !dOU_ENABLED
  102. #undef dOU_ENABLED
  103. #define dOU_ENABLED 1
  104. #endif
  105. #include "typedefs.h"
  106. #endif