summaryrefslogtreecommitdiff
path: root/zap/include/zap/sys.d/os.h
blob: 0a8e85c1d63e7564872715a08df142f90096da3b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
/*
	Copyright 2022-2023 Gabriel Jensen.
	This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
	If a copy of the MPL was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0>.
*/

/*
	os------- macro---------- vendors-----------------------------------
	                          clang cray edg gcc icc icx msvc pcc tiny vsi watcom xlc

	aix       __HOS_AIX__     clang
	aix       __TOS_AIX__     clang
	aix       _AIX            clang

	dos       __DOS__                                                      watcom
	dos       _DOS                                                         watcom

	drgnfly  __DragonFly__    clang

	freebsd   __FreeBSD__     clang          gcc

	hurd      __GNU__         clang
	hurd      __gnu_hurd__    clang

	linux     __LINUX__                                                    watcom
	linux     __gnu_linux__   clang cray     gcc icc icx
	linux     __linux         clang cray     gcc icc icx          tiny
	linux     __linux__       clang cray     gcc icc icx      pcc tiny

	mac       __APPLE__       clang              icc
	mac       __MACH__        clang              icc

	minix     __minix         clang

	netbsd    __NetBSD__      clang

	openbsd   __OpenBSD__     clang

	os2       __OS2__                                                      watcom

	sol       __sun           clang
	sol       __sun__         clang

	vms       __VMS                                                    vsi
	vms       __vms                                                    vsi

	win       __WINDOWS__                                                  watcom
	win       __WINDOWS_386__                                              watcom
	win       __w64                              icc
	win       _WIN32          clang      edg     icc icx msvc
	win       _WIN64          clang      edg     icc icx msvc
	win       _WINDOWS                                                     watcom


	unix      __UNIX__                                                     watcom
	unix      __unix          clang          gcc icc icx          tiny            xlc
	unix      __unix__        clang          gcc icc icx          tiny            xlc
*/

#if \
   defined(__HOS_AIX__) \
|| defined(__TOS_AIX__) \
|| defined(_AIX)
#define zap_os_aix (0x1)
#endif

#if \
   defined(__DragonFly__)
#define zap_os_drgnfly (0x1)
#endif

#if \
   defined(__DOS__) \
|| defined(_DOS)
#define zap_os_dos (0x1)
#endif

#if \
   defined(__FreeBSD__)
#define zap_os_freebsd (0x1)
#endif

#if \
   defined(__GNU__)      \
|| defined(__gnu_hurd__)
#define zap_os_hurd (0x1)
#endif

#if \
   defined(__LINUX__)     \
|| defined(__gnu_linux__) \
|| defined(__linux)       \
|| defined(__linux__)
#define zap_os_linux (0x1)
#endif

#if \
   defined(__APPLE__) \
|| defined(__MACH__)
#define zap_os_mac (0x1)
#endif

#if \
   defined(__minix)
#define zap_os_minix (0x1)
#endif

#if \
   defined(__NetBSD__)
#define zap_os_netbsd (0x1)
#endif

#if \
   defined(__OpenBSD__)
#define zap_os_openbsd (0x1)
#endif

#if \
   defined(__OS2__)
#define zap_os_os2 (0x1)
#endif

#if \
   defined(__sun)   \
|| defined(__sun__)
#define zap_os_sol (0x1)
#endif

#if \
   defined(__VMS)
|| defined(__vms)
#define zap_os_vms (0x1)
#endif

#if \
   defined(__WINDOWS__)     \
|| defined(__WINDOWS_386__) \
|| defined(__w64)           \
|| defined(_WIN32)          \
|| defined(_WIN64)          \
|| defined(_WINDOWS)
#define zap_os_win (0x1)
#endif

#if \
   zap_os_aix        \
|| zap_os_drgnfly    \
|| zap_os_freebsd    \
|| zap_os_hurd       \
|| zap_os_linux      \
|| zap_os_mac        \
|| zap_os_minix      \
|| zap_os_netbsd     \
|| zap_os_openbsd    \
|| zap_os_sol        \
|| defined(__UNIX__) \
|| defined(__unix)   \
|| defined(__unix__)
#define zap_os_unix (0x1)
#endif