Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
205 lines (179 sloc) 4.39 KB
/* SCCS Id: @(#)config1.h 3.4 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 macintosh /* Auto-defined symbol for MPW compilers (sc and mrc) */
# define MAC
#endif
#ifdef THINK_C /* Think C auto-defined symbol */
# define MAC
# define NEED_VARARGS
#endif
#ifdef __MWERKS__ /* defined by Metrowerks' Codewarrior 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_WCE
#define WIN_CE
# ifndef WIN32
# define WIN32
# endif
#endif
#ifdef WIN32
# undef UNIX
# undef MSDOS
# define NHSTDC
# define USE_STDARG
# define NEED_VARARGS
#ifndef WIN_CE
# define STRNCMPI
# define STRCMPI
#endif
#endif
#if defined(__linux__) && defined(__GNUC__) && !defined(_GNU_SOURCE)
/* ensure _GNU_SOURCE is defined before including any system headers */
# define _GNU_SOURCE
#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 <stddef.h>
# 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 /* <varargs.h> 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 */