odeconfig.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #ifndef ODECONFIG_H
  2. #define ODECONFIG_H
  3. #ifndef dDOUBLE
  4. #ifndef dSINGLE
  5. #define dSINGLE
  6. #endif
  7. #endif
  8. /* Pull in the standard headers */
  9. #include <stdio.h>
  10. #include <stdlib.h>
  11. #include <stdarg.h>
  12. #include <math.h>
  13. #include <string.h>
  14. #include <float.h>
  15. #if defined(ODE_DLL) || defined(ODE_LIB) || !defined(_MSC_VER)
  16. #define __ODE__
  17. #endif
  18. /* Define a DLL export symbol for those platforms that need it */
  19. #if defined(_MSC_VER)
  20. #if defined(ODE_DLL)
  21. #define ODE_API __declspec(dllexport)
  22. #elif !defined(ODE_LIB)
  23. #define ODE_DLL_API __declspec(dllimport)
  24. #endif
  25. #endif
  26. #if !defined(ODE_API)
  27. #define ODE_API
  28. #endif
  29. #if defined(_MSC_VER)
  30. # define ODE_API_DEPRECATED __declspec(deprecated)
  31. #elif defined (__GNUC__) && ( (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)) )
  32. # define ODE_API_DEPRECATED __attribute__((__deprecated__))
  33. #else
  34. # define ODE_API_DEPRECATED
  35. #endif
  36. /* Well-defined common data types...need to define for 64 bit systems */
  37. #if defined(_M_IA64) || defined(__ia64__) || defined(_M_AMD64) || defined(__x86_64__)
  38. #define X86_64_SYSTEM 1
  39. typedef int int32;
  40. typedef unsigned int uint32;
  41. typedef short int16;
  42. typedef unsigned short uint16;
  43. typedef char int8;
  44. typedef unsigned char uint8;
  45. #else
  46. typedef int int32;
  47. typedef unsigned int uint32;
  48. typedef short int16;
  49. typedef unsigned short uint16;
  50. typedef char int8;
  51. typedef unsigned char uint8;
  52. #endif
  53. /* Visual C does not define these functions */
  54. #if defined(_MSC_VER)
  55. #define copysignf _copysign
  56. #define copysign _copysign
  57. #endif
  58. /* Define the dInfinity macro */
  59. #ifdef INFINITY
  60. #define dInfinity INFINITY
  61. #elif defined(HUGE_VAL)
  62. #ifdef dSINGLE
  63. #ifdef HUGE_VALF
  64. #define dInfinity HUGE_VALF
  65. #else
  66. #define dInfinity ((float)HUGE_VAL)
  67. #endif
  68. #else
  69. #define dInfinity HUGE_VAL
  70. #endif
  71. #else
  72. #ifdef dSINGLE
  73. #define dInfinity ((float)(1.0/0.0))
  74. #else
  75. #define dInfinity (1.0/0.0)
  76. #endif
  77. #endif
  78. #endif