Source:Config.h

Below is the full text to include/config.h from NetHack 3.4.3. To link to a particular line, write [[config.h#line123 ]], for example. 1.   /*	SCCS Id: @(#)config.h	3.4	2003/12/06	*/ 2.   /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ 3.    /* NetHack may be freely redistributed. See license for details. */ 4.

5.   #ifndef CONFIG_H /* make sure the compiler does not see the typedefs twice */ 6.   #define CONFIG_H 7.    8.     9.    /*  10.    * Section 1:	Operating and window systems selection. 11.   *		Select the version of the OS you are using. 12.   *		For "UNIX" select BSD, ULTRIX, SYSV, or HPUX in unixconf.h.  13. *		A "VMS" option is not needed since the VMS C-compilers 14.   *		provide it (no need to change sec#1, vmsconf.h handles it). 15.   */  16.    17.   #define UNIX		/* delete if no fork, exec available */ 18.   19.   /* #define MSDOS */	/* in case it's not auto-detected */ 20.   21.   /* #define OS2 */	/* define for OS/2 */ 22.   23.   /* #define TOS */	/* define for Atari ST/TT */ 24.   25.   /* #define STUPID */	/* avoid some complicated expressions if  26. your C compiler chokes on them */ 27.  /* #define MINIMAL_TERM */ 28.  			/* if a terminal handles highlighting or tabs poorly, 29.  			   try this define, used in pager.c and termcap.c */ 30.  /* #define ULTRIX_CC20 */ 31.  			/* define only if using cc v2.0 on a DECstation */ 32.  /* #define ULTRIX_PROTO */ 33.  			/* define for Ultrix 4.0 (or higher) on a DECstation; 34.  			 * if you get compiler errors, don't define this. */ 35.   			/* Hint: if you're not developing code, don't define 36.  			   ULTRIX_PROTO. */ 37.    38.   #include "config1.h"	/* should auto-detect MSDOS, MAC, AMIGA, and WIN32 */ 39.   40.    41.   /* Windowing systems...  42. * Define all of those you want supported in your binary. 43.   * Some combinations make no sense. See the installation document. 44.   */  45.   #define TTY_GRAPHICS	/* good old tty based graphics */ 46.  /* #define X11_GRAPHICS */	/* X11 interface */ 47.  /* #define QT_GRAPHICS */	/* Qt interface */ 48.  /* #define GNOME_GRAPHICS */	/* Gnome interface */ 49.  /* #define MSWIN_GRAPHICS */	/* Windows NT, CE, Graphics */ 50.   51.   /*  52.    * Define the default window system. This should be one that is compiled 53.   * into your system (see defines above). Known window systems are: 54.   *  55.    *	tty, X11, mac, amii, BeOS, Qt, Gem, Gnome 56.   */  57.    58.   /* MAC also means MAC windows */ 59.  #ifdef MAC 60.  # ifndef	AUX 61.  #  define DEFAULT_WINDOW_SYS "mac" 62.  # endif 63.  #endif 64.   65.   /* Amiga supports AMII_GRAPHICS and/or TTY_GRAPHICS */ 66.  #ifdef AMIGA 67.  # define AMII_GRAPHICS			/* (optional) */ 68.  # define DEFAULT_WINDOW_SYS "amii"	/* "amii", "amitile" or "tty" */ 69.  #endif 70.   71.   /* Atari supports GEM_GRAPHICS and/or TTY_GRAPHICS */ 72.  #ifdef TOS 73.  # define GEM_GRAPHICS			/* Atari GEM interface (optional) */ 74.  # define DEFAULT_WINDOW_SYS "Gem"	/* "Gem" or "tty" */ 75.  #endif 76.   77.   #ifdef __BEOS__ 78.  #define BEOS_GRAPHICS /* (optional) */ 79.  #define DEFAULT_WINDOW_SYS "BeOS"  /* "tty" */ 80.  #ifndef HACKDIR	/* override the default hackdir below */ 81.  # define HACKDIR "/boot/apps/NetHack" 82.  #endif 83.  #endif 84.   85.   #ifdef QT_GRAPHICS 86.  # define DEFAULT_WC_TILED_MAP   /* Default to tiles if users doesn't say wc_ascii_map */ 87.  # define USER_SOUNDS		/* Use sounds */ 88.  # ifndef __APPLE__ 89.  #  define USER_SOUNDS_REGEX 90.  # endif 91.  # define USE_XPM		/* Use XPM format for images (required) */ 92.  # define GRAPHIC_TOMBSTONE	/* Use graphical tombstone (rip.ppm) */ 93.  # ifndef DEFAULT_WINDOW_SYS 94.  #  define DEFAULT_WINDOW_SYS "Qt" 95.  # endif 96.  #endif 97.   98.   #ifdef GNOME_GRAPHICS 99.  # define USE_XPM		/* Use XPM format for images (required) */ 100. # define GRAPHIC_TOMBSTONE	/* Use graphical tombstone (rip.ppm) */ 101. # ifndef DEFAULT_WINDOW_SYS 102. #  define DEFAULT_WINDOW_SYS "Gnome" 103. # endif 104. #endif 105.  106.  #ifdef MSWIN_GRAPHICS 107. # ifdef TTY_GRAPHICS 108. # undef TTY_GRAPHICS 109. # endif 110. # ifndef DEFAULT_WINDOW_SYS 111. #  define DEFAULT_WINDOW_SYS "mswin" 112. # endif 113. # define HACKDIR "\\nethack" 114. #endif 115.  116.  #ifndef DEFAULT_WINDOW_SYS 117. # define DEFAULT_WINDOW_SYS "tty" 118. #endif 119.  120.  #ifdef X11_GRAPHICS 121. /*  122.   * There are two ways that X11 tiles may be defined. (1) using a custom 123.  * format loaded by NetHack code, or (2) using the XPM format loaded by  124. * the free XPM library. The second option allows you to then use other 125.  * programs to generate tiles files. For example, the PBMPlus tools 126.  * would allow: 127.  *  xpmtoppm x11tiles_big.xpm 128.  */  129.  /* # define USE_XPM */		/* Disable if you do not have the XPM library */ 130. # ifdef USE_XPM 131. #  define GRAPHIC_TOMBSTONE	/* Use graphical tombstone (rip.xpm) */ 132. # endif 133. #endif 134.  135.   136.  /*  137.   * Section 2:	Some global parameters and filenames. 138.  *		Commenting out WIZARD, LOGFILE, NEWS or PANICLOG removes that 139.  *		feature from the game; otherwise set the appropriate wizard 140.  *		name. LOGFILE, NEWS and PANICLOG refer to files in the 141.  *		playground. 142.  */  143.   144.  #ifndef WIZARD		/* allow for compile-time or Makefile changes */ 145. # ifndef KR1ED 146. #  define WIZARD  "wizard" /* the person allowed to use the -D option */ 147. # else 148. #  define WIZARD 149. #  define WIZARD_NAME "wizard" 150. # endif 151. #endif 152.  153.  #define LOGFILE "logfile"	/* larger file for debugging purposes */ 154. #define NEWS "news"		/* the file containing the latest hack news */ 155. #define PANICLOG "paniclog"	/* log of panic and impossible events */ 156.  157.  /*  158.   *	If COMPRESS is defined, it should contain the full path name of your 159.  *	'compress' program. Defining INTERNAL_COMP causes NetHack to do 160. *	simpler byte-stream compression internally. Both COMPRESS and 161.  *	INTERNAL_COMP create smaller bones/level/save files, but require 162.  *	additional code and time. Currently, only UNIX fully implements 163.  *	COMPRESS; other ports should be able to uncompress save files a  164. *	la unixmain.c if so inclined. 165.  *	If you define COMPRESS, you must also define COMPRESS_EXTENSION 166.  *	as the extension your compressor appends to filenames after 167.  *	compression. 168.  */  169.   170.  #ifdef UNIX 171. /* path and file name extension for compression program */ 172. #define COMPRESS "/usr/bin/compress"	/* Lempel-Ziv compression */ 173. #define COMPRESS_EXTENSION ".Z"		/* compress's extension */ 174. /* An example of one alternative you might want to use: */ 175. /* #define COMPRESS "/usr/local/bin/gzip" */	/* FSF gzip compression */ 176. /* #define COMPRESS_EXTENSION ".gz" */		/* normal gzip extension */ 177. #endif 178.  179.  #ifndef COMPRESS 180. # define INTERNAL_COMP	/* control use of NetHack's compression routines */ 181. #endif 182.  183.  /*  184.   *	Data librarian. Defining DLB places most of the support files into 185.  *	a tar-like file, thus making a neater installation. See *conf.h 186. *	for detailed configuration. 187.  */  188.  /* #define DLB */	/* not supported on all platforms */ 189.  190.  /*  191.   *	Defining INSURANCE slows down level changes, but allows games that 192.  *	died due to program or system crashes to be resumed from the point 193.  *	of the last level change, after running a utility program. 194.  */  195.  #define INSURANCE	/* allow crashed game recovery */ 196.  197.  #ifndef MAC 198. # define CHDIR		/* delete if no chdir available */ 199. #endif 200.  201.  #ifdef CHDIR 202. /*  203.   * If you define HACKDIR, then this will be the default playground; 204.  * otherwise it will be the current directory. 205.  */  206.  # ifndef HACKDIR 207. #  define HACKDIR "/usr/games/lib/nethackdir" 208. # endif 209.  210.  /*  211.   * Some system administrators are stupid enough to make Hack suid root 212.  * or suid daemon, where daemon has other powers besides that of reading or  213. * writing Hack files. In such cases one should be careful with chdir's 214. * since the user might create files in a directory of his choice. 215.  * Of course SECURE is meaningful only if HACKDIR is defined. 216.  */  217.  /* #define SECURE */	/* do setuid(getuid) after chdir */ 218.  219.  /*  220.   * If it is desirable to limit the number of people that can play Hack 221.  * simultaneously, define HACKDIR, SECURE and MAX_NR_OF_PLAYERS. 222.  * #define MAX_NR_OF_PLAYERS 6 223.  */  224.  #endif /* CHDIR */ 225.  226.   227.   228.  /*  229.   * Section 3:	Definitions that may vary with system type. 230.  *		For example, both schar and uchar should be short ints on  231. *		the AT&T 3B2/3B5/etc. family. 232.  */  233.   234.  /*  235.   * Uncomment the following line if your compiler doesn't understand the 236.  * 'void' type (and thus would give all sorts of compile errors without  237.   * this definition). 238.  */  239.  /* #define NOVOID */			/* define if no "void" data type. */ 240.   241.  /*  242.   * Uncomment the following line if your compiler falsely claims to be  243. * a standard C compiler (i.e., defines __STDC__ without cause). 244.  * Examples are Apollo's cc (in some versions) and possibly SCO UNIX's rcc. 245.  */  246.  /* #define NOTSTDC */			/* define for lying compilers */ 247.  248.  #include "tradstdc.h"  249. 250. /*  251.   * type schar: small signed integers (8 bits suffice) (eg. TOS) 252.  *  253.   *	typedef char	schar; 254.  *  255.   *	will do when you have signed characters; otherwise use 256.  *  257.   *	typedef short int schar; 258.  */  259.  #ifdef AZTEC 260. # define schar	char 261. #else 262. typedef signed char	schar; 263. #endif 264.  265.  /*  266.   * type uchar: small unsigned integers (8 bits suffice - but 7 bits do not) 267.  *  268.   *	typedef unsigned char	uchar; 269.  *  270.   *	will be satisfactory if you have an "unsigned char" type; 271.  *	otherwise use 272.  *  273.   *	typedef unsigned short int uchar; 274.  */  275.  #ifndef _AIX32		/* identical typedef in system file causes trouble */ 276. typedef unsigned char	uchar; 277. #endif 278.  279.  /*  280.   * Various structures have the option of using bitfields to save space. 281.  * If your C compiler handles bitfields well (e.g., it can initialize structs  282.   * containing bitfields), you can define BITFIELDS. Otherwise, the game will 283.  * allocate a separate character for each bitfield. (The bitfields used never 284.   * have more than 7 bits, and most are only 1 bit.) 285.  */  286.  #define BITFIELDS	/* Good bitfield handling */ 287.  288.  /* #define STRNCMPI */	/* compiler/library has the strncmpi function */ 289.  290.  /*  291.   * There are various choices for the NetHack vision system. There is a 292. * choice of two algorithms with the same behavior. Defining VISION_TABLES 293.  * creates huge (60K) tables at compile time, drastically increasing data 294.  * size, but runs slightly faster than the alternate algorithm. (MSDOS in 295.   * particular cannot tolerate the increase in data size; other systems can  296.   * flip a coin weighted to local conditions.) 297.  *  298.   * If VISION_TABLES is not defined, things will be faster if you can use 299.  * MACRO_CPATH. Some cpps, however, cannot deal with the size of the 300.  * functions that have been macroized. 301.  */  302.   303.  /* #define VISION_TABLES */ /* use vision tables generated at compile time */ 304. #ifndef VISION_TABLES 305. # ifndef NO_MACRO_CPATH 306. #  define MACRO_CPATH	/* use clear_path macros instead of functions */ 307. # endif 308. #endif 309.  310.  /*  311.   * Section 4:  THE FUN STUFF!!! 312.  *  313.   * Conditional compilation of special options are controlled here. 314.  * If you define the following flags, you will add not only to the 315.  * complexity of the game but also to the size of the load module. 316.  */  317.   318.  /* dungeon features */ 319. #define SINKS		/* Kitchen sinks - Janet Walz */ 320. /* dungeon levels */ 321. #define WALLIFIED_MAZE	/* Fancy mazes - Jean-Christophe Collet */ 322. #define REINCARNATION	/* Special Rogue-like levels */ 323. /* monsters & objects */ 324. #define KOPS		/* Keystone Kops by Scott R. Turner */ 325. #define SEDUCE		/* Succubi/incubi seduction, by KAA, suggested by IM */ 326. #define STEED		/* Riding steeds */ 327. #define TOURIST		/* Tourist players with cameras and Hawaiian shirts */ 328. /* difficulty */ 329. #define ELBERETH	/* Engraving the E-word repels monsters */ 330. /* I/O */ 331. #define REDO		/* support for redoing last command - DGK */ 332. #if !defined(MAC) 333. # define CLIPPING	/* allow smaller screens -- ERS */ 334. #endif 335.  336.  #ifdef REDO 337. # define DOAGAIN '\001' /* ^A, the "redo" key used in cmd.c and getline.c */ 338. #endif 339.  340.  #define EXP_ON_BOTL	/* Show experience on bottom line */ 341. /* #define SCORE_ON_BOTL */	/* added by Gary Erickson (erickson@ucivax) */ 342.  343.  /*  344.   * Section 5:  EXPERIMENTAL STUFF 345.  *  346.   * Conditional compilation of new or experimental options are controlled here. 347.  * Enable any of these at your own risk -- there are almost certainly 348.  * bugs left here. 349.  */  350.   351.  /*#define GOLDOBJ */	/* Gold is kept on obj chains - Helge Hafting */ 352. /*#define AUTOPICKUP_EXCEPTIONS */ /* exceptions to autopickup */ 353.  354.  /* End of Section 5 */ 355.  356.  #include "global.h"	/* Define everything else according to choices above */ 357.  358.  #endif /* CONFIG_H */