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