KerMor  0.9
Model order reduction for nonlinear dynamical systems and nonlinear approximation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
CMakeCCompilerId.c
Go to the documentation of this file.
1 #ifdef __cplusplus
2 # error "A C++ compiler has been selected for C."
3 #endif
4 
5 #if defined(__18CXX)
6 # define ID_VOID_MAIN
7 #endif
8 
9 #if defined(__INTEL_COMPILER) || defined(__ICC)
10 # define COMPILER_ID "Intel"
11 
12 #elif defined(__clang__)
13 # define COMPILER_ID "Clang"
14 
15 #elif defined(__BORLANDC__)
16 # define COMPILER_ID "Borland"
17 
18 #elif defined(__WATCOMC__)
19 # define COMPILER_ID "Watcom"
20 
21 #elif defined(__SUNPRO_C)
22 # define COMPILER_ID "SunPro"
23 
24 #elif defined(__HP_cc)
25 # define COMPILER_ID "HP"
26 
27 #elif defined(__DECC)
28 # define COMPILER_ID "Compaq"
29 
30 #elif defined(__IBMC__)
31 # if defined(__COMPILER_VER__)
32 # define COMPILER_ID "zOS"
33 # elif __IBMC__ >= 800
34 # define COMPILER_ID "XL"
35 # else
36 # define COMPILER_ID "VisualAge"
37 # endif
38 
39 #elif defined(__PGI)
40 # define COMPILER_ID "PGI"
41 
42 #elif defined(__PATHSCALE__)
43 # define COMPILER_ID "PathScale"
44 
45 #elif defined(_CRAYC)
46 # define COMPILER_ID "Cray"
47 
48 #elif defined(__TI_COMPILER_VERSION__)
49 # define COMPILER_ID "TI_DSP"
50 
51 #elif defined(__TINYC__)
52 # define COMPILER_ID "TinyCC"
53 
54 #elif defined(__SCO_VERSION__)
55 # define COMPILER_ID "SCO"
56 
57 #elif defined(__GNUC__)
58 # define COMPILER_ID "GNU"
59 
60 #elif defined(_MSC_VER)
61 # define COMPILER_ID "MSVC"
62 
63 #elif defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
64 /* Analog Devices C++ compiler for Blackfin, TigerSHARC and
65  SHARC (21000) DSPs */
66 # define COMPILER_ID "ADSP"
67 
68 /* IAR Systems compiler for embedded systems.
69  http://www.iar.com
70  Not supported yet by CMake
71 #elif defined(__IAR_SYSTEMS_ICC__)
72 # define COMPILER_ID "IAR" */
73 
74 /* sdcc, the small devices C compiler for embedded systems,
75  http://sdcc.sourceforge.net */
76 #elif defined(SDCC)
77 # define COMPILER_ID "SDCC"
78 
79 #elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)
80 # define COMPILER_ID "MIPSpro"
81 
82 /* This compiler is either not known or is too old to define an
83  identification macro. Try to identify the platform and guess that
84  it is the native compiler. */
85 #elif defined(__sgi)
86 # define COMPILER_ID "MIPSpro"
87 
88 #elif defined(__hpux) || defined(__hpua)
89 # define COMPILER_ID "HP"
90 
91 #else /* unknown compiler */
92 # define COMPILER_ID ""
93 
94 #endif
95 
96 /* Construct the string literal in pieces to prevent the source from
97  getting matched. Store it in a pointer rather than an array
98  because some compilers will just produce instructions to fill the
99  array rather than assigning a pointer to a static array. */
100 char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
101 
102 /* Identify known platforms by name. */
103 #if defined(__linux) || defined(__linux__) || defined(linux)
104 # define PLATFORM_ID "Linux"
105 
106 #elif defined(__CYGWIN__)
107 # define PLATFORM_ID "Cygwin"
108 
109 #elif defined(__MINGW32__)
110 # define PLATFORM_ID "MinGW"
111 
112 #elif defined(__APPLE__)
113 # define PLATFORM_ID "Darwin"
114 
115 #elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
116 # define PLATFORM_ID "Windows"
117 
118 #elif defined(__FreeBSD__) || defined(__FreeBSD)
119 # define PLATFORM_ID "FreeBSD"
120 
121 #elif defined(__NetBSD__) || defined(__NetBSD)
122 # define PLATFORM_ID "NetBSD"
123 
124 #elif defined(__OpenBSD__) || defined(__OPENBSD)
125 # define PLATFORM_ID "OpenBSD"
126 
127 #elif defined(__sun) || defined(sun)
128 # define PLATFORM_ID "SunOS"
129 
130 #elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
131 # define PLATFORM_ID "AIX"
132 
133 #elif defined(__sgi) || defined(__sgi__) || defined(_SGI)
134 # define PLATFORM_ID "IRIX"
135 
136 #elif defined(__hpux) || defined(__hpux__)
137 # define PLATFORM_ID "HP-UX"
138 
139 #elif defined(__HAIKU) || defined(__HAIKU__) || defined(_HAIKU)
140 # define PLATFORM_ID "Haiku"
141 /* Haiku also defines __BEOS__ so we must
142  put it prior to the check for __BEOS__
143 */
144 
145 #elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
146 # define PLATFORM_ID "BeOS"
147 
148 #elif defined(__QNX__) || defined(__QNXNTO__)
149 # define PLATFORM_ID "QNX"
150 
151 #elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
152 # define PLATFORM_ID "Tru64"
153 
154 #elif defined(__riscos) || defined(__riscos__)
155 # define PLATFORM_ID "RISCos"
156 
157 #elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
158 # define PLATFORM_ID "SINIX"
159 
160 #elif defined(__UNIX_SV__)
161 # define PLATFORM_ID "UNIX_SV"
162 
163 #elif defined(__bsdos__)
164 # define PLATFORM_ID "BSDOS"
165 
166 #elif defined(_MPRAS) || defined(MPRAS)
167 # define PLATFORM_ID "MP-RAS"
168 
169 #elif defined(__osf) || defined(__osf__)
170 # define PLATFORM_ID "OSF1"
171 
172 #elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
173 # define PLATFORM_ID "SCO_SV"
174 
175 #elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
176 # define PLATFORM_ID "ULTRIX"
177 
178 #elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
179 # define PLATFORM_ID "Xenix"
180 
181 #else /* unknown platform */
182 # define PLATFORM_ID ""
183 
184 #endif
185 
186 /* For windows compilers MSVC and Intel we can determine
187  the architecture of the compiler being used. This is because
188  the compilers do not have flags that can change the architecture,
189  but rather depend on which compiler is being used
190 */
191 #if defined(_WIN32) && defined(_MSC_VER)
192 # if defined(_M_IA64)
193 # define ARCHITECTURE_ID "IA64"
194 
195 # elif defined(_M_X64) || defined(_M_AMD64)
196 # define ARCHITECTURE_ID "x64"
197 
198 # elif defined(_M_IX86)
199 # define ARCHITECTURE_ID "X86"
200 
201 # else /* unknown architecture */
202 # define ARCHITECTURE_ID ""
203 # endif
204 
205 #else
206 # define ARCHITECTURE_ID ""
207 #endif
208 
209 /* Construct the string literal in pieces to prevent the source from
210  getting matched. Store it in a pointer rather than an array
211  because some compilers will just produce instructions to fill the
212  array rather than assigning a pointer to a static array. */
213 char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
214 char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
215 
216 
217 
218 /*--------------------------------------------------------------------------*/
219 
220 #ifdef ID_VOID_MAIN
221 void main() {}
222 #else
223 int main(int argc, char* argv[])
224 {
225  int require = 0;
226  require += info_compiler[argc];
227  require += info_platform[argc];
228  require += info_arch[argc];
229  (void)argv;
230  return require;
231 }
232 #endif
#define ARCHITECTURE_ID
#define PLATFORM_ID
#define COMPILER_ID
char const * info_arch
int main(int argc, char *argv[])
char const * info_platform
char const * info_compiler