home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / snip9707.zip / COMPILER.C < prev    next >
C/C++ Source or Header  |  1997-07-05  |  2KB  |  72 lines

  1. /* +++Date last modified: 05-Jul-1997 */
  2.  
  3. /*
  4. **  Tests for popular PC compilers and versions
  5. */
  6.  
  7. #include <stdio.h>
  8.  
  9. main()
  10. {
  11.       int version;
  12.  
  13. #if defined(__ZTC__)
  14.  #if defined(__SC__)
  15.       printf("Symantec C++ ver. %x.%x\n", __SC__ >> 8, __SC__ & 0xff);
  16.  #else
  17.       printf("Zortech C++ ver. %x.%xr%x\n",
  18.             __ZTC__ >> 8, (__ZTC__ >> 4) & 0xf, __ZTC__ & 0xf);
  19.  #endif
  20. #elif defined(__WATCOMC__)
  21.       printf("Watcom C/C++ ver. %d.%d\n",
  22.             __WATCOMC__ / 100, __WATCOMC__ % 100);
  23. #elif defined(__TURBOC__)
  24.       version = __TURBOC__;
  25.       if (0x295 > version)
  26.       {
  27.             printf("Borland Turbo C ver. %x.%02x\n",
  28.                   version >> 8, version & 0xff);
  29.       }
  30.       else if (0x400 <= version)
  31.       {
  32.  #if defined(__BORLANDC__)
  33.             printf("Borland C++ ver. %x.%x\n",
  34.                   (version >> 8) - 1, (version & 0xff) >> 4);
  35.  #else
  36.             printf("Borland Turbo C++ ver. %x.%x\n",
  37.                   (version >> 8) - 1, (version & 0xff) >> 4);
  38.  #endif
  39.       }
  40.       else if (0x297 > version)
  41.             printf("Borland Turbo C++ ver. 1.%02x\n", version - 0x295);
  42.       else  printf("Borland C++ ver. 2.%02x\n", version - 0x297);
  43. #elif defined(_MSC_VER)
  44.       printf("Microsoft C(/C++) ver. %d.%d\n",
  45.             _MSC_VER / 100, _MSC_VER % 100);
  46. #elif defined(_QC)
  47.       printf("Microsoft Quick C ver. %d.%d\n", _QC / 100, _QC % 100);
  48. #elif defined(__POWERC)
  49.       printf ("MIX Power C ver. %d.%d.%d\n",
  50.             __POWERC/100, (__POWERC / 10) % 10, __POWERC % 10);
  51. #elif defined(__GNUC__)
  52.  #ifdef __EMX__
  53.       printf("GNU/EMX C version %d.%d\n", __GNUC__, __GNUC_MINOR__);
  54.   #else
  55.       printf("GNU C version %d.%d\n", __GNUC__, __GNUC_MINOR__);
  56.  #endif
  57. #elif defined(__IBMC__) || defined (__IBMCPP__)
  58.  #ifdef __IBMC__
  59.       version = __IBMC__;
  60.  #else
  61.       version = __IBMCPP__;
  62.  #endif
  63.       if (version >= 300)
  64.             printf ("IBM VisualAge C++ %d.%d\n",
  65.                   version / 100, version % 100);
  66.       else  printf ("IBM C Set++ %d.%d\n", version / 100, version % 100);
  67. #else
  68.       puts("Unknown compiler!");
  69. #endif
  70.       return 0;
  71. }
  72.