4 /* Pull in the standard headers */
15 #if defined(ODE_DLL) || defined(ODE_LIB)
19 /* Define a DLL export symbol for those platforms that need it */
22 #define ODE_API __declspec(dllexport)
23 #elif !defined(ODE_LIB)
24 #define ODE_DLL_API __declspec(dllimport)
33 # define ODE_API_DEPRECATED __declspec(deprecated)
34 #elif defined (__GNUC__) && ( (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)) )
35 # define ODE_API_DEPRECATED __attribute__((__deprecated__))
37 # define ODE_API_DEPRECATED
40 /* Well-defined common data types...need to define for 64 bit systems */
41 #if defined(_M_IA64) || defined(__ia64__) || defined(_M_AMD64) || defined(__x86_64__)
42 #define X86_64_SYSTEM 1
44 typedef unsigned int uint32;
46 typedef unsigned short uint16;
47 typedef signed char int8;
48 typedef unsigned char uint8;
51 typedef unsigned int uint32;
53 typedef unsigned short uint16;
54 typedef signed char int8;
55 typedef unsigned char uint8;
58 /* Visual C does not define these functions */
60 #define copysignf(x, y) ((float)_copysign(x, y))
61 #define copysign(x, y) _copysign(x, y)
62 #define nextafterf(x, y) _nextafterf(x, y)
63 #define nextafter(x, y) _nextafter(x, y)
65 #define _ODE__NEXTAFTERF_REQUIRED
71 /* Define the dInfinity macro */
73 #define dInfinity INFINITY
74 #elif defined(HUGE_VAL)
77 #define dInfinity HUGE_VALF
79 #define dInfinity ((float)HUGE_VAL)
82 #define dInfinity HUGE_VAL
86 #define dInfinity ((float)(1.0/0.0))
88 #define dInfinity (1.0/0.0)