1 /* aNetHack 0.0.1 config1.h $ANH-Date: 1432512781 2015/05/25 00:13:01 $ $ANH-Branch: master $:$ANH-Revision: 1.17 $ */
2 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
3 /* aNetHack may be freely redistributed. See license for details. */
11 * Microsoft C auto-defines MSDOS,
12 * Borland C auto-defines __MSDOS__,
13 * DJGPP auto-defines MSDOS.
16 /* #define MSDOS */ /* use if not defined by compiler or cases below */
18 #ifdef __MSDOS__ /* for Borland C */
25 #define __MSC /* increase Borland C compatibility in libraries */
35 #if defined(__APPLE__) && defined(__MACH__)
39 #ifdef macintosh /* Auto-defined symbol for MPW compilers (sc and mrc) */
43 #ifdef THINK_C /* Think C auto-defined symbol */
48 #ifdef __MWERKS__ /* defined by Metrowerks' Codewarrior compiler */
49 #ifndef __BEOS__ /* BeOS */
56 #if defined(MAC) || defined(__BEOS__)
68 #ifdef AZTEC_C /* Manx auto-defines this */
69 #ifdef MCH_AMIGA /* Manx auto-defines this for AMIGA */
71 #define AMIGA /* define for Commodore-Amiga */
72 #endif /* (SAS/C auto-defines AMIGA) */
73 #define AZTEC_50 /* define for version 5.0 of manx */
77 #define NEARDATA __near /* put some data close */
80 #define NEARDATA __near /* put some data close */
89 #define HACKDIR "aNetHack:"
90 #define NO_MACRO_CPATH
94 * Atari auto-detection
112 * Windows NT Autodetection
121 #if defined(_WIN32) && !defined(WIN32)
139 #if defined(__linux__) && defined(__GNUC__) && !defined(_GNU_SOURCE)
140 /* ensure _GNU_SOURCE is defined before including any system headers */
144 #ifdef VMS /* really old compilers need special handling, detected here */
147 #ifndef __DECC_VER /* buggy early versions want widened prototypes */
148 #define NOTSTDC /* except when typedefs are involved */
154 #define _DECC_V4_SOURCE /* avoid some incompatible V5.x changes */
156 #undef __HIDE_FORBIDDEN_NAMES /* need non-ANSI library support functions */
157 #ifdef VAXC /* DEC C in VAX C compatibility mode; 'signed' works */
158 #define signed /* but causes diagnostic about VAX C not supporting it */
161 #ifdef VAXC /* must use CC/DEFINE=ANCIENT_VAXC for vaxc v2.2 or older */
163 #ifdef ANCIENT_VAXC /* vaxc v2.2 and earlier [lots of warnings to come] */
164 #define KR1ED /* simulate defined() */
166 #else /* vaxc v2.3,2.4,or 3.x, or decc in vaxc mode */
167 #if defined(USE_PROTOTYPES) /* this breaks 2.2 (*forces* use of ANCIENT)*/
168 #define __STDC__ 0 /* vaxc is not yet ANSI compliant, but close enough */
170 #define UNWIDENED_PROTOTYPES
176 #ifdef VERYOLD_VMS /* v4.5 or earlier; no longer available for testing */
177 #define USE_OLDARGS /* <varargs.h> is there, vprintf & vsprintf aren't */
188 /* just in case someone thinks a DECstation is a vax. It's not, it's a mips */
197 #ifdef KR1ED /* For compilers which cannot handle defined() */
198 #define defined(x) (-x - 1 != -1)
200 * #define FOO => FOO={} => defined( ) => (-1 != - - 1) => 1
201 * #define FOO 1 or on command-line -DFOO
202 * => defined(1) => (-1 != - 1 - 1) => 1
203 * if FOO isn't defined, FOO=0. But some compilers default to 0 instead of 1
204 * for -DFOO, oh well.
205 * => defined(0) => (-1 != - 0 - 1) => 0
208 * defined("") => (-1 != - "" - 1)
209 * [which is an unavoidable catastrophe.]
213 #endif /* CONFIG1_H */