/* * tesses_cpu_arch.h * * This is free and unencumbered software released into the public domain. * For more information, please refer to */ #ifndef TESSES_CPU_ARCH_H #define TESSES_CPU_ARCH_H #if defined(__TessesOS__) #define TESSES_CPU_TARGET_OS "tessesos" #elif defined(__linux__) #define TESSES_CPU_TARGET_OS "linux" #elif defined(__FreeBSD__) #define TESSES_CPU_TARGET_OS "freebsd" #elif defined(__OpenBSD__) #define TESSES_CPU_TARGET_OS "openbsd" #elif defined(__NetBSD__) #define TESSES_CPU_TARGET_OS "netbsd" #elif defined(__DragonFly__) #define TESSES_CPU_TARGET_OS "dragonfly" #elif defined(__APPLE__) && defined(__MACH__) #define TESSES_CPU_TARGET_OS "macos" #elif defined(_WIN32) || defined(_WIN64) #define TESSES_CPU_TARGET_OS "windows" #else #define TESSES_CPU_TARGET_OS "unknown" #endif /* ---- Arch ---- */ #if defined(__x86_64__) || defined(_M_X64) #define TESSES_CPU_TARGET_ARCH "x64" #elif defined(__i386__) || defined(_M_IX86) #define TESSES_CPU_TARGET_ARCH "x86" #elif defined(__aarch64__) || defined(_M_ARM64) #define TESSES_CPU_TARGET_ARCH "arm64" #elif defined(__arm__) || defined(_M_ARM) #define TESSES_CPU_TARGET_ARCH "arm" #elif defined(__riscv) && __riscv_xlen == 64 #define TESSES_CPU_TARGET_ARCH "riscv64" #elif defined(__riscv) #define TESSES_CPU_TARGET_ARCH "riscv" #elif defined(__powerpc64__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ #define TESSES_CPU_TARGET_ARCH "ppc64le" #elif defined(__powerpc64__) #define TESSES_CPU_TARGET_ARCH "ppc64" #elif defined(__powerpc__) #define TESSES_CPU_TARGET_ARCH "ppc" #elif defined(__s390x__) #define TESSES_CPU_TARGET_ARCH "s390x" #elif defined(__loongarch__) #define TESSES_CPU_TARGET_ARCH "loongarch64" #elif defined(__mips__) #define TESSES_CPU_TARGET_ARCH "mips" #elif defined(__sparc__) #define TESSES_CPU_TARGET_ARCH "sparc" #elif defined(__sh__) #define TESSES_CPU_TARGET_ARCH "sh" #elif defined(__m68k__) #define TESSES_CPU_TARGET_ARCH "m68k" #elif defined(__alpha__) #define TESSES_CPU_TARGET_ARCH "alpha" #elif defined(__arc__) #define TESSES_CPU_TARGET_ARCH "arc" #elif defined(__csky__) #define TESSES_CPU_TARGET_ARCH "csky" #elif defined(__hexagon__) #define TESSES_CPU_TARGET_ARCH "hexagon" #elif defined(__microblaze__) #define TESSES_CPU_TARGET_ARCH "microblaze" #elif defined(__nios2__) #define TESSES_CPU_TARGET_ARCH "nios2" #elif defined(__or1k__) #define TESSES_CPU_TARGET_ARCH "openrisc" #elif defined(__parisc__) #define TESSES_CPU_TARGET_ARCH "parisc" #elif defined(__xtensa__) #define TESSES_CPU_TARGET_ARCH "xtensa" #else #define TESSES_CPU_TARGET_ARCH "unknown" #endif #define TESSES_CPU_TARGET TESSES_CPU_TARGET_OS "-" TESSES_CPU_TARGET_ARCH #endif