X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fplatform.h;h=b9c8a411090f80b5a91a3776d3732d9f2dfe8082;hp=d8773420bb4a8b18cf23398364d16f49d178f15e;hb=HEAD;hpb=e05dda5c8cc6687dcbc59e182a81aed627e262d0 diff --git a/src/libgame/platform.h b/src/libgame/platform.h index d8773420..b9c8a411 100644 --- a/src/libgame/platform.h +++ b/src/libgame/platform.h @@ -1,106 +1,187 @@ -/*********************************************************** -* Artsoft Retro-Game Library * -*----------------------------------------------------------* -* (c) 1994-2006 Artsoft Entertainment * -* Holger Schemel * -* Detmolder Strasse 189 * -* 33604 Bielefeld * -* Germany * -* e-mail: info@artsoft.org * -*----------------------------------------------------------* -* platform.h * -***********************************************************/ +// ============================================================================ +// Artsoft Retro-Game Library +// ---------------------------------------------------------------------------- +// (c) 1995-2014 by Artsoft Entertainment +// Holger Schemel +// info@artsoft.org +// https://www.artsoft.org/ +// ---------------------------------------------------------------------------- +// platform.h +// ============================================================================ #ifndef PLATFORM_H #define PLATFORM_H -/* ========================================================================= */ -/* define keywords for supported main platforms (Unix, DOS and Windows) */ -/* ========================================================================= */ +// ============================================================================ +// define main platform keywords +// ============================================================================ -#if defined(MSDOS) -#define PLATFORM_MSDOS -#elif defined(WIN32) -#define PLATFORM_WIN32 +#if defined(WIN32) || defined(_WIN32) || defined(_WIN64) +#define PLATFORM_WINDOWS +#define PLATFORM_STRING "Windows" #else #define PLATFORM_UNIX +#define PLATFORM_STRING "Unix" #endif -/* ========================================================================= */ -/* define additional keywords for MS-DOS platform */ -/* ========================================================================= */ +// ============================================================================ +// define additional platform keywords +// ============================================================================ -#if defined(PLATFORM_MSDOS) +#if defined(_AIX) +#define PLATFORM_AIX +#undef PLATFORM_STRING +#define PLATFORM_STRING "AIX" +#endif -#ifndef TARGET_ALLEGRO -#define TARGET_ALLEGRO +#if defined(AMIGA) || defined(__AMIGA) || defined(__amigados__) +#define PLATFORM_AMIGA +#undef PLATFORM_STRING +#define PLATFORM_STRING "Amiga" #endif -#ifndef TARGET_X11 -#define TARGET_X11 +#if defined(__BEOS__) +#define PLATFORM_BEOS +#undef PLATFORM_STRING +#define PLATFORM_STRING "BeOS" #endif +#if defined(bsdi) || defined(__bsdi) || defined(__bsdi__) +#define PLATFORM_BSDI +#define PLATFORM_BSD +#undef PLATFORM_STRING +#define PLATFORM_STRING "BSDI" #endif +#if defined(_arch_dreamcast) +#define PLATFORM_DREAMCAST +#undef PLATFORM_STRING +#define PLATFORM_STRING "Dreamcast" +#endif -/* ========================================================================= */ -/* define additional keywords for several Unix platforms */ -/* ========================================================================= */ +#if defined(__FreeBSD__) || defined(__DragonFly__) +#define PLATFORM_FREEBSD +#define PLATFORM_BSD +#undef PLATFORM_STRING +#define PLATFORM_STRING "FreeBSD" +#endif + +#if defined(hpux) || defined(__hpux) || defined(__hpux__) +#define PLATFORM_HPUX +#undef PLATFORM_STRING +#define PLATFORM_STRING "HP-UX" +#endif -#if defined(PLATFORM_UNIX) && defined(TARGET_X11) -#define TARGET_X11_NATIVE +#if defined(sgi) || defined(__sgi) || defined(__sgi__) || defined(_SGI_SOURCE) +#define PLATFORM_IRIX +#undef PLATFORM_STRING +#define PLATFORM_STRING "IRIX" #endif -#if defined(linux) +#if defined(linux) || defined(__linux) || defined(__linux__) #define PLATFORM_LINUX +#undef PLATFORM_STRING +#define PLATFORM_STRING "Linux" #endif -#if defined(__FreeBSD__) -#define PLATFORM_FREEBSD -#define PLATFORM_BSD +#if defined(__APPLE__) && defined(__MACH__) +#define PLATFORM_MAC +#undef PLATFORM_STRING +#define PLATFORM_STRING "Mac" #endif #if defined(__NetBSD__) #define PLATFORM_NETBSD #define PLATFORM_BSD +#undef PLATFORM_STRING +#define PLATFORM_STRING "NetBSD" #endif -#if defined(__bsdi__) -#define PLATFORM_BSDI +#if defined(NeXT) +#define PLATFORM_NEXT +#undef PLATFORM_STRING +#define PLATFORM_STRING "NeXT" +#endif + +#if defined(__OpenBSD__) +#define PLATFORM_OPENBSD #define PLATFORM_BSD +#undef PLATFORM_STRING +#define PLATFORM_STRING "OpenBSD" #endif -#if defined(sparc) && defined(sun) -#define PLATFORM_SUNOS +#if defined(__OS2__) +#define PLATFORM_OS2 +#undef PLATFORM_STRING +#define PLATFORM_STRING "OS/2" #endif -#if defined(__APPLE__) && defined(__MACH__) -#define PLATFORM_MACOSX +#if defined(osf) || defined(__osf) || defined(__osf__) || defined(_OSF_SOURCE) +#define PLATFORM_OSF +#undef PLATFORM_STRING +#define PLATFORM_STRING "OSF/1" #endif -#if defined(NeXT) -#define PLATFORM_NEXT +#if defined(__QNXNTO__) +#define PLATFORM_QNX +#undef PLATFORM_STRING +#define PLATFORM_STRING "QNX" #endif -/* detecting HP-UX by the following compiler keyword definitions: - - in K&R mode (the default), the HP C compiler defines "hpux" - - in ANSI mode (-Aa or -Ae), the HP C compiler defines "__hpux" - - the gcc (Gnu) C compiler defines "__hpux__" - Thanks to Jarkko Hietaniemi for this note. */ +#if defined(riscos) || defined(__riscos) || defined(__riscos__) +#define PLATFORM_RISCOS +#undef PLATFORM_STRING +#define PLATFORM_STRING "RISC OS" +#endif -#if defined(__hpux__) || defined(__hpux) || defined(hpux) -#define PLATFORM_HPUX +#if defined(sparc) || defined(sun) || defined(__SVR4) +#define PLATFORM_SOLARIS +#undef PLATFORM_STRING +#define PLATFORM_STRING "Solaris" #endif +#if defined(_WIN32_WCE) +#define PLATFORM_WINDOWS_CE +#undef PLATFORM_STRING +#define PLATFORM_STRING "Windows CE" +#endif + +#if defined(__ANDROID__) +#define PLATFORM_ANDROID +#undef PLATFORM_STRING +#define PLATFORM_STRING "Android" +#endif -/* ========================================================================= */ -/* this should better go into "system.h" or "features.h" (yet to be created) */ -/* ========================================================================= */ +#if defined(__EMSCRIPTEN__) +#define PLATFORM_EMSCRIPTEN +#undef PLATFORM_STRING +#define PLATFORM_STRING "Emscripten" +#endif -#if defined(PLATFORM_UNIX) || defined(TARGET_SDL) -#define NETWORK_AVALIABLE + +// ============================================================================ +// define additional platform keywords for CPU architecture +// ============================================================================ + +#if defined(__x86_64__) || defined(__LP64__) || defined(_LP64) +#define PLATFORM_64_BIT +#define PLATFORM_XX_BIT_STRING "64-bit" +#else +#define PLATFORM_32_BIT +#define PLATFORM_XX_BIT_STRING "32-bit" +#endif + + +// ============================================================================ +// define additional target keywords +// ============================================================================ + +#if defined(TARGET_SDL2) +#ifndef TARGET_SDL +#define TARGET_SDL +#endif #endif -#endif /* PLATFORM_H */ +#endif // PLATFORM_H