mconfig.h
上传用户:xiejiait
上传日期:2007-01-06
资源大小:881k
文件大小:6k
源码类别:

SCSI/ASPI

开发平台:

MultiPlatform

  1. /* @(#)mconfig.h 1.30 00/01/28 Copyright 1995 J. Schilling */
  2. /*
  3.  * definitions for machine configuration
  4.  *
  5.  * Copyright (c) 1995 J. Schilling
  6.  *
  7.  * This file must be included before any other file.
  8.  * Use only cpp instructions.
  9.  *
  10.  * NOTE: SING: (Schily Is Not Gnu)
  11.  */
  12. /*
  13.  * This program is free software; you can redistribute it and/or modify
  14.  * it under the terms of the GNU General Public License as published by
  15.  * the Free Software Foundation; either version 2, or (at your option)
  16.  * any later version.
  17.  *
  18.  * This program is distributed in the hope that it will be useful,
  19.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  20.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  21.  * GNU General Public License for more details.
  22.  *
  23.  * You should have received a copy of the GNU General Public License
  24.  * along with this program; see the file COPYING.  If not, write to
  25.  * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  26.  */
  27. #ifndef _MCONFIG_H
  28. #define _MCONFIG_H
  29. /*
  30.  * This hack that is needed as long as VMS has no POSIX shell.
  31.  */
  32. #ifdef VMS
  33. # define USE_STATIC_CONF
  34. #endif
  35. #ifdef USE_STATIC_CONF
  36. #include <xmconfig.h> /* This is the current static autoconf stuff */
  37. #else
  38. #include <xconfig.h> /* This is the current dynamic autoconf stuff */
  39. #endif
  40. #ifdef __cplusplus
  41. extern "C" {
  42. #endif
  43. /*
  44.  * The NetBSD people want to bother us.
  45.  * They removed the definition for 'unix' and are bleating for every test
  46.  * for #if defined(unix). So we need to check for NetBSD early.
  47.  */
  48. #ifndef IS_UNIX
  49. # if defined(__NetBSD__)
  50. # define IS_UNIX
  51. # endif
  52. #endif
  53. #ifndef IS_UNIX
  54. # if defined(unix) || defined(__unix) || defined(__unix__)
  55. # define IS_UNIX
  56. # endif
  57. #endif
  58. #ifdef __MSDOS__
  59. # define IS_MSDOS
  60. #endif
  61. #if defined(tos) || defined(__tos)
  62. # define IS_TOS
  63. #endif
  64. #ifdef THINK_C
  65. # define IS_MAC
  66. #endif
  67. #if defined(sun) || defined(__sun) || defined(__sun__)
  68. # define IS_SUN
  69. #endif
  70. #if defined(__CYGWIN32__)
  71. #       define IS_GCC_WIN32
  72. #endif
  73. /*--------------------------------------------------------------------------*/
  74. /*
  75.  * Some magic that cannot (yet) be figured out with autoconf.
  76.  */
  77. #ifdef sparc
  78. # ifndef HAVE_LDSTUB
  79. # define HAVE_LDSTUB
  80. # endif
  81. # ifndef HAVE_SCANSTACK
  82. # define HAVE_SCANSTACK
  83. # endif
  84. #endif
  85. #if defined(__i386_) || defined(i386)
  86. # ifndef HAVE_XCHG
  87. # define HAVE_XCHG
  88. # endif
  89. # ifndef HAVE_SCANSTACK
  90. # define HAVE_SCANSTACK
  91. # endif
  92. #endif
  93. #if defined(SOL2) || defined(SOL2) || defined(S5R4) || defined(__S5R4) 
  94. || defined(SVR4)
  95. # ifndef __SVR4
  96. # define __SVR4
  97. # endif
  98. #endif
  99. #ifdef __SVR4
  100. # ifndef SVR4
  101. # define SVR4
  102. # endif
  103. #endif
  104. /*
  105.  * SunOS 4.x / SunOS 5.x
  106.  */
  107. #if defined(IS_SUN)
  108. # define HAVE_GETAV0
  109. #endif
  110. /*
  111.  * AIX
  112.  */
  113. #if defined(_IBMR2) || defined(_AIX)
  114. # ifndef IS_UNIX
  115. # define IS_UNIX /* ??? really ??? */
  116. # endif
  117. #endif
  118. /*
  119.  * QNX
  120.  */
  121. #if defined(__QNX__)
  122. # ifndef IS_UNIX
  123. # define IS_UNIX
  124. # endif
  125. #endif
  126. /*
  127.  * Silicon Graphics (must be before SVR4)
  128.  */
  129. #if defined(sgi) || defined(__sgi)
  130. # define __NOT_SVR4__ /* Not a real SVR4 implementation */
  131. #endif
  132. /*
  133.  * Data General
  134.  */
  135. #if defined(__DGUX__)
  136. #ifdef XXXXXXX
  137. # undef HAVE_MTGET_DSREG
  138. # undef HAVE_MTGET_RESID
  139. # undef HAVE_MTGET_FILENO
  140. # undef HAVE_MTGET_BLKNO
  141. #endif
  142. # define mt_type mt_model
  143. # define mt_dsreg mt_status1
  144. # define mt_erreg mt_status2
  145. /*
  146.  * DGUX hides its flock as dg_flock.
  147.  */
  148. # define HAVE_FLOCK
  149. # define flock dg_flock
  150. /*
  151.  * Use the BSD style wait on DGUX to get the resource usages of child
  152.  * processes.
  153.  */
  154. # define _BSD_WAIT_FLAVOR
  155. #endif
  156. /*
  157.  * Apple Rhapsody
  158.  */
  159. #if defined(__NeXT__) && defined(__TARGET_OSNAME) && __TARGET_OSNAME == rhapsody
  160. # define HAVE_OSDEF /* prevent later definitions to overwrite current */
  161. #endif
  162. /*
  163.  * NextStep
  164.  */
  165. #if defined(__NeXT__) && !defined(HAVE_OSDEF)
  166. #define NO_PRINT_OVR
  167. #undef HAVE_USG_STDIO /*
  168.  *  NeXT Step 3.x uses __flsbuf(unsigned char , FILE *)
  169.  * instead of __flsbuf(int, FILE *)
  170.  */
  171. #endif
  172. /*
  173.  * NextStep 3.x has a broken linker that does not allow us to override
  174.  * these functions.
  175.  */
  176. #ifndef __OPRINTF__
  177. #ifdef NO_PRINT_OVR
  178. # define printf Xprintf
  179. # define fprintf Xfprintf
  180. # define sprintf Xsprintf
  181. #endif
  182. #endif /* __OPRINTF__ */
  183. /*--------------------------------------------------------------------------*/
  184. /*
  185.  * If there is no flock defined by the system, use emulation
  186.  * through fcntl record locking.
  187.  */
  188. #ifndef HAVE_FLOCK
  189. #define LOCK_SH         1       /* shared lock */
  190. #define LOCK_EX         2       /* exclusive lock */
  191. #define LOCK_NB         4       /* don't block when locking */
  192. #define LOCK_UN         8       /* unlock */
  193. #endif
  194. #include <prototyp.h>
  195. /*
  196.  * gcc 2.x generally implements the long long type.
  197.  */
  198. #ifdef __GNUC__
  199. # if __GNUC__ > 1
  200. # ifndef HAVE_LONGLONG
  201. # define HAVE_LONGLONG
  202. # endif
  203. # endif
  204. #endif
  205. #ifdef __CHAR_UNSIGNED__ /* GNU GCC define     (dynamic) */
  206. #ifndef CHAR_IS_UNSIGNED
  207. #define CHAR_IS_UNSIGNED /* Sing Schily define (static) */
  208. #endif
  209. #endif
  210. /*
  211.  * Convert to GNU name
  212.  */
  213. #ifdef HAVE_STDC_HEADERS
  214. # ifndef STDC_HEADERS
  215. # define STDC_HEADERS
  216. # endif
  217. #endif
  218. /*
  219.  * Convert to SCHILY name
  220.  */
  221. #ifdef STDC_HEADERS
  222. # ifndef HAVE_STDC_HEADERS
  223. # define HAVE_STDC_HEADERS
  224. # endif
  225. #endif
  226. #ifdef IS_UNIX
  227. # define PATH_DELIM '/'
  228. # define PATH_DELIM_STR "/"
  229. # define far
  230. # define near
  231. #endif
  232. #ifdef IS_GCC_WIN32
  233. # define PATH_DELIM '/'
  234. # define PATH_DELIM_STR "/"
  235. # define far
  236. # define near
  237. #endif
  238. #ifdef __EMX__ /* We don't want to call it UNIX */
  239. # define PATH_DELIM '/'
  240. # define PATH_DELIM_STR "/"
  241. # define far
  242. # define near
  243. #endif
  244. #ifdef IS_MSDOS
  245. # define PATH_DELIM '\'
  246. # define PATH_DELIM_STR "\"
  247. #endif
  248. #ifdef IS_TOS
  249. # define PATH_DELIM '\'
  250. # define PATH_DELIM_STR "\"
  251. # define far
  252. # define near
  253. #endif
  254. #ifdef IS_MAC
  255. # define PATH_DELIM ':'
  256. # define PATH_DELIM_STR ":"
  257. # define far
  258. # define near
  259. #endif
  260. #ifdef __cplusplus
  261. }
  262. #endif
  263. #endif /* _MCONFIG_H */