98 lines
2.3 KiB
C
98 lines
2.3 KiB
C
|
#ifndef ODECONFIG_H
|
||
|
#define ODECONFIG_H
|
||
|
|
||
|
|
||
|
/* Pull in the standard headers */
|
||
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
#include <stdarg.h>
|
||
|
#include <math.h>
|
||
|
#include <string.h>
|
||
|
#include <float.h>
|
||
|
|
||
|
|
||
|
#if defined(ODE_DLL) || defined(ODE_LIB)
|
||
|
#define __ODE__
|
||
|
#endif
|
||
|
|
||
|
/* Define a DLL export symbol for those platforms that need it */
|
||
|
/* OSRF mofication: add visibility definitions and platform checks */
|
||
|
#if defined _WIN32 || defined __CYGWIN__
|
||
|
#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
|
||
|
#else
|
||
|
#if __GNUC__ >= 4
|
||
|
#define ODE_API __attribute__ ((visibility ("default")))
|
||
|
#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)
|
||
|
#define _ODE__NEXTAFTERF_REQUIRED
|
||
|
#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
|