Wikihack
Advertisement

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

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.    
The NetHack General Public License applies to screenshots, source code and other content from NetHack.
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 */
Advertisement