summaryrefslogtreecommitdiff
path: root/libs/ode-0.16.1/include/ode/odeconfig.h
diff options
context:
space:
mode:
authorsanine <sanine.not@pm.me>2022-10-01 20:59:36 -0500
committersanine <sanine.not@pm.me>2022-10-01 20:59:36 -0500
commitc5fc66ee58f2c60f2d226868bb1cf5b91badaf53 (patch)
tree277dd280daf10bf77013236b8edfa5f88708c7e0 /libs/ode-0.16.1/include/ode/odeconfig.h
parent1cf9cc3408af7008451f9133fb95af66a9697d15 (diff)
add ode
Diffstat (limited to 'libs/ode-0.16.1/include/ode/odeconfig.h')
-rw-r--r--libs/ode-0.16.1/include/ode/odeconfig.h218
1 files changed, 218 insertions, 0 deletions
diff --git a/libs/ode-0.16.1/include/ode/odeconfig.h b/libs/ode-0.16.1/include/ode/odeconfig.h
new file mode 100644
index 0000000..1a0c747
--- /dev/null
+++ b/libs/ode-0.16.1/include/ode/odeconfig.h
@@ -0,0 +1,218 @@
+/*************************************************************************
+ * *
+ * Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith. *
+ * All rights reserved. Email: russ@q12.org Web: www.q12.org *
+ * *
+ * This library is free software; you can redistribute it and/or *
+ * modify it under the terms of EITHER: *
+ * (1) The GNU Lesser General Public License as published by the Free *
+ * Software Foundation; either version 2.1 of the License, or (at *
+ * your option) any later version. The text of the GNU Lesser *
+ * General Public License is included with this library in the *
+ * file LICENSE.TXT. *
+ * (2) The BSD-style license that is included with this library in *
+ * the file LICENSE-BSD.TXT. *
+ * *
+ * This library is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files *
+ * LICENSE.TXT and LICENSE-BSD.TXT for more details. *
+ * *
+ *************************************************************************/
+
+#ifndef _ODE_ODECONFIG_H_
+#define _ODE_ODECONFIG_H_
+
+/* Pull in the standard headers */
+#include <stddef.h>
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <math.h>
+#include <string.h>
+#include <float.h>
+
+
+#include <ode/precision.h>
+
+
+#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) || (defined(__GNUC__) && defined(_WIN32))
+ #if defined(ODE_DLL)
+ #define ODE_API __declspec(dllexport)
+ #else
+ #define ODE_API
+ #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
+
+#define ODE_PURE_INLINE static __inline
+#define ODE_INLINE __inline
+
+#if defined(__cplusplus)
+ #define ODE_EXTERN_C extern "C"
+#else
+ #define ODE_EXTERN_C
+#endif
+
+#if defined(__GNUC__)
+#define ODE_NORETURN __attribute__((noreturn))
+#elif defined(_MSC_VER)
+#define ODE_NORETURN __declspec(noreturn)
+#else // #if !defined(_MSC_VER)
+#define ODE_NORETURN
+#endif // #if !defined(__GNUC__)
+
+
+/* Well-defined common data types...need to be defined for 64 bit systems */
+#if defined(__aarch64__) || defined(__alpha__) || defined(__ppc64__) \
+ || defined(__s390__) || defined(__s390x__) || defined(__zarch__) \
+ || defined(__mips__) || defined(__powerpc64__) || defined(__riscv) \
+ || (defined(__sparc__) && defined(__arch64__))
+ #include <stdint.h>
+ typedef int64_t dint64;
+ typedef uint64_t duint64;
+ typedef int32_t dint32;
+ typedef uint32_t duint32;
+ typedef int16_t dint16;
+ typedef uint16_t duint16;
+ typedef int8_t dint8;
+ typedef uint8_t duint8;
+
+ typedef intptr_t dintptr;
+ typedef uintptr_t duintptr;
+ typedef ptrdiff_t ddiffint;
+ typedef size_t dsizeint;
+
+#elif (defined(_M_IA64) || defined(__ia64__) || defined(_M_AMD64) || defined(__x86_64__)) && !defined(__ILP32__) && !defined(_ILP32)
+ #define X86_64_SYSTEM 1
+#if defined(_MSC_VER)
+ typedef __int64 dint64;
+ typedef unsigned __int64 duint64;
+#else
+#if defined(_LP64) || defined(__LP64__)
+typedef long dint64;
+typedef unsigned long duint64;
+#else
+ typedef long long dint64;
+ typedef unsigned long long duint64;
+#endif
+#endif
+ typedef int dint32;
+ typedef unsigned int duint32;
+ typedef short dint16;
+ typedef unsigned short duint16;
+ typedef signed char dint8;
+ typedef unsigned char duint8;
+
+ typedef dint64 dintptr;
+ typedef duint64 duintptr;
+ typedef dint64 ddiffint;
+ typedef duint64 dsizeint;
+
+#else
+#if defined(_MSC_VER)
+ typedef __int64 dint64;
+ typedef unsigned __int64 duint64;
+#else
+ typedef long long dint64;
+ typedef unsigned long long duint64;
+#endif
+ typedef int dint32;
+ typedef unsigned int duint32;
+ typedef short dint16;
+ typedef unsigned short duint16;
+ typedef signed char dint8;
+ typedef unsigned char duint8;
+
+ typedef dint32 dintptr;
+ typedef duint32 duintptr;
+ typedef dint32 ddiffint;
+ typedef duint32 dsizeint;
+
+#endif
+
+
+/* Define the dInfinity macro */
+#ifdef INFINITY
+ #ifdef dSINGLE
+ #define dInfinity ((float)INFINITY)
+ #else
+ #define dInfinity ((double)INFINITY)
+ #endif
+#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
+
+
+/* Define the dNaN macro */
+#if defined(NAN)
+ #define dNaN NAN
+#elif defined(__GNUC__)
+ #define dNaN ({ union { duint32 m_ui; float m_f; } un; un.m_ui = 0x7FC00000; un.m_f; })
+#elif defined(__cplusplus)
+ union _dNaNUnion
+ {
+ _dNaNUnion(): m_ui(0x7FC00000) {}
+ duint32 m_ui;
+ float m_f;
+ };
+ #define dNaN (_dNaNUnion().m_f)
+#else
+ #ifdef dSINGLE
+ #define dNaN ((float)(dInfinity - dInfinity))
+ #else
+ #define dNaN (dInfinity - dInfinity)
+ #endif
+#endif
+
+
+ /* Visual C does not define these functions */
+#if defined(_MSC_VER)
+ #define _ode_copysignf(x, y) ((float)_copysign(x, y))
+ #define _ode_copysign(x, y) _copysign(x, y)
+ #define _ode_nextafterf(x, y) _nextafterf(x, y)
+ #define _ode_nextafter(x, y) _nextafter(x, y)
+ #if !defined(_WIN64) && defined(dSINGLE)
+ #define _ODE__NEXTAFTERF_REQUIRED
+ ODE_EXTERN_C float _nextafterf(float x, float y);
+ #endif
+#else
+ #define _ode_copysignf(x, y) copysignf(x, y)
+ #define _ode_copysign(x, y) copysign(x, y)
+ #define _ode_nextafterf(x, y) nextafterf(x, y)
+ #define _ode_nextafter(x, y) nextafter(x, y)
+#endif
+
+
+#endif