1 //LSB (Linux Standard Base) compiler
2 //only support lsbc++
3 #if defined (__LSB_VERSION__)
4 #if !defined (__cplusplus)
5 COMPILER_LSB
6 #else
7 #error "OpenBLAS only supports lsbcc."
8 #endif
9 #endif
10 
11 #if defined(__clang__)
12 COMPILER_CLANG
13 #endif
14 
15 #if defined(__PGI) || defined(__PGIC__)
16 COMPILER_PGI
17 #endif
18 
19 #if defined(__PATHSCALE__) || defined(__PATHCC__)
20 COMPILER_PATHSCALE
21 #endif
22 
23 #if defined(__INTEL_COMPILER) || defined(__ICC) || defined(__ECC)
24 COMPILER_INTEL
25 #endif
26 
27 #if defined(__OPENCC__)
28 COMPILER_OPEN64
29 #endif
30 
31 #if defined(__SUNPRO_C)
32 COMPILER_SUN
33 #endif
34 
35 #if defined(__IBMC__) || defined(__xlc__)
36 COMPILER_IBM
37 #endif
38 
39 #if defined(__DECCC__)
40 COMPILER_DEC
41 #endif
42 
43 #if defined(__GNUC__)
44 COMPILER_GNU
45 #endif
46 
47 #if defined(__ANDROID__)
48 OS_ANDROID
49 #endif
50 
51 #if defined(__linux__)
52 OS_LINUX
53 #endif
54 
55 #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
56 OS_FREEBSD
57 #endif
58 
59 #if defined(__NetBSD__)
60 OS_NETBSD
61 #endif
62 
63 #if defined(__OpenBSD__)
64 OS_OPENBSD
65 #endif
66 
67 #if defined(__DragonFly__)
68 OS_DRAGONFLY
69 #endif
70 
71 #if defined(__sun)
72 OS_SUNOS
73 #endif
74 
75 #if defined(__APPLE__)
76 OS_DARWIN
77 #endif
78 
79 #if defined(_AIX)
80 OS_AIX
81 #endif
82 
83 #if defined(__OSF)
84 OS_OSF
85 #endif
86 
87 #if defined(__WIN32) || defined(__WIN64) || defined(_WIN32) || defined(_WIN64) || defined(__WINNT)
88 OS_WINNT
89 #endif
90 
91 #if defined(__CYGWIN__)
92 OS_CYGWIN_NT
93 #endif
94 
95 #if defined(__INTERIX)
96 OS_INTERIX
97 #endif
98 
99 #if defined(__gnu_hurd__)
100 /* Hurd is very similar to GNU/Linux, it should work out of the box */
101 OS_LINUX
102 #endif
103 
104 #if defined(__HAIKU__)
105 OS_HAIKU
106 #endif
107 
108 #if defined(__i386) || defined(_X86)
109 ARCH_X86
110 #endif
111 
112 #if defined(__x86_64__) || defined(__amd64__)
113 ARCH_X86_64
114 #endif
115 
116 #if defined(__powerpc___) || defined(__PPC__) || defined(_POWER) || defined(__POWERPC__)
117 ARCH_POWER
118 #endif
119 
120 #if defined(__s390x__) || defined(__zarch__)
121 ARCH_ZARCH
122 #endif
123 
124 #ifdef __mips64
125 ARCH_MIPS64
126 #endif
127 
128 #if defined(__mips32) || defined(__mips)
129 ARCH_MIPS
130 #endif
131 
132 #ifdef __alpha
133 ARCH_ALPHA
134 #endif
135 
136 #if defined(__sparc) || defined(__sparc__)
137 ARCH_SPARC
138 #endif
139 
140 #if defined(__ia64__) || defined(__ia64)
141 ARCH_IA64
142 #endif
143 
144 #if defined(__LP64) || defined(__LP64__) || defined(__ptr64) || defined(__x86_64__) || defined(__amd64__) || defined(__64BIT__) || defined(__aarch64__)
145 BINARY_64
146 #endif
147 
148 #if defined(__ARM_ARCH) || defined(__ARM_ARCH_7A__) || defined(__arm__)
149 ARCH_ARM
150 #endif
151 
152 #if defined(__aarch64__)
153 ARCH_ARM64
154 #endif
155 
156 #if defined(__riscv)
157 ARCH_RISCV64
158 #endif
159 
160 #ifdef __loongarch64
161 ARCH_LOONGARCH64
162 #endif
163 
164 #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L)
165 HAVE_C11
166 #endif
167 
168