23 #ifndef _ODE_ODECONFIG_H_
24 #define _ODE_ODECONFIG_H_
37 #include <ode/precision.h>
40 #if defined(ODE_DLL) || defined(ODE_LIB)
45 #if defined(_MSC_VER) || (defined(__GNUC__) && defined(_WIN32))
47 #define ODE_API __declspec(dllexport)
48 #elif !defined(ODE_LIB)
49 #define ODE_DLL_API __declspec(dllimport)
58 # define ODE_API_DEPRECATED __declspec(deprecated)
59 #elif defined (__GNUC__) && ( (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)) )
60 # define ODE_API_DEPRECATED __attribute__((__deprecated__))
62 # define ODE_API_DEPRECATED
65 #define ODE_PURE_INLINE static __inline
66 #define ODE_INLINE __inline
68 #if defined(__cplusplus)
69 #define ODE_EXTERN_C extern "C"
75 #if defined(_M_IA64) || defined(__ia64__) || defined(_M_AMD64) || defined(__x86_64__)
76 #define X86_64_SYSTEM 1
78 typedef __int64 dint64;
79 typedef unsigned __int64 duint64;
81 typedef long long dint64;
82 typedef unsigned long long duint64;
85 typedef unsigned int duint32;
87 typedef unsigned short duint16;
88 typedef signed char dint8;
89 typedef unsigned char duint8;
92 typedef __int64 dint64;
93 typedef unsigned __int64 duint64;
95 typedef long long dint64;
96 typedef unsigned long long duint64;
99 typedef unsigned int duint32;
100 typedef short dint16;
101 typedef unsigned short duint16;
102 typedef signed char dint8;
103 typedef unsigned char duint8;
110 #define dInfinity ((float)INFINITY)
112 #define dInfinity ((double)INFINITY)
114 #elif defined(HUGE_VAL)
117 #define dInfinity HUGE_VALF
119 #define dInfinity ((float)HUGE_VAL)
122 #define dInfinity HUGE_VAL
126 #define dInfinity ((float)(1.0/0.0))
128 #define dInfinity (1.0/0.0)
134 #if defined(_MSC_VER)
135 #define _ode_copysignf(x, y) ((float)_copysign(x, y))
136 #define _ode_copysign(x, y) _copysign(x, y)
137 #define _ode_nextafterf(x, y) _nextafterf(x, y)
138 #define _ode_nextafter(x, y) _nextafter(x, y)
139 #if !defined(_WIN64) && defined(dSINGLE)
140 #define _ODE__NEXTAFTERF_REQUIRED
141 ODE_EXTERN_C
float _nextafterf(
float x,
float y);
144 #define _ode_copysignf(x, y) copysignf(x, y)
145 #define _ode_copysign(x, y) copysign(x, y)
146 #define _ode_nextafterf(x, y) nextafterf(x, y)
147 #define _ode_nextafter(x, y) nextafter(x, y)