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