blob: eacd284771563b14407bd54d51d470c09ce1ff96 [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))
Nico Huberc3b02dc2023-08-12 01:13:45 +020022#define __FLASHPROG_OS__ "SunOS"
Carl-Daniel Hailfinger33a65a02011-12-20 00:51:44 +000023// OS X
24#elif defined(__MACH__) && defined(__APPLE__)
Nico Huberc3b02dc2023-08-12 01:13:45 +020025#define __FLASHPROG_OS__ "Darwin"
Carl-Daniel Hailfinger33a65a02011-12-20 00:51:44 +000026// FreeBSD
27#elif defined(__FreeBSD__)
Nico Huberc3b02dc2023-08-12 01:13:45 +020028#define __FLASHPROG_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__)
Nico Huberc3b02dc2023-08-12 01:13:45 +020031#define __FLASHPROG_OS__ "FreeBSD-glibc"
Carl-Daniel Hailfinger33a65a02011-12-20 00:51:44 +000032// DragonFlyBSD
33#elif defined(__DragonFly__)
Nico Huberc3b02dc2023-08-12 01:13:45 +020034#define __FLASHPROG_OS__ "DragonFlyBSD"
Carl-Daniel Hailfinger33a65a02011-12-20 00:51:44 +000035// NetBSD
36#elif defined(__NetBSD__)
Nico Huberc3b02dc2023-08-12 01:13:45 +020037#define __FLASHPROG_OS__ "NetBSD"
Carl-Daniel Hailfinger33a65a02011-12-20 00:51:44 +000038// OpenBSD
39#elif defined(__OpenBSD__)
Nico Huberc3b02dc2023-08-12 01:13:45 +020040#define __FLASHPROG_OS__ "OpenBSD"
Carl-Daniel Hailfinger33a65a02011-12-20 00:51:44 +000041// DJGPP
42#elif defined(__DJGPP__)
Nico Huberc3b02dc2023-08-12 01:13:45 +020043#define __FLASHPROG_OS__ "DOS"
Carl-Daniel Hailfinger33a65a02011-12-20 00:51:44 +000044// MinGW (always has _WIN32 available)
45#elif defined(__MINGW32__)
Nico Huberc3b02dc2023-08-12 01:13:45 +020046#define __FLASHPROG_OS__ "MinGW"
Carl-Daniel Hailfinger33a65a02011-12-20 00:51:44 +000047// Cygwin (usually without _WIN32)
48#elif defined( __CYGWIN__)
Nico Huberc3b02dc2023-08-12 01:13:45 +020049#define __FLASHPROG_OS__ "Cygwin"
Carl-Daniel Hailfinger33a65a02011-12-20 00:51:44 +000050// libpayload
51#elif defined(__LIBPAYLOAD__)
Nico Huberc3b02dc2023-08-12 01:13:45 +020052#define __FLASHPROG_OS__ "libpayload"
Stefan Tauner8e656542016-03-06 22:32:16 +000053// GNU Hurd
54#elif defined(__gnu_hurd__)
Nico Huberc3b02dc2023-08-12 01:13:45 +020055#define __FLASHPROG_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__)
Nico Huberc3b02dc2023-08-12 01:13:45 +020060 #define __FLASHPROG_OS__ "Android"
Stefan Tauner23e10b82016-01-23 16:16:49 +000061 #else
Nico Huberc3b02dc2023-08-12 01:13:45 +020062 #define __FLASHPROG_OS__ "Linux"
Stefan Tauner23e10b82016-01-23 16:16:49 +000063 #endif
Thomas Heijligen1e76dc82021-09-28 15:22:34 +020064#else
Nico Huberc3b02dc2023-08-12 01:13:45 +020065#define __FLASHPROG_OS__ "unknown"
Carl-Daniel Hailfinger33a65a02011-12-20 00:51:44 +000066#endif
Nico Huberc3b02dc2023-08-12 01:13:45 +020067__FLASHPROG_OS__