src/physfs_platforms.h
author Ryan C. Gordon <icculus@icculus.org>
Fri, 23 Aug 2013 23:41:35 -0400
changeset 1337 3b2e649c044c
parent 1313 8f95fc8eea0c
child 1356 8de68968fcd0
permissions -rw-r--r--
Better basedir detection for various Unix platforms.
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.
818
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    24
#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
    25
#  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
    26
#elif (defined OS2)
1197
65f35dc8f84c Removed OS/2 support.
Ryan C. Gordon <icculus@icculus.org>
parents: 1196
diff changeset
    27
#  error OS/2 support was dropped from PhysicsFS 2.1. Sorry.
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 __MACH__) && (defined __APPLE__))
954
7f59a79739ba Fixed comment typo.
Ryan C. Gordon <icculus@icculus.org>
parents: 947
diff changeset
    29
/* 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
    30
#  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
    31
#  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
    32
#     define PHYSFS_NO_CDROM_SUPPORT 1
942
e7bed87e50ce iPhone support patch (thanks, Christian!)
Ryan C. Gordon <icculus@icculus.org>
parents: 847
diff changeset
    33
#  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
    34
#  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
    35
#  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
    36
#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
    37
#  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
    38
#elif defined(ANDROID)
8f95fc8eea0c Turn off CD-ROM support on Android.
Ryan C. Gordon <icculus@icculus.org>
parents: 1295
diff changeset
    39
#  define PHYSFS_PLATFORM_LINUX 1
8f95fc8eea0c Turn off CD-ROM support on Android.
Ryan C. Gordon <icculus@icculus.org>
parents: 1295
diff changeset
    40
#  define PHYSFS_PLATFORM_UNIX 1
8f95fc8eea0c Turn off CD-ROM support on Android.
Ryan C. Gordon <icculus@icculus.org>
parents: 1295
diff changeset
    41
#  define PHYSFS_PLATFORM_POSIX 1
8f95fc8eea0c Turn off CD-ROM support on Android.
Ryan C. Gordon <icculus@icculus.org>
parents: 1295
diff changeset
    42
#  define PHYSFS_NO_CDROM_SUPPORT 1
1233
53a01072f272 Added Linux and Solaris tests.
Ryan C. Gordon <icculus@icculus.org>
parents: 1197
diff changeset
    43
#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
    44
#  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
    45
#  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
    46
#  define PHYSFS_PLATFORM_POSIX 1
1233
53a01072f272 Added Linux and Solaris tests.
Ryan C. Gordon <icculus@icculus.org>
parents: 1197
diff changeset
    47
#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
    48
#  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
    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
1337
3b2e649c044c Better basedir detection for various Unix platforms.
Ryan C. Gordon <icculus@icculus.org>
parents: 1313
diff changeset
    51
#elif defined(__FreeBSD__) || defined(__DragonFly__)
3b2e649c044c Better basedir detection for various Unix platforms.
Ryan C. Gordon <icculus@icculus.org>
parents: 1313
diff changeset
    52
#  define PHYSFS_PLATFORM_FREEBSD 1
3b2e649c044c Better basedir detection for various Unix platforms.
Ryan C. Gordon <icculus@icculus.org>
parents: 1313
diff changeset
    53
#  define PHYSFS_PLATFORM_BSD 1
3b2e649c044c Better basedir detection for various Unix platforms.
Ryan C. Gordon <icculus@icculus.org>
parents: 1313
diff changeset
    54
#  define PHYSFS_PLATFORM_UNIX 1
3b2e649c044c Better basedir detection for various Unix platforms.
Ryan C. Gordon <icculus@icculus.org>
parents: 1313
diff changeset
    55
#  define PHYSFS_PLATFORM_POSIX 1
3b2e649c044c Better basedir detection for various Unix platforms.
Ryan C. Gordon <icculus@icculus.org>
parents: 1313
diff changeset
    56
#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
    57
#  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
    58
#  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
    59
#  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
    60
#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
    61
#  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
    62
#  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
    63
#else
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    64
#  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
    65
#endif
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    66
e36f23f49042 Now compiles everything whether we need it or not, removing whole files with
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    67
#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
    68