add platform.h to easily check for different systems and archs
This commit is contained in:
parent
55d09cb437
commit
32b59e0c2e
72
octa/platform.h
Normal file
72
octa/platform.h
Normal file
|
@ -0,0 +1,72 @@
|
|||
/* Platform specific definitions for OctaSTD.
|
||||
*
|
||||
* This file is part of OctaSTD. See COPYING.md for futher information.
|
||||
*/
|
||||
|
||||
#ifndef OCTA_PLATFORM_H
|
||||
#define OCTA_PLATFORM_H
|
||||
|
||||
#if defined(WIN32) || defined(_WIN32) || (defined(__WIN32) && !defined(__CYGWIN__))
|
||||
# define OCTA_PLATFORM_WIN32 1
|
||||
# if defined(WIN64) || defined(_WIN64)
|
||||
# define OCTA_PLATFORM_WIN64 1
|
||||
# endif
|
||||
#else
|
||||
# define OCTA_PLATFORM_POSIX 1
|
||||
# if defined(__linux__)
|
||||
# define OCTA_PLATFORM_LINUX 1
|
||||
# endif
|
||||
# if defined(__APPLE__)
|
||||
# define OCTA_PLATFORM_OSX 1
|
||||
# endif
|
||||
# if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
|
||||
# define OCTA_PLATFORM_FREEBSD 1
|
||||
# define OCTA_PLATFORM_BSD 1
|
||||
# endif
|
||||
# if defined(__NetBSD__)
|
||||
# define OCTA_PLATFORM_NETBSD 1
|
||||
# define OCTA_PLATFORM_BSD 1
|
||||
# endif
|
||||
# if defined(__OpenBSD__)
|
||||
# define OCTA_PLATFORM_OPENBSD 1
|
||||
# define OCTA_PLATFORM_BSD 1
|
||||
# endif
|
||||
# if defined(__DragonFly__)
|
||||
# define OCTA_PLATFORM_DRAGONFLYBSD 1
|
||||
# define OCTA_PLATFORM_BSD 1
|
||||
# endif
|
||||
# if defined(sun) || defined(__sun)
|
||||
# define OCTA_PLATFORM_SOLARIS 1
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(__clang__)
|
||||
# define OCTA_TOOLCHAIN_CLANG 1
|
||||
#endif
|
||||
|
||||
#if defined(__GNUC__)
|
||||
# define OCTA_TOOLCHAIN_GNU 1
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
# define OCTA_TOOLCHAIN_MSVC 1
|
||||
#endif
|
||||
|
||||
#define OCTA_ENDIAN_LIL 1234
|
||||
#define OCTA_ENDIAN_BIG 4321
|
||||
|
||||
#ifdef OCTA_PLATFORM_LINUX
|
||||
# include <endian.h>
|
||||
# define OCTA_BYTE_ORDER __BYTE_ORDER
|
||||
#else
|
||||
# if defined(__BIG_ENDIAN__) || defined(__ARMEB__) || defined(__THUMBEB__) || \
|
||||
defined(__AARCH64EB__) || defined(__MIPSEB__) || defined(__MIPSEB) || \
|
||||
defined(_MIPSEB) || defined(__ppc__) || defined(__POWERPC__) || \
|
||||
defined(_M_PPC) || defined(__sparc__)
|
||||
# define OCTA_BYTE_ORDER OCTA_ENDIAN_BIG
|
||||
# else
|
||||
# define OCTA_BYTE_ORDER OCTA_ENDIAN_LIL
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#endif
|
Loading…
Reference in a new issue