Open Dynamics Engine

odeconfig.h

00001 #ifndef ODECONFIG_H
00002 #define ODECONFIG_H
00003 
00004 #ifndef dDOUBLE
00005 #ifndef dSINGLE
00006 #define dSINGLE
00007 #endif
00008 #endif
00009 
00010 /* Pull in the standard headers */
00011 #include <stdio.h>
00012 #include <stdlib.h>
00013 #include <stdarg.h>
00014 #include <math.h>
00015 #include <string.h>
00016 #include <float.h>
00017 
00018 #if defined(ODE_DLL) || defined(ODE_LIB) || !defined(_MSC_VER)
00019 #define __ODE__
00020 #endif
00021 
00022 /* Define a DLL export symbol for those platforms that need it */
00023 #if defined(_MSC_VER)
00024   #if defined(ODE_DLL)
00025     #define ODE_API __declspec(dllexport)
00026   #elif !defined(ODE_LIB)
00027     #define ODE_DLL_API __declspec(dllimport)
00028   #endif
00029 #endif
00030 
00031 #if !defined(ODE_API)
00032   #define ODE_API
00033 #endif
00034 
00035 #if defined(_MSC_VER)
00036 #  define ODE_API_DEPRECATED __declspec(deprecated)
00037 #elif defined (__GNUC__) && ( (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)) )
00038 #  define ODE_API_DEPRECATED __attribute__((__deprecated__))
00039 #else
00040 #  define ODE_API_DEPRECATED
00041 #endif
00042 
00043 /* Well-defined common data types...need to define for 64 bit systems */
00044 #if defined(_M_IA64) || defined(__ia64__) || defined(_M_AMD64) || defined(__x86_64__)
00045   #define X86_64_SYSTEM   1
00046   typedef int             int32;
00047   typedef unsigned int    uint32;
00048   typedef short           int16;
00049   typedef unsigned short  uint16;
00050   typedef char            int8;
00051   typedef unsigned char   uint8;
00052 #else
00053   typedef int             int32;
00054   typedef unsigned int    uint32;
00055   typedef short           int16;
00056   typedef unsigned short  uint16;
00057   typedef char            int8;
00058   typedef unsigned char   uint8;
00059 #endif
00060 
00061 /* Visual C does not define these functions */
00062 #if defined(_MSC_VER)
00063   #define copysignf _copysign
00064   #define copysign _copysign
00065 #endif
00066 
00067 
00068 
00069 /* Define the dInfinity macro */
00070 #ifdef INFINITY
00071   #define dInfinity INFINITY
00072 #elif defined(HUGE_VAL)
00073   #ifdef dSINGLE
00074     #ifdef HUGE_VALF
00075       #define dInfinity HUGE_VALF
00076     #else
00077       #define dInfinity ((float)HUGE_VAL)
00078     #endif
00079   #else
00080     #define dInfinity HUGE_VAL
00081   #endif
00082 #else
00083   #ifdef dSINGLE
00084     #define dInfinity ((float)(1.0/0.0))
00085   #else
00086     #define dInfinity (1.0/0.0)
00087   #endif
00088 #endif
00089 
00090 
00091 #endif