home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / tlx501.zip / SUNPRO.H < prev    next >
C/C++ Source or Header  |  1996-01-05  |  4KB  |  119 lines

  1. /****************************************************************************
  2.     $Id: sunpro.h 501.0 1995/03/07 12:26:46 RON Exp $
  3.  
  4.     Copyright (c) 1991-95 Tarma Software Research. All rights reserved.
  5.  
  6.     Project:    Tarma Library for C++ V5.0
  7.     Author:     Ron van der Wal
  8.  
  9.     Header for SunPro C++ compiler description. Works for Solaris 2.x, both
  10.     Intel and Sparc versions.
  11.  
  12.     $Log: sunpro.h $
  13.     Revision 501.0  1995/03/07 12:26:46  RON
  14.     Updated for TLX 5.01
  15.     Revision 1.4  1995/02/28 18:11:08  RON
  16.     Update for release 012
  17.     Added partial support for SunPro C++ compiler
  18.     Revision 1.3  1995/02/28 18:10:54  RON
  19.     Back to normal
  20.     Revision 1.2  1995/02/28 18:10:06  RON
  21.     Test of Log keyword
  22.     Revision 1.1  1995/02/28 15:29:10  RON
  23.     Initial revision
  24. ****************************************************************************/
  25.  
  26. #ifndef _TLX_SUNPRO_H
  27. #define _TLX_SUNPRO_H
  28.  
  29. /*---------------------------------------------------------------------------
  30.     Instructions
  31.     ------------
  32.  
  33.     This file contains sections for all areas that are compiler-specific.
  34. ---------------------------------------------------------------------------*/
  35.  
  36. #define _CCNAME        SunPro C++ compiler
  37. #define _CCVER        __SUNPRO_CC
  38.  
  39. // If the compiler supports compilation of DLLs (or shared libraries in
  40. // UNIX parlance), modify the following construct such that _IN_DLL is
  41. // #defined to 1 if the compiler is set up for DLL compilation.
  42.  
  43. //#ifdef _DLL
  44. //#define _IN_DLL         1
  45. //#endif
  46.  
  47. // If there are special keywords used for classes in the compiler's runtime
  48. // library, #define the following:
  49.  
  50. #define _RTLCLASS        // Used as 'class _RTLCLASS iostream;'
  51.  
  52. // The following set of preprocessor names is used to allow transition to
  53. // the latest ANSI/ISO C++ standards. If your compiler does *not* support
  54. // a particular feature, #define the appropriate name to 1.
  55. //
  56. // Note: it is assumed that the compiler supports at least templates and
  57. // multiple inheritance, i.e. the cfront 2.1 level.
  58.  
  59. #define _NORTTI        1    // Runtime type information supported?
  60. //#define _NOEXCEPT    1    // Exception handling supported?
  61. #define _NOBOOL        1    // 'bool' data type supported?
  62. #define _NOMUTABLE    1    // 'mutable' modifier supported?
  63.  
  64. // The largest set of options concerns memory models and related keywords.
  65. // The first distinction is between flat and segmented memory architectures.
  66. // #define *one* of the following:
  67.  
  68. //#define _MEM_SEG    1    // If a segmented architecture
  69. #define _MEM_FLAT    1    // If a non-segmented architecture
  70.  
  71. // To cope with segmented platforms, #define the following pseudo-keywords
  72. // as appropriate. Also, specify the kind of default data and code pointers
  73. // for the model.
  74. //
  75. // The directives for imported and exported data, functions, and classes
  76. // are also usually architecture-related, so provide them as well.
  77.  
  78. #define _Near
  79. #define _Far
  80. #define _Huge
  81.  
  82. #define _MODEL        Flat    // Describes the model to TLX (only)
  83.  
  84. #define _ExportClass
  85. #define _ExportFunc
  86. #define _ExportData
  87.  
  88. #define _ImportClass
  89. #define _ImportFunc
  90. #define _ImportData
  91.  
  92. // Describe the target platform by defining one or more of the following:
  93.  
  94. #ifdef __SVR4
  95. #define OS_SV4          1    // Unix SVR4.2 platform
  96. #endif
  97. #ifdef __unix
  98. #define OS_UNIX          1    // Defined on all Unix platforms
  99. #endif
  100.  
  101. // Target CPU (#define *one* of the following)
  102. // Describe endianity (there are no provisions for mixed-endianity)
  103. // by #defining *one* of the following:
  104.  
  105. #ifdef __i386
  106. #define _CPU_I86        1    // On Intel i86 platforms
  107. #define _LENDIAN        1    // Little endian (LSB at lowest address)
  108. #endif
  109. #ifdef __sparc
  110. #define _CPU_SPARC       1    // On Sparc platforms
  111. #define _BENDIAN        1    // Big endian (LSB at highest address)
  112. #endif
  113.  
  114. // If a NULL pointer is represented as an all-0 bit pattern, define this:
  115.  
  116. #define _NULL_IS_0      1
  117.  
  118. #endif  // _TLX_SUNPRO_H
  119.