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 <jfonseca@vmware.com> 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_UNIX 1 21 #endif 22 23 /* 24 * Android defines __linux__, so DETECT_OS_LINUX and DETECT_OS_UNIX 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_UNIX 1 35 #endif 36 37 #if defined(__OpenBSD__) 38 #define DETECT_OS_OPENBSD 1 39 #define DETECT_OS_BSD 1 40 #define DETECT_OS_UNIX 1 41 #endif 42 43 #if defined(__NetBSD__) 44 #define DETECT_OS_NETBSD 1 45 #define DETECT_OS_BSD 1 46 #define DETECT_OS_UNIX 1 47 #endif 48 49 #if defined(__DragonFly__) 50 #define DETECT_OS_DRAGONFLY 1 51 #define DETECT_OS_BSD 1 52 #define DETECT_OS_UNIX 1 53 #endif 54 55 #if defined(__GNU__) 56 #define DETECT_OS_HURD 1 57 #define DETECT_OS_UNIX 1 58 #endif 59 60 #if defined(__sun) 61 #define DETECT_OS_SOLARIS 1 62 #define DETECT_OS_UNIX 1 63 #endif 64 65 #if defined(__APPLE__) 66 #define DETECT_OS_APPLE 1 67 #define DETECT_OS_UNIX 1 68 #endif 69 70 #if defined(_WIN32) || defined(WIN32) 71 #define DETECT_OS_WINDOWS 1 72 #endif 73 74 #if defined(__HAIKU__) 75 #define DETECT_OS_HAIKU 1 76 #define DETECT_OS_UNIX 1 77 #endif 78 79 #if defined(__CYGWIN__) 80 #define DETECT_OS_CYGWIN 1 81 #define DETECT_OS_UNIX 1 82 #endif 83 84 85 /* 86 * Make sure DETECT_OS_* are always defined, so that they can be used with #if 87 */ 88 #ifndef DETECT_OS_ANDROID 89 #define DETECT_OS_ANDROID 0 90 #endif 91 #ifndef DETECT_OS_APPLE 92 #define DETECT_OS_APPLE 0 93 #endif 94 #ifndef DETECT_OS_BSD 95 #define DETECT_OS_BSD 0 96 #endif 97 #ifndef DETECT_OS_CYGWIN 98 #define DETECT_OS_CYGWIN 0 99 #endif 100 #ifndef DETECT_OS_DRAGONFLY 101 #define DETECT_OS_DRAGONFLY 0 102 #endif 103 #ifndef DETECT_OS_FREEBSD 104 #define DETECT_OS_FREEBSD 0 105 #endif 106 #ifndef DETECT_OS_HAIKU 107 #define DETECT_OS_HAIKU 0 108 #endif 109 #ifndef DETECT_OS_HURD 110 #define DETECT_OS_HURD 0 111 #endif 112 #ifndef DETECT_OS_LINUX 113 #define DETECT_OS_LINUX 0 114 #endif 115 #ifndef DETECT_OS_NETBSD 116 #define DETECT_OS_NETBSD 0 117 #endif 118 #ifndef DETECT_OS_OPENBSD 119 #define DETECT_OS_OPENBSD 0 120 #endif 121 #ifndef DETECT_OS_SOLARIS 122 #define DETECT_OS_SOLARIS 0 123 #endif 124 #ifndef DETECT_OS_UNIX 125 #define DETECT_OS_UNIX 0 126 #endif 127 #ifndef DETECT_OS_WINDOWS 128 #define DETECT_OS_WINDOWS 0 129 #endif 130 131 #endif /* DETECT_OS_H */ 132