#ifndef ODECONFIG_H #define ODECONFIG_H /* Pull in the standard headers */ #include #include #include #include #include #include #include #include #if defined(ODE_DLL) || defined(ODE_LIB) #define __ODE__ #endif /* Define a DLL export symbol for those platforms that need it */ #if defined(_MSC_VER) #if defined(ODE_DLL) #define ODE_API __declspec(dllexport) #elif !defined(ODE_LIB) #define ODE_DLL_API __declspec(dllimport) #endif #endif #if !defined(ODE_API) #define ODE_API #endif #if defined(_MSC_VER) # define ODE_API_DEPRECATED __declspec(deprecated) #elif defined (__GNUC__) && ( (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)) ) # define ODE_API_DEPRECATED __attribute__((__deprecated__)) #else # define ODE_API_DEPRECATED #endif /* Well-defined common data types...need to define for 64 bit systems */ #if defined(_M_IA64) || defined(__ia64__) || defined(_M_AMD64) || defined(__x86_64__) #define X86_64_SYSTEM 1 typedef int int32; typedef unsigned int uint32; typedef short int16; typedef unsigned short uint16; typedef signed char int8; typedef unsigned char uint8; #else typedef int int32; typedef unsigned int uint32; typedef short int16; typedef unsigned short uint16; typedef signed char int8; typedef unsigned char uint8; #endif /* Visual C does not define these functions */ #if defined(_MSC_VER) #define copysignf(x, y) ((float)_copysign(x, y)) #define copysign(x, y) _copysign(x, y) #define nextafterf(x, y) _nextafterf(x, y) #define nextafter(x, y) _nextafter(x, y) #if !defined(_WIN64) #define _ODE__NEXTAFTERF_REQUIRED #endif #endif /* Define the dInfinity macro */ #ifdef INFINITY #define dInfinity INFINITY #elif defined(HUGE_VAL) #ifdef dSINGLE #ifdef HUGE_VALF #define dInfinity HUGE_VALF #else #define dInfinity ((float)HUGE_VAL) #endif #else #define dInfinity HUGE_VAL #endif #else #ifdef dSINGLE #define dInfinity ((float)(1.0/0.0)) #else #define dInfinity (1.0/0.0) #endif #endif #endif