home *** CD-ROM | disk | FTP | other *** search
/ Computer Club Elmshorn Atari PD / CCE_PD.iso / pc / 0400 / CCE_0423.ZIP / CCE_0423.PD / INCLUD83.ZOO / compiler.h < prev    next >
C/C++ Source or Header  |  1992-09-27  |  3KB  |  123 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 SOZOBON
  12. #define __SOZOBON__
  13. #endif
  14.  
  15. /* general library stuff */
  16. /* __SIZE_TYPEDEF__:     the type returned by sizeof() */
  17. /* __PTRDIFF_TYPEDEF__: the type of the difference of two pointers */
  18. /* __WCHAR_TYPEDEF__:     wide character type (i.e. type of L'x') */
  19. /* __EXITING: the type of a function that exits */
  20. /* symbols to report about compiler features */
  21. /* #define __NEED_VOID__    compiler doesn't have a void type */
  22. /* #define __MSHORT__        compiler uses 16 bit integers */
  23. /* (note that gcc and C68 define this automatically when appropriate) */
  24.  
  25. #ifdef __GNUC__
  26. #ifndef sun
  27. #  define __SIZE_TYPEDEF__ unsigned long
  28. #  define __PTRDIFF_TYPEDEF__ long
  29. #  define __WCHAR_TYPEDEF__ int
  30. #else
  31. #  /* sun always seems to have an agenda of their own */
  32. #  include <sys/stdtypes.h>
  33. #  define __SIZE_TYPEDEF__ int          /* can you believe this!! */
  34. #  define __PTRDIFF_TYPEDEF__ int       /* or this!! */
  35. #  define __WCHAR_TYPEDEF__ unsigned short /* this seems reasonable */
  36. #  define _SIZE_T __SIZE_TYPEDEF__
  37. #  define _WCHAR_T __WCHAR_TYPEDEF__
  38. #endif
  39. #define __EXITING volatile void
  40. #ifndef __NO_INLINE__
  41. # define __GNUC_INLINE__
  42. #endif
  43. #endif
  44.  
  45. #ifdef __C68__
  46. #define __SIZE_TYPEDEF__ unsigned long
  47. #define __PTRDIFF_TYPEDEF__ long
  48. #define __WCHAR_TYPEDEF__ char
  49. #define __EXITING void
  50. #endif
  51.  
  52. #ifdef __SOZOBON__
  53. /*
  54.  * Temporary hacks to overcome 1.33i's short symbol names. Hopefully future
  55.  * versions will allow the extended Sozobon symbol format.
  56.  */
  57. #define _mallocChunkSize _sc_mCS
  58. #define _malloczero _sc_mz
  59. #define _console_read_byte _sc_crb
  60. #define _console_write_byte _sc_cwb
  61.  
  62. /* Doesn't know (void *) is special (but can handle it); this works better. */
  63. #define __NULL (0L)
  64.  
  65. #ifdef OLD_SOZOBON
  66. #define void char
  67. #endif
  68.  
  69. #define __SIZE_TYPEDEF__ unsigned int
  70. #define __PTRDIFF_TYPEDEF__ long
  71. #define __WCHAR_TYPEDEF__ char
  72. #define __EXITING void
  73. #define __MSHORT__
  74. #endif
  75.  
  76. /* these are common to all compilers on the ST, I think */
  77. #define __VA_LIST__ char *
  78.  
  79. #ifndef __NULL
  80. #  ifdef __MSHORT__
  81. #    define __NULL ((void *)0)
  82. #  else
  83.      /* avoid complaints about misuse of NULL :-) */
  84. #    define __NULL (0)
  85. #  endif
  86. #endif
  87.  
  88. #ifdef __cplusplus
  89. # define __EXTERN
  90. # define __PROTO(x) x
  91. #else
  92. # ifdef __STDC__
  93. #  ifndef __NO_PROTO__
  94. #    define __PROTO(x) x
  95. #  endif
  96. #  define __EXTERN
  97. # else
  98. #  define __EXTERN extern
  99. /*
  100.  * fudge non-ANSI compilers to be like ANSI
  101.  */
  102. #  define const
  103. #  define volatile
  104.  
  105. #  ifdef __NEED_VOID__
  106. typedef char void;    /* so that (void *) is the same as (char *) */
  107.     /* also lets us know that foo() {...} and void foo() {...} are
  108.        different */
  109. #  endif
  110. # endif /* __STDC__ */
  111. #endif /* __cplusplus */
  112.  
  113. #ifndef __PROTO
  114. #define __PROTO(x) ()
  115. #endif
  116.  
  117. /* macros for POSIX support */
  118. #define _UID_T unsigned short
  119. #define _GID_T unsigned short
  120. #define _PID_T int
  121.  
  122. #endif /* _COMPILER_H */
  123.