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