blob: 2cf6be055b6d6ceb8fd7c606017181683f169ec0 [file] [log] [blame]
Carl-Daniel Hailfinger33a65a02011-12-20 00:51:44 +00001/*
2 * This file is part of the flashrom project.
3 *
4 * Copyright (C) 2011 Carl-Daniel Hailfinger
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; version 2 of the License.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
Carl-Daniel Hailfinger33a65a02011-12-20 00:51:44 +000014 */
15
16/*
Thomas Heijligen1e76dc82021-09-28 15:22:34 +020017 * This file determines the target os. It should only be used by the Makefile
Carl-Daniel Hailfinger33a65a02011-12-20 00:51:44 +000018 */
19
20// Solaris
21#if defined (__sun) && (defined(__i386) || defined(__amd64))
22#define __FLASHROM_OS__ "SunOS"
23// OS X
24#elif defined(__MACH__) && defined(__APPLE__)
25#define __FLASHROM_OS__ "Darwin"
26// FreeBSD
27#elif defined(__FreeBSD__)
28#define __FLASHROM_OS__ "FreeBSD"
Carl-Daniel Hailfingera5eecda2012-02-25 22:50:21 +000029// FreeBSD with glibc-based userspace (e.g. Debian/kFreeBSD)
30#elif defined(__FreeBSD_kernel__) && defined(__GLIBC__)
31#define __FLASHROM_OS__ "FreeBSD-glibc"
Carl-Daniel Hailfinger33a65a02011-12-20 00:51:44 +000032// DragonFlyBSD
33#elif defined(__DragonFly__)
34#define __FLASHROM_OS__ "DragonFlyBSD"
35// NetBSD
36#elif defined(__NetBSD__)
37#define __FLASHROM_OS__ "NetBSD"
38// OpenBSD
39#elif defined(__OpenBSD__)
40#define __FLASHROM_OS__ "OpenBSD"
41// DJGPP
42#elif defined(__DJGPP__)
43#define __FLASHROM_OS__ "DOS"
44// MinGW (always has _WIN32 available)
45#elif defined(__MINGW32__)
46#define __FLASHROM_OS__ "MinGW"
47// Cygwin (usually without _WIN32)
48#elif defined( __CYGWIN__)
49#define __FLASHROM_OS__ "Cygwin"
50// libpayload
51#elif defined(__LIBPAYLOAD__)
52#define __FLASHROM_OS__ "libpayload"
Stefan Tauner8e656542016-03-06 22:32:16 +000053// GNU Hurd
54#elif defined(__gnu_hurd__)
55#define __FLASHROM_OS__ "Hurd"
Carl-Daniel Hailfinger33a65a02011-12-20 00:51:44 +000056// Linux
57#elif defined(__linux__)
Stefan Tauner23e10b82016-01-23 16:16:49 +000058 // There are various flags in use on Android apparently. __ANDROID__ seems to be the most trustworthy.
59 #if defined(__ANDROID__)
60 #define __FLASHROM_OS__ "Android"
61 #else
62 #define __FLASHROM_OS__ "Linux"
63 #endif
Thomas Heijligen1e76dc82021-09-28 15:22:34 +020064#else
65#define __FLASHROM_OS__ "unknown"
Carl-Daniel Hailfinger33a65a02011-12-20 00:51:44 +000066#endif
67__FLASHROM_OS__