ident()1 static char *ident(){ return "$Id$"; }
2
3 /* Test compiler for predefined macroses
4 stdc
5 */
6
7 char *string = ""
8
9 /*
10 #ifdef
11 " "
12 #endif
13 */
14
15 #ifdef MSDOS
16 " MSDOS "
17 #endif
18
19 #ifdef __MSDOS__
20 " __MSDOS__ "
21 #endif
22
23 #ifdef DOS
24 " DOS "
25 #endif
26
27 #ifdef _DOS
28 " _DOS "
29 #endif
30
31 #ifdef __DOS__
32 " __DOS__ "
33 #endif
34
35 #ifdef __DJGPP__
36 " __DJGPP__ "
37 #endif
38
39 #ifdef __DOS4G__
40 " __DOS4G__ "
41 #endif
42
43 #ifdef __NT__
44 " __NT__ "
45 #endif
46
47 #ifdef _NT
48 " _NT "
49 #endif
50
51 #ifdef __WINNT__
52 " __WINNT__ "
53 #endif
54
55 #ifdef WINNT
56 " WINNT "
57 #endif
58
59 #ifdef _WIN_NT
60 " _WIN_NT "
61 #endif
62
63 #ifdef _WINNT
64 " _WINNT "
65 #endif
66
67 #ifdef _WIN32_WINNT
68 " _WIN32_WINNT "
69 #endif
70
71 #ifdef __WIN32__
72 " __WIN32__ "
73 #endif
74
75 #ifdef __WIN64__
76 " __WIN64__ "
77 #endif
78
79 #ifdef WIN32
80 " WIN32 "
81 #endif
82
83 #ifdef _WIN32
84 " _WIN32 "
85 #endif
86
87 #ifdef __WIN__
88 " __WIN__ "
89 #endif
90
91 #ifdef WIN
92 " WIN "
93 #endif
94
95 #ifdef _WIN
96 " _WIN "
97 #endif
98
99 #ifdef WINDOWS
100 " WINDOWS "
101 #endif
102
103 #ifdef _WINDOWS
104 " _WINDOWS "
105 #endif
106
107 #ifdef __WINDOWS__
108 " __WINDOWS__ "
109 #endif
110
111 #ifdef OS2
112 " OS2 "
113 #endif
114
115 #ifdef _OS2
116 " _OS2 "
117 #endif
118
119 #ifdef __OS2__
120 " __OS2__ "
121 #endif
122
123 #ifdef __OS2V2__
124 " __OS2V2__ "
125 #endif
126
127 #ifdef __X86__
128 " __X86__ "
129 #endif
130
131 #ifdef __I86__
132 " __I86__ "
133 #endif
134
135 #ifdef __86__
136 " __86__ "
137 #endif
138
139 #ifdef __186__
140 " __186__ "
141 #endif
142
143 #ifdef __286__
144 " __286__ "
145 #endif
146
147 #ifdef __386__
148 " __386__ "
149 #endif
150
151 #ifdef __486__
152 " __486__ "
153 #endif
154
155 #ifdef __586__
156 " __586__ "
157 #endif
158
159 #ifdef __686__
160 " __686__ "
161 #endif
162
163 #ifdef __786__
164 " __786__ "
165 #endif
166
167 #ifdef M_X86
168 " M_X86 "
169 #endif
170
171 #ifdef _M_X86
172 " _M_X86 "
173 #endif
174
175 #ifdef M_86
176 " M_86 "
177 #endif
178
179 #ifdef _M_86
180 " _M_86 "
181 #endif
182
183 #ifdef _M_I86
184 " _M_I86 "
185 #endif
186
187 #ifdef M_I86
188 " M_I86 "
189 #endif
190
191 #ifdef _M_I8086
192 " _M_I8086 "
193 #endif
194
195 #ifdef M_I8086
196 " M_I8086 "
197 #endif
198
199 #ifdef _M_I8088
200 " _M_I8088 "
201 #endif
202
203 #ifdef M_I8088
204 " M_I8088 "
205 #endif
206
207 #ifdef M_186
208 " M_186 "
209 #endif
210
211 #ifdef _M_186
212 " _M_186 "
213 #endif
214
215 #ifdef M_286
216 " M_286 "
217 #endif
218
219 #ifdef _M_286
220 " _M_286 "
221 #endif
222
223 #ifdef M_386
224 " M_386 "
225 #endif
226
227 #ifdef _M_386
228 " _M_386 "
229 #endif
230
231 #ifdef _M_486
232 " _M_486 "
233 #endif
234
235 #ifdef M_486
236 " M_486 "
237 #endif
238
239 #ifdef M_586
240 " M_586 "
241 #endif
242
243 #ifdef _M_586
244 " _M_586 "
245 #endif
246
247 #ifdef _M_686
248 " _M_686 "
249 #endif
250
251 #ifdef M_686
252 " M_686 "
253 #endif
254
255 #ifdef _M_ALPHA
256 " _M_ALPHA "
257 #endif
258
259 #ifdef M_ALPHA
260 " M_ALPHA "
261 #endif
262
263 #ifdef __ALPHA__
264 " __ALPHA__ "
265 #endif
266
267 #ifdef __FLAT__
268 " __FLAT__ "
269 #endif
270
271 #ifdef __WATCOMC__
272 " __WATCOMC__ "
273 #endif
274
275 #ifdef __TURBOC__
276 " __TURBOC__ "
277 #endif
278
279 #ifdef __SUN__
280 " __SUN__ "
281 #endif
282
283 #ifdef SUN
284 " SUN "
285 #endif
286
287 #ifdef __sun__
288 " __sun__ "
289 #endif
290
291 #ifdef sun
292 " sun "
293 #endif
294
295 #if defined(__AIX__)
296 " __AIX__ "
297 #endif
298
299 #if defined(_AIX)
300 " _AIX "
301 #endif
302
303 #if defined(__APPLE__)
304 " __APPLE__ "
305 #endif
306 #if defined(__MACH__)
307 " __MACH__ "
308 #endif
309 #if defined(__NetBSD__)
310 " __NetBSD__ "
311 #endif
312 #if defined(__FreeBSD__)
313 " __FreeBSD__ "
314 #endif
315 #if defined(__OpenBSD__)
316 " __OpenBSD__ "
317 #endif
318
319 #if defined(BSD)
320 " BSD "
321 #endif
322 #if defined(__BSD__)
323 " __BSD__ "
324 #endif
325 #if defined(bsd)
326 " bsd "
327 #endif
328 #if defined(__bsd__)
329 " __bsd__ "
330 #endif
331 #if defined( __svr4__ )
332 " __svr4__ "
333 #endif
334 #if defined( svr4 )
335 " svr4 "
336 #endif
337 #if defined( __SVR4__ )
338 " __SVR4__ "
339 #endif
340 #if defined( SVR4 )
341 " SVR4 "
342 #endif
343 #if defined( __SVR4 )
344 " __SVR4 "
345 #endif
346 #if defined( _SVR4 )
347 " _SVR4 "
348 #endif
349 #if defined(__linux__)
350 " __linux__ "
351 #endif
352 #if defined(_linux)
353 " _linux "
354 #endif
355 #if defined(linux)
356 " linux "
357 #endif
358 #if defined(__LINUX__)
359 " __LINUX__ "
360 #endif
361 #if defined(_LINUX)
362 " _LINUX "
363 #endif
364 #if defined(LINUX)
365 " LINUX "
366 #endif
367
368 #ifdef __unix__
369 " __unix__ "
370 #endif
371
372 #ifdef _unix
373 " _unix "
374 #endif
375
376 #ifdef unix
377 " unix "
378 #endif
379
380 #ifdef __UNIX__
381 " __UNIX__ "
382 #endif
383
384 #ifdef _UNIX
385 " _UNIX "
386 #endif
387
388 #ifdef UNIX
389 " UNIX "
390 #endif
391
392 #ifdef __CYGWIN__
393 " __CYGWIN__ "
394 #endif
395
396 #ifdef __MINGW32__
397 " __MINGW32__ "
398 #endif
399
400 #ifdef __GNUC__
401 " __GNUC__ "
402 #endif
403
404 #ifdef __GNUG__
405 " __GNUG__ "
406 #endif
407
408 #ifdef __RSX__
409 " __RSX__ "
410 #endif
411
412 #ifdef __RSXNT__
413 " __RSXNT__ "
414 #endif
415
416 #ifdef __EMX__
417 " __EMX__ "
418 #endif
419
420 #ifdef __16BIT__
421 " __16BIT__ "
422 #endif
423
424 #ifdef __32BIT__
425 " __32BIT__ "
426 #endif
427
428 #ifdef __MT__ /* Multi-thread library */
429 " __MT__ "
430 #endif
431
432 #ifdef _QC
433 " _QC "
434 #endif
435
436 #ifdef _MSC
437 " _MSC "
438 #endif
439
440 #ifdef _MSC_VER
441 " _MSC_VER "
442 #endif
443
444 #ifdef __cplusplus
445 " __cplusplus "
446 #endif
447
448 #ifdef _DLL
449 " _DLL "
450 #endif
451
452 #ifdef _M_ALPHA
453 " _M_ALPHA "
454 #endif
455
456 #ifdef _M_IX86
457 " _M_IX86 "
458 #endif
459
460 #ifdef _M_MPPC
461 " _M_MPPC "
462 #endif
463
464 #ifdef _M_MRX000
465 " _M_MRX000 "
466 #endif
467
468 #ifdef _M_PPC
469 " _M_PPC "
470 #endif
471
472 #ifdef __STDC__
473 " __STDC__ "
474 #endif
475
476 #ifdef __CHAR_UNSIGNED__
477 " __CHAR_UNSIGNED__ "
478 #endif
479
480 #ifdef _CHAR_UNSIGNED
481 " _CHAR_UNSIGNED "
482 #endif
483
484 #ifdef _CHAR_UNSIGNED
485 " _CHAR_UNSIGNED "
486 #endif
487
488 #ifdef CHAR_SIGNED
489 " CHAR_SIGNED "
490 #endif
491
492 #ifdef _CHAR_SIGNED
493 " _CHAR_SIGNED "
494 #endif
495
496 #ifdef __CHAR_SIGNED__
497 " __CHAR_SIGNED__ "
498 #endif
499
500 #ifdef HIGHC
501 " HIGHC "
502 #endif
503
504 #ifdef __HIGHC__
505 " __HIGHC__ "
506 #endif
507
508 #ifdef near
509 " near "
510 #endif
511
512 #ifdef far
513 " far "
514 #endif
515
516 #ifdef huge
517 " huge "
518 #endif
519
520 #ifdef pascal
521 " pascal "
522 #endif
523
524 #ifdef fortran
525 " fortran "
526 #endif
527
528 #ifdef cdecl
529 " cdecl "
530 #endif
531
532 ;
533
534 #include <stdio.h>
535
main()536 int main(){
537
538 puts("Compiler predefined macroses test for HUSKY.\n (c) Stas Degteff & Husky Development Team\n\n");
539
540 printf( "\nKnown predefined macroses list: \n%s\n\nSome values:\n" , string);
541
542
543 #ifdef __GNUC__
544 printf( "__GNUC__=%u (0x%X); ",__GNUC__, __GNUC__ );
545 #endif
546 #ifdef __GNUC_MINOR__
547 printf( "__GNUC_MINOR__=%u (0x%X) ", __GNUC_MINOR__, __GNUC_MINOR__);
548 #endif
549 #if defined(__GNUC__) || defined(__CNUC_MINOR__)
550 printf( "\n");
551 #endif
552
553 #ifdef __VERSION__
554 printf( "__VERSION__=%s\n", __VERSION__ );
555 #endif
556
557 #ifdef __TURBOC__
558 printf( "__TURBOC__=%u (0x%X)\n",__TURBOC__, __TURBOC__);
559 #endif
560
561 #ifdef __WATCOMC__
562 printf( "__WATCOMC__=%u (0x%X)\n",__WATCOMC__, __WATCOMC__);
563 #endif
564
565 #ifdef _MSC
566 printf( "_MSC=%u (0x%X) ",_MSC, _MSC);
567 #endif
568 #ifdef _MSC_VER
569 printf( "_MSC_VER=%u (0x%X) ",_MSC_VER, _MSC_VER);
570 #endif
571 #ifdef MSC_CMD_FLAGS
572 printf( "MSC_CMD_FLAGS=\"%s\" ", MSC_CMD_FLAGS);
573 #endif
574 #if defined(_MSC) || defined(_MSC_VER)
575 printf( "\n");
576 #endif
577
578 #ifdef NO_EXT_KEYS
579 printf( "NO_EXT_KEYS=%u\n", NO_EXT_KEYS);
580 #endif
581
582 #ifdef __STDC__
583 printf( "__STDC__=%u (0x%X); ", __STDC__, __STDC__);
584 #endif
585 #ifdef __STDC_VERSION__
586 printf( "__STDC_VERSION__=%u (0x%X); ", __STDC_VERSION__, __STDC_VERSION__);
587 #endif
588 #if defined(__STDC__) || defined(__STDC_VERSION__) || defined(__STDC_VERSION__)
589 printf( "\n");
590 #endif
591
592 printf( "\nVariable types sizes (in bytes):\n" );
593 printf( "char=%u; short=%u; int=%u; long=%u\n",
594 (unsigned) sizeof(char),
595 (unsigned) sizeof(short),
596 (unsigned) sizeof(int),
597 (unsigned) sizeof(long)
598 );
599
600 return 0;
601 }
602