]> git.xonotic.org Git - xonotic/netradiant.git/blob - libs/globaldefs.h
Merge branch 'NateEag-master-patch-12920' into 'master'
[xonotic/netradiant.git] / libs / globaldefs.h
1 #ifndef INCLUDED_LIBS_GLOBALDEFS
2 #define INCLUDED_LIBS_GLOBALDEFS
3
4 // ARCH_ENDIAN
5
6 #if defined(__BIG_ENDIAN__) || defined(_SGI_SOURCE)
7 #define GDEF_ARCH_ENDIAN_BIG 1
8 #else
9 #define GDEF_ARCH_ENDIAN_BIG 0
10 #endif
11
12 // ARCH_BITS
13
14 #if defined(__i386__) || defined(_M_IX86)
15 #define GDEF_ARCH_BITS_32 1
16 #else
17 #define GDEF_ARCH_BITS_32 0
18 #endif
19
20 #if defined(__LP64__) || defined(_M_X64) || defined(_M_AMD64) || defined(_WIN64)
21 #define GDEF_ARCH_BITS_64 1
22 #else
23 #define GDEF_ARCH_BITS_64 0
24 #endif
25
26 // OS
27
28 #if defined(POSIX)
29 #define GDEF_OS_POSIX 1
30 #else
31 #define GDEF_OS_POSIX 0
32 #endif
33
34 #if defined(WIN32) || defined(_WIN32) || defined(_WIN64)
35 #define GDEF_OS_WINDOWS 1
36 #else
37 #define GDEF_OS_WINDOWS 0
38 #endif
39
40 #if defined(__APPLE__)
41 #define GDEF_OS_MACOS 1
42 #else
43 #define GDEF_OS_MACOS 0
44 #endif
45
46 #if defined(__linux__)
47 #define GDEF_OS_LINUX 1
48 #else
49 #define GDEF_OS_LINUX 0
50 #endif
51
52 #define GDEF_OS_BSD 0
53
54 #if defined(__FreeBSD__)
55 #undef GDEF_OS_BSD
56 #define GDEF_OS_BSD 1
57 #define GDEF_OS_BSD_FREE 1
58 #else
59 #define GDEF_OS_BSD_FREE 0
60 #endif
61
62 #if defined(__NetBSD__)
63 #undef GDEF_OS_BSD
64 #define GDEF_OS_BSD 1
65 #define GDEF_OS_BSD_NET 1
66 #else
67 #define GDEF_OS_BSD_NET 0
68 #endif
69
70 #if defined(__OpenBSD__)
71 #undef GDEF_OS_BSD
72 #define GDEF_OS_BSD 1
73 #define GDEF_OS_BSD_OPEN 1
74 #else
75 #define GDEF_OS_BSD_OPEN 0
76 #endif
77
78 #if defined(__DragonFly__)
79 #undef GDEF_OS_BSD
80 #define GDEF_OS_BSD 1
81 #define GDEF_OS_BSD_DRAGONFLY 1
82 #else
83 #define GDEF_OS_BSD_DRAGONFLY 0
84 #endif
85
86 #if defined(__osf) || defined(__osf__) || defined(__OSF__)
87 #define GDEF_OS_OSF1 1
88 #else
89 #define GDEF_OS_OSF1 0
90 #endif
91
92 #if defined(_MIPS_ISA)
93 #define GDEF_OS_IRIX 1
94 #else
95 #define GDEF_OS_IRIX 0
96 #endif
97
98 #if defined(NeXT)
99 #define GDEF_OS_NEXT 1
100 #else
101 #define GDEF_OS_NEXT 0
102 #endif
103
104 #if GDEF_OS_LINUX || GDEF_OS_BSD
105 #define GDEF_OS_XDG 1
106 #else
107 #define GDEF_OS_XDG 0
108 #endif
109
110 // EXECUTABLE EXTENSION
111
112 #if GDEF_OS_WINDOWS
113 #define GDEF_OS_EXE_EXT ".exe"
114 #else
115 #define GDEF_OS_EXE_EXT ""
116 #endif
117
118 // COMPILER
119
120 #if defined(_MSC_VER)
121 #define GDEF_COMPILER_MSVC 1
122 #else
123 #define GDEF_COMPILER_MSVC 0
124 #endif
125
126 #if defined(__GNUC__)
127 #define GDEF_COMPILER_GNU 1
128 #else
129 #define GDEF_COMPILER_GNU 0
130 #endif
131
132 // ATTRIBUTE
133
134 #if GDEF_COMPILER_GNU
135 #define GDEF_ATTRIBUTE_NORETURN __attribute__((noreturn))
136 #else
137 #define GDEF_ATTRIBUTE_NORETURN
138 #endif
139
140 #ifdef GDEF_COMPILER_MSVC
141 #define GDEF_ATTRIBUTE_INLINE __inline
142 #else
143 #define GDEF_ATTRIBUTE_INLINE inline
144 #endif
145
146 // MISC
147
148 #define GDEF_DEBUG 0
149 #if defined(_DEBUG)
150 #if _DEBUG
151 #undef GDEF_DEBUG
152 #define GDEF_DEBUG 1
153 #endif
154 #endif
155
156 #endif // !INCLUDED_LIBS_GLOBALDEFS