src/physfs_platforms.h
author Ryan C. Gordon <icculus@icculus.org>
Sun, 09 Jul 2017 17:28:33 -0400
changeset 1426 0265fa9cdc4c
parent 1395 2b5c79f64d59
child 1443 0e74405d587f
permissions -rw-r--r--
Don't try to build CD-ROM support on Emscripten.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
818
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     1
#ifndef _INCL_PHYSFS_PLATFORMS
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     2
#define _INCL_PHYSFS_PLATFORMS
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     3
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     4
#ifndef __PHYSICSFS_INTERNAL__
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     5
#error Do not include this header from your applications.
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     6
#endif
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     7
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     8
/*
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     9
 * These only define the platforms to determine which files in the platforms
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    10
 *  directory should be compiled. For example, technically BeOS can be called
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    11
 *  a "unix" system, but since it doesn't use unix.c, we don't define
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    12
 *  PHYSFS_PLATFORM_UNIX on that system.
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    13
 */
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    14
947
b0c91495af9b Haiku support.
Ryan C. Gordon <icculus@icculus.org>
parents: 942
diff changeset
    15
#if (defined __HAIKU__)
1235
2ed0567fe413 Make physfs_platforms.h define with a 1, so "#if X" works.
Ryan C. Gordon <icculus@icculus.org>
parents: 1233
diff changeset
    16
#  define PHYSFS_PLATFORM_HAIKU 1
2ed0567fe413 Make physfs_platforms.h define with a 1, so "#if X" works.
Ryan C. Gordon <icculus@icculus.org>
parents: 1233
diff changeset
    17
#  define PHYSFS_PLATFORM_BEOS 1
2ed0567fe413 Make physfs_platforms.h define with a 1, so "#if X" works.
Ryan C. Gordon <icculus@icculus.org>
parents: 1233
diff changeset
    18
#  define PHYSFS_PLATFORM_POSIX 1
947
b0c91495af9b Haiku support.
Ryan C. Gordon <icculus@icculus.org>
parents: 942
diff changeset
    19
#elif ((defined __BEOS__) || (defined __beos__))
1235
2ed0567fe413 Make physfs_platforms.h define with a 1, so "#if X" works.
Ryan C. Gordon <icculus@icculus.org>
parents: 1233
diff changeset
    20
#  define PHYSFS_PLATFORM_BEOS 1
2ed0567fe413 Make physfs_platforms.h define with a 1, so "#if X" works.
Ryan C. Gordon <icculus@icculus.org>
parents: 1233
diff changeset
    21
#  define PHYSFS_PLATFORM_POSIX 1
818
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    22
#elif (defined _WIN32_WCE) || (defined _WIN64_WCE)
1196
54a1dfb1e6f7 Removed PocketPC support. It was old and crusty and targeted a dead platform.
Ryan C. Gordon <icculus@icculus.org>
parents: 1011
diff changeset
    23
#  error PocketPC support was dropped from PhysicsFS 2.1. Sorry.
1356
8de68968fcd0 Added support for WinRT 8.1 Universal Apps.
Martin Ahrnbom <m.ahrnbom@outlook.com>
parents: 1337
diff changeset
    24
#elif ((defined WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_APP)
1358
d09554806efb Removed some tabs and an extra semicolon.
Ryan C. Gordon <icculus@icculus.org>
parents: 1356
diff changeset
    25
#   define PHYSFS_PLATFORM_WINRT 1
d09554806efb Removed some tabs and an extra semicolon.
Ryan C. Gordon <icculus@icculus.org>
parents: 1356
diff changeset
    26
#   define PHYSFS_NO_CDROM_SUPPORT 1
d09554806efb Removed some tabs and an extra semicolon.
Ryan C. Gordon <icculus@icculus.org>
parents: 1356
diff changeset
    27
#   define PHYSFS_PLATFORM_WINDOWS 1
818
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    28
#elif (((defined _WIN32) || (defined _WIN64)) && (!defined __CYGWIN__))
1235
2ed0567fe413 Make physfs_platforms.h define with a 1, so "#if X" works.
Ryan C. Gordon <icculus@icculus.org>
parents: 1233
diff changeset
    29
#  define PHYSFS_PLATFORM_WINDOWS 1
1395
2b5c79f64d59 os2: added OS/2 support back in.
Ryan C. Gordon <icculus@icculus.org>
parents: 1358
diff changeset
    30
#elif defined(__OS2__) || defined(OS2)
2b5c79f64d59 os2: added OS/2 support back in.
Ryan C. Gordon <icculus@icculus.org>
parents: 1358
diff changeset
    31
#  define PHYSFS_PLATFORM_OS2 1
818
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    32
#elif ((defined __MACH__) && (defined __APPLE__))
954
7f59a79739ba Fixed comment typo.
Ryan C. Gordon <icculus@icculus.org>
parents: 947
diff changeset
    33
/* To check if iphone or not, we need to include this file */
1291
854cdfefdf12 For iOS, build the Mac OS X platform code, not the generic Unix code.
Ryan C. Gordon <icculus@icculus.org>
parents: 1235
diff changeset
    34
#  include <TargetConditionals.h>
854cdfefdf12 For iOS, build the Mac OS X platform code, not the generic Unix code.
Ryan C. Gordon <icculus@icculus.org>
parents: 1235
diff changeset
    35
#  if ((TARGET_IPHONE_SIMULATOR) || (TARGET_OS_IPHONE))
854cdfefdf12 For iOS, build the Mac OS X platform code, not the generic Unix code.
Ryan C. Gordon <icculus@icculus.org>
parents: 1235
diff changeset
    36
#     define PHYSFS_NO_CDROM_SUPPORT 1
942
e7bed87e50ce iPhone support patch (thanks, Christian!)
Ryan C. Gordon <icculus@icculus.org>
parents: 847
diff changeset
    37
#  endif
1291
854cdfefdf12 For iOS, build the Mac OS X platform code, not the generic Unix code.
Ryan C. Gordon <icculus@icculus.org>
parents: 1235
diff changeset
    38
#  define PHYSFS_PLATFORM_MACOSX 1
854cdfefdf12 For iOS, build the Mac OS X platform code, not the generic Unix code.
Ryan C. Gordon <icculus@icculus.org>
parents: 1235
diff changeset
    39
#  define PHYSFS_PLATFORM_POSIX 1
818
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    40
#elif defined(macintosh)
825
b26da6cdcebb Dropped classic Mac OS support. Mac OS X remains supported, though.
Ryan C. Gordon <icculus@icculus.org>
parents: 818
diff changeset
    41
#  error Classic Mac OS support was dropped from PhysicsFS 2.0. Move to OS X.
1313
8f95fc8eea0c Turn off CD-ROM support on Android.
Ryan C. Gordon <icculus@icculus.org>
parents: 1295
diff changeset
    42
#elif defined(ANDROID)
8f95fc8eea0c Turn off CD-ROM support on Android.
Ryan C. Gordon <icculus@icculus.org>
parents: 1295
diff changeset
    43
#  define PHYSFS_PLATFORM_LINUX 1
8f95fc8eea0c Turn off CD-ROM support on Android.
Ryan C. Gordon <icculus@icculus.org>
parents: 1295
diff changeset
    44
#  define PHYSFS_PLATFORM_UNIX 1
8f95fc8eea0c Turn off CD-ROM support on Android.
Ryan C. Gordon <icculus@icculus.org>
parents: 1295
diff changeset
    45
#  define PHYSFS_PLATFORM_POSIX 1
8f95fc8eea0c Turn off CD-ROM support on Android.
Ryan C. Gordon <icculus@icculus.org>
parents: 1295
diff changeset
    46
#  define PHYSFS_NO_CDROM_SUPPORT 1
1233
53a01072f272 Added Linux and Solaris tests.
Ryan C. Gordon <icculus@icculus.org>
parents: 1197
diff changeset
    47
#elif defined(__linux)
1235
2ed0567fe413 Make physfs_platforms.h define with a 1, so "#if X" works.
Ryan C. Gordon <icculus@icculus.org>
parents: 1233
diff changeset
    48
#  define PHYSFS_PLATFORM_LINUX 1
2ed0567fe413 Make physfs_platforms.h define with a 1, so "#if X" works.
Ryan C. Gordon <icculus@icculus.org>
parents: 1233
diff changeset
    49
#  define PHYSFS_PLATFORM_UNIX 1
2ed0567fe413 Make physfs_platforms.h define with a 1, so "#if X" works.
Ryan C. Gordon <icculus@icculus.org>
parents: 1233
diff changeset
    50
#  define PHYSFS_PLATFORM_POSIX 1
1233
53a01072f272 Added Linux and Solaris tests.
Ryan C. Gordon <icculus@icculus.org>
parents: 1197
diff changeset
    51
#elif defined(__sun) || defined(sun)
1235
2ed0567fe413 Make physfs_platforms.h define with a 1, so "#if X" works.
Ryan C. Gordon <icculus@icculus.org>
parents: 1233
diff changeset
    52
#  define PHYSFS_PLATFORM_SOLARIS 1
2ed0567fe413 Make physfs_platforms.h define with a 1, so "#if X" works.
Ryan C. Gordon <icculus@icculus.org>
parents: 1233
diff changeset
    53
#  define PHYSFS_PLATFORM_UNIX 1
2ed0567fe413 Make physfs_platforms.h define with a 1, so "#if X" works.
Ryan C. Gordon <icculus@icculus.org>
parents: 1233
diff changeset
    54
#  define PHYSFS_PLATFORM_POSIX 1
1337
3b2e649c044c Better basedir detection for various Unix platforms.
Ryan C. Gordon <icculus@icculus.org>
parents: 1313
diff changeset
    55
#elif defined(__FreeBSD__) || defined(__DragonFly__)
3b2e649c044c Better basedir detection for various Unix platforms.
Ryan C. Gordon <icculus@icculus.org>
parents: 1313
diff changeset
    56
#  define PHYSFS_PLATFORM_FREEBSD 1
3b2e649c044c Better basedir detection for various Unix platforms.
Ryan C. Gordon <icculus@icculus.org>
parents: 1313
diff changeset
    57
#  define PHYSFS_PLATFORM_BSD 1
3b2e649c044c Better basedir detection for various Unix platforms.
Ryan C. Gordon <icculus@icculus.org>
parents: 1313
diff changeset
    58
#  define PHYSFS_PLATFORM_UNIX 1
3b2e649c044c Better basedir detection for various Unix platforms.
Ryan C. Gordon <icculus@icculus.org>
parents: 1313
diff changeset
    59
#  define PHYSFS_PLATFORM_POSIX 1
3b2e649c044c Better basedir detection for various Unix platforms.
Ryan C. Gordon <icculus@icculus.org>
parents: 1313
diff changeset
    60
#elif defined(__NetBSD__) || defined(__OpenBSD__) || defined(__bsdi__)
1235
2ed0567fe413 Make physfs_platforms.h define with a 1, so "#if X" works.
Ryan C. Gordon <icculus@icculus.org>
parents: 1233
diff changeset
    61
#  define PHYSFS_PLATFORM_BSD 1
2ed0567fe413 Make physfs_platforms.h define with a 1, so "#if X" works.
Ryan C. Gordon <icculus@icculus.org>
parents: 1233
diff changeset
    62
#  define PHYSFS_PLATFORM_UNIX 1
2ed0567fe413 Make physfs_platforms.h define with a 1, so "#if X" works.
Ryan C. Gordon <icculus@icculus.org>
parents: 1233
diff changeset
    63
#  define PHYSFS_PLATFORM_POSIX 1
1426
0265fa9cdc4c Don't try to build CD-ROM support on Emscripten.
Ryan C. Gordon <icculus@icculus.org>
parents: 1395
diff changeset
    64
#elif defined(__EMSCRIPTEN__)
0265fa9cdc4c Don't try to build CD-ROM support on Emscripten.
Ryan C. Gordon <icculus@icculus.org>
parents: 1395
diff changeset
    65
#  define PHYSFS_NO_CDROM_SUPPORT 1
0265fa9cdc4c Don't try to build CD-ROM support on Emscripten.
Ryan C. Gordon <icculus@icculus.org>
parents: 1395
diff changeset
    66
#  define PHYSFS_PLATFORM_UNIX 1
0265fa9cdc4c Don't try to build CD-ROM support on Emscripten.
Ryan C. Gordon <icculus@icculus.org>
parents: 1395
diff changeset
    67
#  define PHYSFS_PLATFORM_POSIX 1
1295
02a34500bb1c An attempt to make this more Unix-friendly.
Ryan C. Gordon <icculus@icculus.org>
parents: 1291
diff changeset
    68
#elif defined(unix) || defined(__unix__)
1235
2ed0567fe413 Make physfs_platforms.h define with a 1, so "#if X" works.
Ryan C. Gordon <icculus@icculus.org>
parents: 1233
diff changeset
    69
#  define PHYSFS_PLATFORM_UNIX 1
2ed0567fe413 Make physfs_platforms.h define with a 1, so "#if X" works.
Ryan C. Gordon <icculus@icculus.org>
parents: 1233
diff changeset
    70
#  define PHYSFS_PLATFORM_POSIX 1
818
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    71
#else
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    72
#  error Unknown platform.
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    73
#endif
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    74
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    75
#endif  /* include-once blocker. */
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    76