home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / zip / gnu / includ87.lzh / INCLUD87 / COMPILER.H < prev    next >
C/C++ Source or Header  |  1993-07-30  |  4KB  |  177 lines

  1. /* compiler specific defines */
  2. /* this file is guaranteed to be included exactly once if you include
  3.    anything at all. all site-dependent or compiler-dependent stuff
  4.    should go here!!!
  5.  */
  6.  
  7. #ifndef _COMPILER_H
  8. #define _COMPILER_H
  9.  
  10. /* symbols to identify the type of compiler */
  11. #ifdef __SOZOBONC__
  12. #define __SOZOBON__ __SOZOBONC__
  13. #else
  14. # ifdef SOZOBON
  15. # define __SOZOBON__ SOZOBON
  16. # endif
  17. #endif
  18.  
  19. #ifdef LATTICE
  20. #define __LATTICE__
  21. #endif
  22.  
  23. /* general library stuff */
  24. /* __SIZE_TYPEDEF__:     the type returned by sizeof() */
  25. /* __PTRDIFF_TYPEDEF__: the type of the difference of two pointers */
  26. /* __WCHAR_TYPEDEF__:     wide character type (i.e. type of L'x') */
  27. /* __EXITING:           the type of a function that exits */
  28. /* __CDECL:             function must get parameters on stack */
  29.         /* if !__CDECL, passing in registers is OK */
  30.  
  31. /* symbols to report about compiler features */
  32. /* #define __NEED_VOID__    compiler doesn't have a void type */
  33. /* #define __MSHORT__        compiler uses 16 bit integers */
  34. /* (note that gcc and C68 define this automatically when appropriate) */
  35.  
  36. #ifdef __GNUC__
  37. #ifndef sun
  38. #  define __SIZE_TYPEDEF__ unsigned long
  39. #  define __PTRDIFF_TYPEDEF__ long
  40. #  define __WCHAR_TYPEDEF__ int
  41. #else
  42.    /* sun always seems to have an agenda of their own */
  43. #  include <sys/stdtypes.h>
  44. #  define __SIZE_TYPEDEF__ int          /* can you believe this!! */
  45. #  define __PTRDIFF_TYPEDEF__ int       /* or this!! */
  46. #  define __WCHAR_TYPEDEF__ unsigned short /* this seems reasonable */
  47. #  define _SIZE_T __SIZE_TYPEDEF__
  48. #  define _WCHAR_T __WCHAR_TYPEDEF__
  49. #endif
  50. #define __EXITING volatile void
  51. #ifndef __NO_INLINE__
  52. # define __GNUC_INLINE__
  53. #endif
  54. #endif
  55.  
  56. #ifdef __LATTICE__
  57. #define __SIZE_TYPEDEF__ unsigned long
  58. #define __PTRDIFF_TYPEDEF__ long
  59. #define __WCHAR_TYPEDEF__ char
  60. #define __EXITING void
  61. #ifdef _SHORTINT
  62. # define __MSHORT__
  63. #endif
  64. #endif
  65.  
  66. #ifdef __C68__
  67. #define __SIZE_TYPEDEF__ unsigned long
  68. #define __PTRDIFF_TYPEDEF__ long
  69. #define __WCHAR_TYPEDEF__ char
  70. #define __EXITING void
  71. #endif
  72.  
  73. #ifdef __SOZOBON__
  74. /*
  75.  * Temporary hacks to overcome 1.33i's short symbol names. Hopefully future
  76.  * versions will allow the extended Sozobon symbol format.
  77.  */
  78. #define _mallocChunkSize _sc_mCS
  79. #define _malloczero _sc_mz
  80. #define _console_read_byte _sc_crb
  81. #define _console_write_byte _sc_cwb
  82.  
  83. /* Doesn't know (void *) is special (but can handle it); this works better. */
  84. #define __NULL (0L)
  85. #ifdef OLD_SOZOBON
  86. #define void char
  87. #endif
  88. #define __SIZE_TYPEDEF__ unsigned int
  89. #define __PTRDIFF_TYPEDEF__ long
  90. #define __WCHAR_TYPEDEF__ char
  91. #define __EXITING void
  92. #define __MSHORT__
  93. #endif /* __SOZOBON__ */
  94.  
  95. #ifdef __TURBOC__
  96. #ifndef __STDC__
  97. #  define __STDC__ 1
  98. #endif
  99. #define __SIZE_TYPEDEF__ unsigned long
  100. #define __PTRDIFF_TYPEDEF__ long
  101. #define __WCHAR_TYPEDEF__ char
  102. #define __EXITING void
  103. #define __MSHORT__
  104. #define __VA_LIST__ void *
  105. #define __CDECL cdecl
  106. /* As long as we haven't ported gemlib to Pure C and hence have to use
  107.  * Turbo's/Pure's GEM library, define the next:
  108.  */
  109. #define __TCC_GEMLIB__
  110. #endif /* __TURBOC__ */
  111.  
  112. #if defined(__hpux) && (!defined(__GNUC__))
  113. #define __SIZE_TYPEDEF__ unsigned int
  114. #define __PTRDIFF_TYPEDEF__ int
  115. #define __WCHAR_TYPEDEF__ unsigned int
  116. #define __EXITING void
  117. #endif
  118.  
  119. /* some default declarations */
  120. /* if your compiler needs something
  121.  * different, define it above
  122.  */
  123. #ifndef __VA_LIST__
  124. #define __VA_LIST__ char *
  125. #endif
  126.  
  127. #ifndef __CDECL
  128. #define __CDECL
  129. #endif
  130.  
  131. #ifndef __NULL
  132. #  ifdef __MSHORT__
  133. #    define __NULL ((void *)0)
  134. #  else
  135.      /* avoid complaints about misuse of NULL :-) */
  136. #    define __NULL (0)
  137. #  endif
  138. #endif
  139.  
  140. #ifdef __cplusplus
  141. # define __EXTERN
  142. # define __PROTO(x) x
  143. #else
  144. # ifdef __STDC__
  145. #  ifndef __NO_PROTO__
  146. #    define __PROTO(x) x
  147. #  endif
  148. #  define __EXTERN
  149. # else
  150. #  define __EXTERN extern
  151. /*
  152.  * fudge non-ANSI compilers to be like ANSI
  153.  */
  154. #  define const
  155. #  define volatile
  156.  
  157. #  ifdef __NEED_VOID__
  158. typedef char void;    /* so that (void *) is the same as (char *) */
  159.     /* also lets us know that foo() {...} and void foo() {...} are
  160.        different */
  161. #  endif
  162. # endif /* __STDC__ */
  163. #endif /* __cplusplus */
  164.  
  165. #ifndef __PROTO
  166. #define __PROTO(x) ()
  167. #endif
  168.  
  169. /* macros for POSIX support */
  170. #ifndef __hpux
  171. #define _UID_T unsigned short
  172. #define _GID_T unsigned short
  173. #define _PID_T int
  174. #endif
  175.  
  176. #endif /* _COMPILER_H */
  177.