/* SCCS Id: @(#)config1.h 3.3 1999/12/05 */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* NetHack may be freely redistributed. See license for details. */ #ifndef CONFIG1_H #define CONFIG1_H /* * MS DOS - compilers * * Microsoft C auto-defines MSDOS, * Borland C auto-defines __MSDOS__, * DJGPP auto-defines MSDOS. */ /* #define MSDOS */ /* use if not defined by compiler or cases below */ #ifdef __MSDOS__ /* for Borland C */ # ifndef MSDOS # define MSDOS # endif #endif #ifdef __TURBOC__ # define __MSC /* increase Borland C compatibility in libraries */ #endif #ifdef MSDOS # undef UNIX #endif /* * Mac Stuff. */ #ifdef applec /* MPW auto-defined symbol */ # define MAC #endif #ifdef THINK_C /* Think C auto-defined symbol */ # define MAC # define NEED_VARARGS #endif #ifdef __MWERKS__ /* defined by Metrowerks compiler */ # ifndef __BEOS__ /* BeOS */ # define MAC # endif # define NEED_VARARGS # define USE_STDARG #endif #if defined(MAC) || defined(__BEOS__) # define DLB # undef UNIX #endif #ifdef __BEOS__ # define NEED_VARARGS #endif /* * Amiga setup. */ #ifdef AZTEC_C /* Manx auto-defines this */ # ifdef MCH_AMIGA /* Manx auto-defines this for AMIGA */ # ifndef AMIGA #define AMIGA /* define for Commodore-Amiga */ # endif /* (SAS/C auto-defines AMIGA) */ #define AZTEC_50 /* define for version 5.0 of manx */ # endif #endif #ifdef __SASC_60 # define NEARDATA __near /* put some data close */ #else # ifdef _DCC # define NEARDATA __near /* put some data close */ # else # define NEARDATA # endif #endif #ifdef AMIGA # define NEED_VARARGS # undef UNIX # define DLB # define HACKDIR "NetHack:" # define NO_MACRO_CPATH #endif /* * Atari auto-detection */ #ifdef atarist # undef UNIX # ifndef TOS # define TOS # endif #else # ifdef __MINT__ # undef UNIX # ifndef TOS # define TOS # endif # endif #endif /* * Windows NT Autodetection */ #ifdef WIN32 # undef UNIX # undef MSDOS # define NHSTDC # define STRNCMPI # define USE_STDARG # define NEED_VARARGS #endif #ifdef VMS /* really old compilers need special handling, detected here */ # undef UNIX # ifdef __DECC # ifndef __DECC_VER /* buggy early versions want widened prototypes */ # define NOTSTDC /* except when typedefs are involved */ # define USE_VARARGS # else # define NHSTDC # define USE_STDARG # define POSIX_TYPES # define _DECC_V4_SOURCE /* avoid some incompatible V5.x changes */ # endif # undef __HIDE_FORBIDDEN_NAMES /* need non-ANSI library support functions */ # else # ifdef VAXC /* must use CC/DEFINE=ANCIENT_VAXC for vaxc v2.2 or older */ # ifdef ANCIENT_VAXC /* vaxc v2.2 and earlier [lots of warnings to come] */ # define KR1ED /* simulate defined() */ # define USE_VARARGS # else /* vaxc v2.3,2.4,or 3.x, or decc in vaxc mode */ # if defined(USE_PROTOTYPES) /* this breaks 2.2 (*forces* use of ANCIENT)*/ # define __STDC__ 0 /* vaxc is not yet ANSI compliant, but close enough */ # define signed /* well, almost close enough */ #include # define UNWIDENED_PROTOTYPES # endif # define USE_STDARG # endif # endif /*VAXC*/ # endif /*__DECC*/ # ifdef VERYOLD_VMS /* v4.5 or earlier; no longer available for testing */ # define USE_OLDARGS /* is there, vprintf & vsprintf aren't */ # ifdef USE_VARARGS # undef USE_VARARGS # endif # ifdef USE_STDARG # undef USE_STDARG # endif # endif #endif /*VMS*/ #ifdef vax /* just in case someone thinks a DECstation is a vax. It's not, it's a mips */ # ifdef ULTRIX_PROTO # undef ULTRIX_PROTO # endif # ifdef ULTRIX_CC20 # undef ULTRIX_CC20 # endif #endif #ifdef KR1ED /* For compilers which cannot handle defined() */ #define defined(x) (-x-1 != -1) /* Because: * #define FOO => FOO={} => defined( ) => (-1 != - - 1) => 1 * #define FOO 1 or on command-line -DFOO * => defined(1) => (-1 != - 1 - 1) => 1 * if FOO isn't defined, FOO=0. But some compilers default to 0 instead of 1 * for -DFOO, oh well. * => defined(0) => (-1 != - 0 - 1) => 0 * * But: * defined("") => (-1 != - "" - 1) * [which is an unavoidable catastrophe.] */ #endif #endif /* CONFIG1_H */