1 /* SPDX-License-Identifier: MIT */
2 /* Copyright 2008 VMware, Inc. */
5 * Auto-detect the operating system family.
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
12 * @author José Fonseca <jfonseca@vmware.com>
18 #if defined(__linux__)
19 #define DETECT_OS_LINUX 1
20 #define DETECT_OS_UNIX 1
24 * Android defines __linux__, so DETECT_OS_LINUX and DETECT_OS_UNIX will
28 #define DETECT_OS_ANDROID 1
31 #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
32 #define DETECT_OS_FREEBSD 1
33 #define DETECT_OS_BSD 1
34 #define DETECT_OS_UNIX 1
37 #if defined(__OpenBSD__)
38 #define DETECT_OS_OPENBSD 1
39 #define DETECT_OS_BSD 1
40 #define DETECT_OS_UNIX 1
43 #if defined(__NetBSD__)
44 #define DETECT_OS_NETBSD 1
45 #define DETECT_OS_BSD 1
46 #define DETECT_OS_UNIX 1
49 #if defined(__DragonFly__)
50 #define DETECT_OS_DRAGONFLY 1
51 #define DETECT_OS_BSD 1
52 #define DETECT_OS_UNIX 1
56 #define DETECT_OS_HURD 1
57 #define DETECT_OS_UNIX 1
61 #define DETECT_OS_SOLARIS 1
62 #define DETECT_OS_UNIX 1
65 #if defined(__APPLE__)
66 #define DETECT_OS_APPLE 1
67 #define DETECT_OS_UNIX 1
70 #if defined(_WIN32) || defined(WIN32)
71 #define DETECT_OS_WINDOWS 1
74 #if defined(__HAIKU__)
75 #define DETECT_OS_HAIKU 1
76 #define DETECT_OS_UNIX 1
79 #if defined(__CYGWIN__)
80 #define DETECT_OS_CYGWIN 1
81 #define DETECT_OS_UNIX 1
86 * Make sure DETECT_OS_* are always defined, so that they can be used with #if
88 #ifndef DETECT_OS_ANDROID
89 #define DETECT_OS_ANDROID 0
91 #ifndef DETECT_OS_APPLE
92 #define DETECT_OS_APPLE 0
95 #define DETECT_OS_BSD 0
97 #ifndef DETECT_OS_CYGWIN
98 #define DETECT_OS_CYGWIN 0
100 #ifndef DETECT_OS_DRAGONFLY
101 #define DETECT_OS_DRAGONFLY 0
103 #ifndef DETECT_OS_FREEBSD
104 #define DETECT_OS_FREEBSD 0
106 #ifndef DETECT_OS_HAIKU
107 #define DETECT_OS_HAIKU 0
109 #ifndef DETECT_OS_HURD
110 #define DETECT_OS_HURD 0
112 #ifndef DETECT_OS_LINUX
113 #define DETECT_OS_LINUX 0
115 #ifndef DETECT_OS_NETBSD
116 #define DETECT_OS_NETBSD 0
118 #ifndef DETECT_OS_OPENBSD
119 #define DETECT_OS_OPENBSD 0
121 #ifndef DETECT_OS_SOLARIS
122 #define DETECT_OS_SOLARIS 0
124 #ifndef DETECT_OS_UNIX
125 #define DETECT_OS_UNIX 0
127 #ifndef DETECT_OS_WINDOWS
128 #define DETECT_OS_WINDOWS 0
131 #endif /* DETECT_OS_H */