diff --git a/include/bx/platform.h b/include/bx/platform.h index 4ed4752..9f62020 100644 --- a/include/bx/platform.h +++ b/include/bx/platform.h @@ -6,12 +6,37 @@ #ifndef BX_PLATFORM_H_HEADER_GUARD #define BX_PLATFORM_H_HEADER_GUARD +// Architecture +#define BX_ARCH_32BIT 0 +#define BX_ARCH_64BIT 0 + +// Compiler #define BX_COMPILER_CLANG 0 #define BX_COMPILER_CLANG_ANALYZER 0 #define BX_COMPILER_GCC 0 #define BX_COMPILER_MSVC 0 -#define BX_COMPILER_MSVC_COMPATIBLE 0 +#define BX_COMPILER_MSVC_COMPATIBLE (BX_CRT_MSVC) +// Endianess +#define BX_CPU_ENDIAN_BIG 0 +#define BX_CPU_ENDIAN_LITTLE 0 + +// CPU +#define BX_CPU_ARM 0 +#define BX_CPU_JIT 0 +#define BX_CPU_MIPS 0 +#define BX_CPU_PPC 0 +#define BX_CPU_RISCV 0 +#define BX_CPU_X86 0 + +// C Runtime +#define BX_CRT_MSVC 0 +#define BX_CRT_GLIBC 0 +#define BX_CRT_NEWLIB 0 +#define BX_CRT_MINGW 0 +#define BX_CRT_MUSL 0 + +// Platform #define BX_PLATFORM_ANDROID 0 #define BX_PLATFORM_EMSCRIPTEN 0 #define BX_PLATFORM_BSD 0 @@ -28,19 +53,6 @@ #define BX_PLATFORM_XBOX360 0 #define BX_PLATFORM_XBOXONE 0 -#define BX_CPU_ARM 0 -#define BX_CPU_JIT 0 -#define BX_CPU_MIPS 0 -#define BX_CPU_PPC 0 -#define BX_CPU_RISCV 0 -#define BX_CPU_X86 0 - -#define BX_ARCH_32BIT 0 -#define BX_ARCH_64BIT 0 - -#define BX_CPU_ENDIAN_BIG 0 -#define BX_CPU_ENDIAN_LITTLE 0 - // http://sourceforge.net/apps/mediawiki/predef/index.php?title=Compilers #if defined(__clang__) // clang defines __GNUC__ or _MSC_VER @@ -51,17 +63,24 @@ # define BX_COMPILER_CLANG_ANALYZER 1 # endif // defined(__clang_analyzer__) # if defined(_MSC_VER) -# undef BX_COMPILER_MSVC_COMPATIBLE -# define BX_COMPILER_MSVC_COMPATIBLE _MSC_VER -# endif // defined(_MSC_VER) +# undef BX_CRT_MSVC +# define BX_CRT_MSVC 1 +# elif defined(__GLIBC__) +# undef BX_CRT_GLIBC +# define BX_CRT_GLIBC (__GLIBC__ * 10000 + __GLIBC_MINOR__ * 100) +# endif // defined(__GLIBC__) #elif defined(_MSC_VER) # undef BX_COMPILER_MSVC # define BX_COMPILER_MSVC _MSC_VER -# undef BX_COMPILER_MSVC_COMPATIBLE -# define BX_COMPILER_MSVC_COMPATIBLE _MSC_VER +# undef BX_CRT_MSVC +# define BX_CRT_MSVC 1 #elif defined(__GNUC__) # undef BX_COMPILER_GCC # define BX_COMPILER_GCC (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) +# if defined(__GLIBC__) +# undef BX_CRT_GLIBC +# define BX_CRT_GLIBC (__GLIBC__ * 10000 + __GLIBC_MINOR__ * 100) +# endif // defined(__GLIBC__) #else # error "BX_COMPILER_* is not defined!" #endif //