sourcepawn/compiler/osdefs.h
author David Anderson <dvander@alliedmods.net>
Mon Mar 17 01:09:28 2008 +0000 (2008-03-17)
changeset 1941 54539fa4e51f
parent 27 764c6dd3dc25
child 2471 194be299b700
permissions -rw-r--r--
bumped versions
dvander@27
     1
/* __MSDOS__    set when compiling for DOS (not Windows)
dvander@27
     2
 * _Windows     set when compiling for any version of Microsoft Windows
dvander@27
     3
 * __WIN32__    set when compiling for Windows95 or WindowsNT (32 bit mode)
dvander@27
     4
 * __32BIT__    set when compiling in 32-bit "flat" mode (DOS or Windows)
dvander@27
     5
 *
dvander@27
     6
 * Copyright 1998-2005, ITB CompuPhase, The Netherlands.
dvander@27
     7
 * [email protected].
dvander@27
     8
 */
dvander@27
     9
dvander@27
    10
#ifndef _OSDEFS_H
dvander@27
    11
#define _OSDEFS_H
dvander@27
    12
dvander@27
    13
/* Every compiler uses different "default" macros to indicate the mode
dvander@27
    14
 * it is in. Throughout the source, we use the Borland C++ macros, so
dvander@27
    15
 * the macros of Watcom C/C++ and Microsoft Visual C/C++ are mapped to
dvander@27
    16
 * those of Borland C++.
dvander@27
    17
 */
dvander@27
    18
#if defined(__WATCOMC__)
dvander@27
    19
#  if defined(__WINDOWS__) || defined(__NT__)
dvander@27
    20
#    define _Windows    1
dvander@27
    21
#  endif
dvander@27
    22
#  ifdef __386__
dvander@27
    23
#    define __32BIT__   1
dvander@27
    24
#  endif
dvander@27
    25
#  if defined(_Windows) && defined(__32BIT__)
dvander@27
    26
#    define __WIN32__   1
dvander@27
    27
#  endif
dvander@27
    28
#elif defined(_MSC_VER)
dvander@27
    29
#  if defined(_WINDOWS) || defined(_WIN32)
dvander@27
    30
#    define _Windows    1
dvander@27
    31
#  endif
dvander@27
    32
#  ifdef _WIN32
dvander@27
    33
#    define __WIN32__   1
dvander@27
    34
#    define __32BIT__   1
dvander@27
    35
#  endif
dvander@27
    36
#  if _MSC_VER >= 1400
dvander@27
    37
#    if !defined _CRT_SECURE_NO_DEPRECATE
dvander@27
    38
#      define _CRT_SECURE_NO_DEPRECATE
dvander@27
    39
#    endif
dvander@27
    40
#    define strdup		_strdup
dvander@27
    41
#    define stricmp		_stricmp
dvander@27
    42
#    define access		_access
dvander@27
    43
#    define chdir		_chdir
dvander@27
    44
#    define strdup		_strdup
dvander@27
    45
#    define unlink		_unlink
dvander@27
    46
#  endif
dvander@27
    47
#endif
dvander@27
    48
dvander@27
    49
#if defined __FreeBSD__
dvander@27
    50
   #include <sys/endian.h>
dvander@27
    51
#elif defined LINUX
dvander@27
    52
   #include <endian.h>
dvander@27
    53
#endif
dvander@27
    54
dvander@27
    55
/* Linux NOW has these */
dvander@27
    56
#if !defined BIG_ENDIAN
dvander@27
    57
  #define BIG_ENDIAN    4321
dvander@27
    58
#endif
dvander@27
    59
#if !defined LITTLE_ENDIAN
dvander@27
    60
  #define LITTLE_ENDIAN 1234
dvander@27
    61
#endif
dvander@27
    62
dvander@27
    63
/* educated guess, BYTE_ORDER is undefined, i386 is common => little endian */
dvander@27
    64
#if !defined BYTE_ORDER
dvander@27
    65
  #if defined UCLINUX
dvander@27
    66
    #define BYTE_ORDER BIG_ENDIAN
dvander@27
    67
  #else
dvander@27
    68
    #define BYTE_ORDER LITTLE_ENDIAN
dvander@27
    69
  #endif
dvander@27
    70
#endif
dvander@27
    71
dvander@27
    72
#if defined __MSDOS__ || defined __WIN32__ || defined _Windows
dvander@27
    73
  #define DIRSEP_CHAR '\\'
dvander@27
    74
#elif defined macintosh
dvander@27
    75
  #define DIRSEP_CHAR ':'
dvander@27
    76
#else
dvander@27
    77
  #define DIRSEP_CHAR '/'   /* directory separator character */
dvander@27
    78
#endif
dvander@27
    79
dvander@27
    80
/* _MAX_PATH is sometimes called differently and it may be in limits.h or
dvander@27
    81
 * stdlib.h instead of stdio.h.
dvander@27
    82
 */
dvander@27
    83
#if !defined _MAX_PATH
dvander@27
    84
  /* not defined, perhaps stdio.h was not included */
dvander@27
    85
  #if !defined PATH_MAX
dvander@27
    86
    #include <stdio.h>
dvander@27
    87
  #endif
dvander@27
    88
  #if !defined _MAX_PATH && !defined PATH_MAX
dvander@27
    89
    /* no _MAX_PATH and no MAX_PATH, perhaps it is in limits.h */
dvander@27
    90
    #include <limits.h>
dvander@27
    91
  #endif
dvander@27
    92
  #if !defined _MAX_PATH && !defined PATH_MAX
dvander@27
    93
    /* no _MAX_PATH and no MAX_PATH, perhaps it is in stdlib.h */
dvander@27
    94
    #include <stdlib.h>
dvander@27
    95
  #endif
dvander@27
    96
  /* if _MAX_PATH is undefined, try common alternative names */
dvander@27
    97
  #if !defined _MAX_PATH
dvander@27
    98
    #if defined MAX_PATH
dvander@27
    99
      #define _MAX_PATH    MAX_PATH
dvander@27
   100
    #elif defined _POSIX_PATH_MAX
dvander@27
   101
      #define _MAX_PATH  _POSIX_PATH_MAX
dvander@27
   102
    #else
dvander@27
   103
      /* everything failed, actually we have a problem here... */
dvander@27
   104
      #define _MAX_PATH  1024
dvander@27
   105
    #endif
dvander@27
   106
  #endif
dvander@27
   107
#endif
dvander@27
   108
dvander@27
   109
#endif  /* _OSDEFS_H */