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