|
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 */ |