home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / historic / v941.tgz / icon.v941src.tar / icon.v941src / src / h / features.h < prev    next >
Text File  |  2002-01-18  |  3KB  |  131 lines

  1. /*
  2.  * features.h -- predefined symbols and &features
  3.  *
  4.  * This file consists entirely of a sequence of conditionalized calls
  5.  *  to the Feature() macro.  The macro is not defined here, but is
  6.  *  defined to different things by the the code that includes it.
  7.  *
  8.  * For the macro call  Feature(guard,symname,kwval)
  9.  * the parameters are:
  10.  *    guard    for the compiler's runtime system, an expression that must
  11.  *        evaluate as true for the feature to be included in &features
  12.  *    symname    predefined name in the preprocessor; "" if none
  13.  *    kwval    value produced by the &features keyword; 0 if none
  14.  *
  15.  * The translator and compiler modify this list of predefined symbols
  16.  * through calls to ppdef().
  17.  */
  18.  
  19.    Feature(1, "_V9", 0)            /* Version 9 (unconditional) */
  20.  
  21. #if AMIGA
  22.    Feature(1, "_AMIGA", "Amiga")
  23. #endif                    /* AMIGA */
  24.  
  25. #if ARM
  26.    Feature(1, "_ACORN", "Acorn Archimedes")
  27. #endif                    /* ARM */
  28.  
  29. #if MACINTOSH
  30.    Feature(1, "_MACINTOSH", "Macintosh")
  31. #endif                    /* MACINTOSH */
  32.  
  33. #if MSDOS
  34. #if INTEL_386 || HIGHC_386 || WATCOM || ZTC_386 || BORLAND_386 || SCCX_MX
  35.    Feature(1, "_MSDOS_386", "MS-DOS/386")
  36. #else                    /* INTEL_386 || HIGHC_386 ... */
  37. #if NT
  38.    Feature(1, "_MS_WINDOWS_NT", "MS Windows NT")
  39. #else                    /* NT */
  40. #if BORLAND_286
  41.    Feature(1, "_MSDOS_286", "MS-DOS/286")
  42. #else                    /* BORLAND_286 */
  43.    Feature(1, "_MSDOS", "MS-DOS")
  44. #endif                    /* BORLAND_286 */
  45. #endif                    /* NT */
  46. #endif                    /* INTEL_386 || HIGHC_386 ... */
  47. #endif                    /* MSDOS */
  48.  
  49. #if OS2
  50.    Feature(1, "_OS2", "OS/2")
  51. #endif                    /* OS2 */
  52.  
  53. #if PORT
  54.    Feature(1, "_PORT", "PORT")
  55. #endif                    /* PORT */
  56.  
  57. #if UNIX
  58.    Feature(1, "_UNIX", "UNIX")
  59. #endif                    /* UNIX */
  60.  
  61. #if VMS
  62.    Feature(1, "_VMS", "VMS")
  63. #endif                    /* VMS */
  64.  
  65.    Feature(1, "_ASCII", "ASCII")
  66.  
  67. #ifdef Coexpr
  68.    Feature(1, "_CO_EXPRESSIONS", "co-expressions")
  69. #endif                    /* Coexpr */
  70.  
  71. #ifdef LoadFunc
  72.    Feature(1, "_DYNAMIC_LOADING", "dynamic loading")
  73. #endif                    /* LoadFunc */
  74.  
  75.    Feature(1, "", "environment variables")
  76.  
  77. #ifdef EventMon
  78.    Feature(1, "_EVENT_MONITOR", "event monitoring")
  79. #endif                    /* EventMon */
  80.  
  81. #ifdef ExternalFunctions
  82.    Feature(1, "_EXTERNAL_FUNCTIONS", "external functions")
  83. #endif                    /* ExternalFunctions */
  84.  
  85. #ifdef KeyboardFncs
  86.    Feature(1, "_KEYBOARD_FUNCTIONS", "keyboard functions")
  87. #endif                    /* KeyboardFncs */
  88.  
  89. #ifdef LargeInts
  90.    Feature(largeints, "_LARGE_INTEGERS", "large integers")
  91. #endif                    /* LargeInts */
  92.  
  93. #ifdef MultiThread
  94.    Feature(1, "_MULTITASKING", "multiple programs")
  95. #endif                    /* MultiThread */
  96.  
  97. #ifdef Pipes
  98.    Feature(1, "_PIPES", "pipes")
  99. #endif                    /* Pipes */
  100.  
  101.    Feature(1, "_SYSTEM_FUNCTION", "system function")
  102.  
  103. #ifdef Graphics
  104.    Feature(1, "_GRAPHICS", "graphics")
  105. #endif                    /* Graphics */
  106.  
  107. #ifdef XWindows
  108.    Feature(1, "_X_WINDOW_SYSTEM", "X Windows")
  109. #endif                    /* XWindows */
  110.  
  111. #ifdef MSWindows
  112.    Feature(1, "_MS_WINDOWS", "MS Windows")
  113. #if NT
  114.    Feature(1, "_WIN32", "Win32")
  115. #else                    /* NT */
  116.    Feature(1, "_WIN16", "Win16")
  117. #endif                    /* NT */
  118. #endif                    /* MSWindows */
  119.  
  120. #ifdef PresentationManager
  121.    Feature(1, "_PRESENTATION_MGR", "Presentation Manager")
  122. #endif                    /* PresentationManager */
  123.  
  124. #ifdef ArmFncs
  125.    Feature(1, "_ARM_FUNCTIONS", "Archimedes extensions")
  126. #endif                    /* ArmFncs */
  127.  
  128. #ifdef DosFncs
  129.    Feature(1, "_DOS_FUNCTIONS", "MS-DOS extensions")
  130. #endif                    /* DosFncs */
  131.