xref: /aosp_15_r20/external/mesa3d/src/util/detect_os.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1 /* SPDX-License-Identifier: MIT */
2 /* Copyright 2008 VMware, Inc. */
3 
4 /**
5  * Auto-detect the operating system family.
6  *
7  * See also:
8  * - http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html
9  * - echo | gcc -dM -E - | sort
10  * - http://msdn.microsoft.com/en-us/library/b0084kay.aspx
11  *
12  * @author José Fonseca <[email protected]>
13  */
14 
15 #ifndef DETECT_OS_H
16 #define DETECT_OS_H
17 
18 #if defined(__linux__)
19 #define DETECT_OS_LINUX 1
20 #define DETECT_OS_POSIX 1
21 #endif
22 
23 /*
24  * Android defines __linux__, so DETECT_OS_LINUX and DETECT_OS_POSIX will
25  * also be defined.
26  */
27 #if defined(__ANDROID__)
28 #define DETECT_OS_ANDROID 1
29 #endif
30 
31 #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
32 #define DETECT_OS_FREEBSD 1
33 #define DETECT_OS_BSD 1
34 #define DETECT_OS_POSIX 1
35 #endif
36 
37 #if defined(__OpenBSD__)
38 #define DETECT_OS_OPENBSD 1
39 #define DETECT_OS_BSD 1
40 #define DETECT_OS_POSIX 1
41 #endif
42 
43 #if defined(__NetBSD__)
44 #define DETECT_OS_NETBSD 1
45 #define DETECT_OS_BSD 1
46 #define DETECT_OS_POSIX 1
47 #endif
48 
49 #if defined(__DragonFly__)
50 #define DETECT_OS_DRAGONFLY 1
51 #define DETECT_OS_BSD 1
52 #define DETECT_OS_POSIX 1
53 #endif
54 
55 #if defined(__Fuchsia__)
56 #define DETECT_OS_FUCHSIA 1
57 #define DETECT_OS_POSIX_LITE 1
58 #endif
59 
60 #if defined(__GNU__)
61 #define DETECT_OS_HURD 1
62 #define DETECT_OS_POSIX 1
63 #endif
64 
65 #if defined(__sun)
66 #define DETECT_OS_SOLARIS 1
67 #define DETECT_OS_POSIX 1
68 #endif
69 
70 #if defined(__APPLE__)
71 #define DETECT_OS_APPLE 1
72 #define DETECT_OS_POSIX 1
73 #endif
74 
75 #if defined(_WIN32) || defined(WIN32)
76 #define DETECT_OS_WINDOWS 1
77 #endif
78 
79 #if defined(__HAIKU__)
80 #define DETECT_OS_HAIKU 1
81 #define DETECT_OS_POSIX 1
82 #endif
83 
84 #if defined(__CYGWIN__)
85 #define DETECT_OS_CYGWIN 1
86 #define DETECT_OS_POSIX 1
87 #endif
88 
89 #if defined(__managarm__)
90 #define DETECT_OS_MANAGARM 1
91 #define DETECT_OS_POSIX 1
92 #endif
93 
94 
95 /*
96  * Make sure DETECT_OS_* are always defined, so that they can be used with #if
97  */
98 #ifndef DETECT_OS_ANDROID
99 #define DETECT_OS_ANDROID 0
100 #endif
101 #ifndef DETECT_OS_APPLE
102 #define DETECT_OS_APPLE 0
103 #endif
104 #ifndef DETECT_OS_BSD
105 #define DETECT_OS_BSD 0
106 #endif
107 #ifndef DETECT_OS_CYGWIN
108 #define DETECT_OS_CYGWIN 0
109 #endif
110 #ifndef DETECT_OS_DRAGONFLY
111 #define DETECT_OS_DRAGONFLY 0
112 #endif
113 #ifndef DETECT_OS_FREEBSD
114 #define DETECT_OS_FREEBSD 0
115 #endif
116 #ifndef DETECT_OS_HAIKU
117 #define DETECT_OS_HAIKU 0
118 #endif
119 #ifndef DETECT_OS_FUCHSIA
120 #define DETECT_OS_FUCHSIA 0
121 #endif
122 #ifndef DETECT_OS_HURD
123 #define DETECT_OS_HURD 0
124 #endif
125 #ifndef DETECT_OS_LINUX
126 #define DETECT_OS_LINUX 0
127 #endif
128 #ifndef DETECT_OS_NETBSD
129 #define DETECT_OS_NETBSD 0
130 #endif
131 #ifndef DETECT_OS_OPENBSD
132 #define DETECT_OS_OPENBSD 0
133 #endif
134 #ifndef DETECT_OS_SOLARIS
135 #define DETECT_OS_SOLARIS 0
136 #endif
137 #ifndef DETECT_OS_POSIX
138 #define DETECT_OS_POSIX 0
139 #endif
140 #ifndef DETECT_OS_POSIX_LITE
141 #define DETECT_OS_POSIX_LITE DETECT_OS_POSIX
142 #endif
143 #ifndef DETECT_OS_WINDOWS
144 #define DETECT_OS_WINDOWS 0
145 #endif
146 #ifndef DETECT_OS_MANAGARM
147 #define DETECT_OS_MANAGARM 0
148 #endif
149 
150 #endif /* DETECT_OS_H */
151