Source:NetHack 3.4.0/config1.h

From NetHackWiki
Jump to navigation Jump to search

Below is the full text to config1.h from the source code of NetHack 3.4.0. To link to a particular line, write [[NetHack 3.4.0/config1.h#line123]], for example.

Warning! This is the source code from an old release. For the latest release, see Source code

The NetHack General Public License applies to screenshots, source code and other content from NetHack.

This content was modified from the original NetHack source code distribution (by splitting up NetHack content between wiki pages, and possibly further editing). See the page history for a list of who changed it, and on what dates.

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.  # ifndef WIN32
113.  # define WIN32
114.  # endif
115.  #endif
116.  
117.  #ifdef WIN32
118.  # undef UNIX
119.  # undef MSDOS
120.  # define NHSTDC
121.  # define STRNCMPI
122.  # define USE_STDARG
123.  # define NEED_VARARGS
124.  
125.  #endif
126.  
127.  
128.  #ifdef VMS	/* really old compilers need special handling, detected here */
129.  # undef UNIX
130.  # ifdef __DECC
131.  #  ifndef __DECC_VER	/* buggy early versions want widened prototypes */
132.  #   define NOTSTDC	/* except when typedefs are involved		*/
133.  #   define USE_VARARGS
134.  #  else
135.  #   define NHSTDC
136.  #   define USE_STDARG
137.  #   define POSIX_TYPES
138.  #   define _DECC_V4_SOURCE	/* avoid some incompatible V5.x changes */
139.  #  endif
140.  #  undef __HIDE_FORBIDDEN_NAMES /* need non-ANSI library support functions */
141.  # else
142.  #  ifdef VAXC	/* must use CC/DEFINE=ANCIENT_VAXC for vaxc v2.2 or older */
143.  #   ifdef ANCIENT_VAXC	/* vaxc v2.2 and earlier [lots of warnings to come] */
144.  #    define KR1ED	/* simulate defined() */
145.  #    define USE_VARARGS
146.  #   else		/* vaxc v2.3,2.4,or 3.x, or decc in vaxc mode */
147.  #     if defined(USE_PROTOTYPES) /* this breaks 2.2 (*forces* use of ANCIENT)*/
148.  #      define __STDC__ 0 /* vaxc is not yet ANSI compliant, but close enough */
149.  #      define signed	/* well, almost close enough */
150.  #include <stddef.h>
151.  #      define UNWIDENED_PROTOTYPES
152.  #     endif
153.  #     define USE_STDARG
154.  #   endif
155.  #  endif /*VAXC*/
156.  # endif /*__DECC*/
157.  # ifdef VERYOLD_VMS	/* v4.5 or earlier; no longer available for testing */
158.  #  define USE_OLDARGS	/* <varargs.h> is there, vprintf & vsprintf aren't */
159.  #  ifdef USE_VARARGS
160.  #   undef USE_VARARGS
161.  #  endif
162.  #  ifdef USE_STDARG
163.  #   undef USE_STDARG
164.  #  endif
165.  # endif
166.  #endif /*VMS*/
167.  
168.  #ifdef vax
169.  /* just in case someone thinks a DECstation is a vax. It's not, it's a mips */
170.  # ifdef ULTRIX_PROTO
171.  #  undef ULTRIX_PROTO
172.  # endif
173.  # ifdef ULTRIX_CC20
174.  #  undef ULTRIX_CC20
175.  # endif
176.  #endif
177.  
178.  #ifdef KR1ED		/* For compilers which cannot handle defined() */
179.  #define defined(x) (-x-1 != -1)
180.  /* Because:
181.   * #define FOO => FOO={} => defined( ) => (-1 != - - 1) => 1
182.   * #define FOO 1 or on command-line -DFOO
183.   *	=> defined(1) => (-1 != - 1 - 1) => 1
184.   * if FOO isn't defined, FOO=0. But some compilers default to 0 instead of 1
185.   * for -DFOO, oh well.
186.   *	=> defined(0) => (-1 != - 0 - 1) => 0
187.   *
188.   * But:
189.   * defined("") => (-1 != - "" - 1)
190.   *   [which is an unavoidable catastrophe.]
191.   */
192.  #endif
193.  
194.  #endif	/* CONFIG1_H */