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

  1. /****************************************************************************
  2.     $Id: symantec.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.     Symantec-specific declarations of compilation and keyword-like names.
  10.  
  11.     $Log: symantec.h $
  12.     Revision 501.0  1995/03/07 12:26:46  RON
  13.     Updated for TLX 5.01
  14.     Revision 1.6  1995/01/31 16:32:14  RON
  15.     Update for release 012
  16.     Added partial support for SunPro C++ compiler
  17.     Revision 1.5  1995/01/18  18:55:31  ron
  18.     Added support for _GUI preprocessor name
  19.  
  20.     Revision 1.4  1994/11/16  15:23:27  ron
  21.     Added _CCNAME, _CCVER, and _MODEL definitions
  22.  
  23.     Revision 1.3  1994/10/06  17:49:51  ron
  24.     Added _NOMUTABLE
  25.  
  26.     Revision 1.2  1994/09/08  15:54:23  ron
  27.     Moved O/S-specific macros into this file
  28.  
  29.     Revision 1.1  1994/08/16  18:06:53  ron
  30.     Initial revision
  31.  
  32. ****************************************************************************/
  33.  
  34. #ifndef _TLX_SYMANTEC_H
  35. #define _TLX_SYMANTEC_H
  36.  
  37. #ifndef __SC__
  38. #error This file is for Symantec compilations only
  39. #endif
  40.  
  41. #define _CCNAME        Symantec C++
  42. #define _CCVER        __SC__
  43.  
  44. #ifdef DLL
  45.     #define _IN_DLL    1
  46. #endif
  47.  
  48. #if __SC__ < 0x700
  49.     #define _NORTTI    1
  50.     #define _NOEXCEPT    1
  51. #endif
  52. #define _NOBOOL        1
  53. #define _NOMUTABLE    1
  54.  
  55. #if defined(THINK_C)
  56.  
  57.     // Make sure that we use 4-byte integers under THINK C for compatibility
  58.     // with Symantec C++. We could do that silently with:
  59.     //
  60.     //        #pragma option(int_4)
  61.     //
  62.     // but this might be missed by casual users.
  63.  
  64.     #if !__option(int_4)
  65.     #error THINK C users: compile your code with 4-byte integers
  66.     #endif
  67.  
  68. #endif
  69.  
  70. #ifdef OS2            /* Non-segmented platforms */
  71.  
  72.     #define _Near
  73.     #define _Far
  74.     #define _Huge
  75.     #define _MODEL        Flat
  76.  
  77.     #define _ExportClass    _export
  78.     #define _ExportFunc        _export
  79.     #define _ExportData        _export
  80.  
  81.     #define _ImportClass
  82.     #define _ImportFunc
  83.     #define _ImportData
  84.  
  85.     #define OS_OS2      1
  86.     #define _CPU_I86    1
  87.     #define _LENDIAN    1
  88.     #define _NULL_IS_0  1
  89.     #define _MEM_FLAT   1
  90.  
  91. #elif defined(macintosh)
  92.  
  93.     #define _GUI    1
  94.  
  95.     #define _Near
  96.     #define _Far
  97.     #define _Huge
  98.     #define _MODEL        Flat
  99.  
  100.     #define _ExportClass
  101.     #define _ExportFunc
  102.     #define _ExportData
  103.  
  104.     #define _ImportClass
  105.     #define _ImportFunc
  106.     #define _ImportData
  107.  
  108.     #define OS_MAC      1
  109.     #define _CPU_M68    1               // Might be PowerPC!
  110.     #define _BENDIAN    1
  111.     #define _NULL_IS_0  1
  112.     #define _MEM_FLAT   1
  113.  
  114. #elif defined(_WIN32)
  115.  
  116.     #define _Near
  117.     #define _Far
  118.     #define _Huge
  119.     #define _MODEL        Flat
  120.  
  121.     #define _ExportClass    __export
  122.     #define _ExportFunc        __export
  123.     #define _ExportData        __export
  124.  
  125.     #define _ImportClass    __import
  126.     #define _ImportFunc         __import
  127.     #define _ImportData        __import
  128.  
  129.     #define OS_WIN32    1
  130.     #define OS_WINXXX   1
  131.     #define _CPU_I86    1    // Could be different processor
  132.     #define _LENDIAN    1
  133.     #define _NULL_IS_0  1
  134.     #define _MEM_FLAT   1
  135.  
  136. #else                /* Segmented memory architectures */
  137.  
  138.     #define _Near        _near
  139.     #define _Far        _far
  140.     #define _Huge        _huge
  141.  
  142.     #define _ExportClass    _export
  143.     #define _ExportFunc        _export _far
  144.     #define _ExportData        _export _far
  145.  
  146.     #define _ImportClass    _huge
  147.     #define _ImportFunc        _far
  148.     #define _ImportData        _far
  149.  
  150.     #if __TINY__ || __SMALL__
  151.     #define _CODE_NEAR    1
  152.     #define _DATA_NEAR    1
  153.         #define _MODEL        Tiny/Small
  154.     #elif __COMPACT__
  155.     #define _CODE_NEAR    1
  156.     #define _DATA_FAR    1
  157.         #define _MODEL        Compact
  158.     #elif __MEDIUM__
  159.     #define _CODE_FAR    1
  160.     #define _DATA_NEAR    1
  161.         #define _MODEL        Medium
  162.     #elif __LARGE__ || __HUGE__
  163.     #define _CODE_FAR    1
  164.     #define _DATA_FAR    1
  165.         #define _MODEL        Large/Huge
  166.     #endif
  167.  
  168.     #define _CPU_I86    1
  169.     #define _LENDIAN    1
  170.     #define _NULL_IS_0  1
  171.     #define _MEM_SEG    1
  172.  
  173.     #if defined(__WINDOWS__)
  174.         #define OS_WIN16    1
  175.         #define OS_WINXXX   1
  176.     #else
  177.         #define OS_DOS      1
  178.         #define OS_DOSXXX   1
  179.     #endif
  180. #endif
  181.  
  182. #endif    /* _TLX_SYMANTEC_H */
  183.