OSDN Git Service

shrink mine
[nethackexpress/trunk.git] / include / config1.h
1 /*      SCCS Id: @(#)config1.h  3.4     1999/12/05      */
2 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
3 /* NetHack may be freely redistributed.  See license for details. */
4
5 #ifndef CONFIG1_H
6 #define CONFIG1_H
7
8 /*
9  * MS DOS - compilers
10  *
11  * Microsoft C auto-defines MSDOS,
12  * Borland C   auto-defines __MSDOS__,
13  * DJGPP       auto-defines MSDOS.
14  */
15
16 /* #define MSDOS */     /* use if not defined by compiler or cases below */
17
18 #ifdef __MSDOS__        /* for Borland C */
19 # ifndef MSDOS
20 # define MSDOS
21 # endif
22 #endif
23
24 #ifdef __TURBOC__
25 # define __MSC          /* increase Borland C compatibility in libraries */
26 #endif
27
28 #ifdef MSDOS
29 # undef UNIX
30 #endif
31
32 /*
33  * Mac Stuff.
34  */
35 #ifdef macintosh        /*      Auto-defined symbol for MPW compilers (sc and mrc) */
36 # define MAC
37 #endif
38
39 #ifdef THINK_C          /* Think C auto-defined symbol */
40 # define MAC
41 # define NEED_VARARGS
42 #endif
43
44 #ifdef __MWERKS__       /* defined by Metrowerks' Codewarrior compiler */
45 # ifndef __BEOS__       /* BeOS */
46 #  define MAC
47 # endif
48 # define NEED_VARARGS
49 # define USE_STDARG
50 #endif
51
52 #if defined(MAC) || defined(__BEOS__)
53 # define DLB
54 # undef UNIX
55 #endif
56
57 #ifdef __BEOS__
58 # define NEED_VARARGS
59 #endif
60
61
62 /*
63  * Amiga setup.
64  */
65 #ifdef AZTEC_C  /* Manx auto-defines this */
66 # ifdef MCH_AMIGA       /* Manx auto-defines this for AMIGA */
67 #  ifndef AMIGA
68 #define AMIGA           /* define for Commodore-Amiga */
69 #  endif                /* (SAS/C auto-defines AMIGA) */
70 #define AZTEC_50        /* define for version 5.0 of manx */
71 # endif
72 #endif
73 #ifdef __SASC_60
74 # define NEARDATA __near /* put some data close */
75 #else
76 # ifdef _DCC
77 # define NEARDATA __near /* put some data close */
78 # else
79 # define NEARDATA
80 # endif
81 #endif
82 #ifdef AMIGA
83 # define NEED_VARARGS
84 # undef UNIX
85 # define DLB
86 # define HACKDIR "NetHack:"
87 # define NO_MACRO_CPATH
88 #endif
89
90 /*
91  * Atari auto-detection
92  */
93
94 #ifdef atarist
95 # undef UNIX
96 # ifndef TOS
97 # define TOS
98 # endif
99 #else
100 # ifdef __MINT__
101 #  undef UNIX
102 #  ifndef TOS
103 #  define TOS
104 #  endif
105 # endif
106 #endif
107
108 /*
109  * Windows NT Autodetection
110  */
111 #ifdef _WIN32_WCE
112 #define WIN_CE
113 # ifndef WIN32
114 # define WIN32
115 # endif
116 #endif
117
118 #ifdef WIN32
119 # undef UNIX
120 # undef MSDOS
121 # define NHSTDC
122 # define USE_STDARG
123 # define NEED_VARARGS
124
125 #ifndef WIN_CE
126 # define STRNCMPI
127 # define STRCMPI
128 #endif
129
130 #endif
131
132
133 #if defined(__linux__) && defined(__GNUC__) && !defined(_GNU_SOURCE)
134 /* ensure _GNU_SOURCE is defined before including any system headers */
135 # define _GNU_SOURCE
136 #endif
137
138 #ifdef VMS      /* really old compilers need special handling, detected here */
139 # undef UNIX
140 # ifdef __DECC
141 #  ifndef __DECC_VER    /* buggy early versions want widened prototypes */
142 #   define NOTSTDC      /* except when typedefs are involved            */
143 #   define USE_VARARGS
144 #  else
145 #   define NHSTDC
146 #   define USE_STDARG
147 #   define POSIX_TYPES
148 #   define _DECC_V4_SOURCE      /* avoid some incompatible V5.x changes */
149 #  endif
150 #  undef __HIDE_FORBIDDEN_NAMES /* need non-ANSI library support functions */
151 # else
152 #  ifdef VAXC   /* must use CC/DEFINE=ANCIENT_VAXC for vaxc v2.2 or older */
153 #   ifdef ANCIENT_VAXC  /* vaxc v2.2 and earlier [lots of warnings to come] */
154 #    define KR1ED       /* simulate defined() */
155 #    define USE_VARARGS
156 #   else                /* vaxc v2.3,2.4,or 3.x, or decc in vaxc mode */
157 #     if defined(USE_PROTOTYPES) /* this breaks 2.2 (*forces* use of ANCIENT)*/
158 #      define __STDC__ 0 /* vaxc is not yet ANSI compliant, but close enough */
159 #      define signed    /* well, almost close enough */
160 #include <stddef.h>
161 #      define UNWIDENED_PROTOTYPES
162 #     endif
163 #     define USE_STDARG
164 #   endif
165 #  endif /*VAXC*/
166 # endif /*__DECC*/
167 # ifdef VERYOLD_VMS     /* v4.5 or earlier; no longer available for testing */
168 #  define USE_OLDARGS   /* <varargs.h> is there, vprintf & vsprintf aren't */
169 #  ifdef USE_VARARGS
170 #   undef USE_VARARGS
171 #  endif
172 #  ifdef USE_STDARG
173 #   undef USE_STDARG
174 #  endif
175 # endif
176 #endif /*VMS*/
177
178 #ifdef vax
179 /* just in case someone thinks a DECstation is a vax. It's not, it's a mips */
180 # ifdef ULTRIX_PROTO
181 #  undef ULTRIX_PROTO
182 # endif
183 # ifdef ULTRIX_CC20
184 #  undef ULTRIX_CC20
185 # endif
186 #endif
187
188 #ifdef KR1ED            /* For compilers which cannot handle defined() */
189 #define defined(x) (-x-1 != -1)
190 /* Because:
191  * #define FOO => FOO={} => defined( ) => (-1 != - - 1) => 1
192  * #define FOO 1 or on command-line -DFOO
193  *      => defined(1) => (-1 != - 1 - 1) => 1
194  * if FOO isn't defined, FOO=0. But some compilers default to 0 instead of 1
195  * for -DFOO, oh well.
196  *      => defined(0) => (-1 != - 0 - 1) => 0
197  *
198  * But:
199  * defined("") => (-1 != - "" - 1)
200  *   [which is an unavoidable catastrophe.]
201  */
202 #endif
203
204 #endif  /* CONFIG1_H */