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

  1. /****************************************************************************
  2.     $Id: watcom.h 501.0 1995/03/07 12:26:48 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.     Watcom-specific declarations of compilation and keyword-like names.
  10.  
  11.     $Log: watcom.h $
  12.     Revision 501.0  1995/03/07 12:26:48  RON
  13.     Updated for TLX 5.01
  14.     Revision 1.7  1995/01/31 16:32:20  RON
  15.     Update for release 012
  16.     Added partial support for SunPro C++ compiler
  17.     Revision 1.6  1994/11/16  15:24:12  ron
  18.     Added _CCNAME, _CCVER, and _MODEL definitions
  19.  
  20.     Revision 1.5  1994/10/13  11:56:04  ron
  21.     Small formatting changes
  22.  
  23.     Revision 1.4  1994/10/06  17:50:13  ron
  24.     Added _NOMUTABLE
  25.  
  26.     Revision 1.3  1994/10/05  18:27:19  ron
  27.     Added #defines for Watcom 32-bit platforms
  28.  
  29.     Revision 1.2  1994/09/08  15:55:37  ron
  30.     Moved O/S-specific macros into this file
  31.  
  32.     Revision 1.1  1994/08/16  18:06:57  ron
  33.     Initial revision
  34.  
  35. ****************************************************************************/
  36.  
  37. #ifndef _TLX_WATCOM_H
  38. #define _TLX_WATCOM_H
  39.  
  40. #ifndef __WATCOMC__
  41. #error This file is for Watcom compilations only
  42. #endif
  43.  
  44. #define _CCNAME        Watcom C++
  45. #define _CCVER        __WATCOMC__
  46.  
  47. #ifdef _DLL
  48.     #define _IN_DLL     1
  49. #endif
  50.  
  51. #define _NORTTI        1
  52. #define _NOBOOL        1
  53. #define _NOMUTABLE    1
  54.  
  55. #ifdef __FLAT__                 /* Non-segmented platforms */
  56.  
  57.     #define _Near
  58.     #define _Far
  59.     #define _Huge
  60.     #define _MODEL        Flat
  61.  
  62.     #define _ExportClass        __export
  63.     #define _ExportFunc         __export
  64.     #define _ExportData         __export
  65.  
  66.     #define _ImportClass
  67.     #define _ImportFunc
  68.     #define _ImportData
  69.  
  70.   #if defined(__OS2__)
  71.     #define OS_OS2    1
  72.   #elif defined(__NT__)
  73.     #define OS_WIN32    1
  74.     #define OS_WINXXX    1
  75.   #else
  76.     #error Unknown FLAT Watcom C++ platform
  77.   #endif
  78.  
  79.     #define _CPU_I86    1
  80.     #define _LENDIAN    1
  81.     #define _NULL_IS_0  1
  82.     #define _MEM_FLAT   1
  83.  
  84. #else                           /* Segmented memory architectures */
  85.  
  86.     #define _Near               __near
  87.     #define _Far                __far
  88.     #define _Huge               __huge
  89.  
  90.     #define _ExportClass        __export
  91.     #define _ExportFunc         __export __far
  92.     #define _ExportData         __export __far
  93.  
  94.     #define _ImportClass        __huge
  95.     #define _ImportFunc         __far
  96.     #define _ImportData         __far
  97.  
  98.     #if defined(M_I86TM) || defined(M_I86SM)
  99.         #define _CODE_NEAR      1
  100.         #define _DATA_NEAR      1
  101.         #define _MODEL        Tiny/Small
  102.     #elif defined(M_I86CM)
  103.         #define _CODE_NEAR      1
  104.         #define _DATA_FAR       1
  105.         #define _MODEL        Compact
  106.     #elif defined(M_I86MM)
  107.         #define _DATA_NEAR      1
  108.         #define _CODE_FAR       1
  109.         #define _MODEL        Medium
  110.     #elif defined(M_I86LM) || defined(M_I86HM)
  111.         #define _CODE_FAR       1
  112.         #define _DATA_FAR       1
  113.         #define _MODEL        Large/Huge
  114.     #else
  115.         #error Unknown Watcom memory model
  116.     #endif
  117.  
  118.     #define _CPU_I86    1
  119.     #define _LENDIAN    1
  120.     #define _NULL_IS_0  1
  121.     #define _MEM_SEG    1
  122.  
  123.     #if defined(__WINDOWS__)
  124.         #define OS_WIN16    1
  125.         #define OS_WINXXX   1
  126.     #else
  127.         #define OS_DOS      1
  128.         #define OS_DOSXXX   1
  129.     #endif
  130. #endif
  131.  
  132. #endif  /* _TLX_WATCOM_H */
  133.