Don't use FILE_SYSTEM_CASE in MS-DOS, or anywhere else.
[bpt/emacs.git] / admin / CPP-DEFINES
1 Here are some of the cpp macros used, together with some short explanation
2 of their use. Feel free to add more macros and more categories.
3
4 ** Distinguishing OSes **
5
6 CYGWIN Compiling the Cygwin port.
7 __CYGWIN__ Ditto
8 MSDOS Compiling the MS-DOS port.
9 __MSDOS__ Ditto.
10 __DJGPP_MINOR__ Minor version number of the DJGPP library; used only in msdos.c and dosfns.c.
11 DOS_NT Compiling for either the MS-DOS or native MS-Windows port.
12 WINDOWSNT Compiling the native MS-Windows (W32) port.
13 __MINGW32__ Compiling the W32 port with the MinGW port of GCC.
14 _MSC_VER Compiling the W32 port with the Microsoft C compiler.
15 DARWIN_OS Compiling on Mac OS X or pure Darwin (and using s/darwin.h).
16
17 ** Distinguishing GUIs **
18
19 HAVE_NTGUI Use the native W32 GUI for windows, frames, menus&scrollbars.
20 HAVE_NS Use the NeXT/OpenStep/Cocoa UI under Mac OS X or GNUstep.
21 NS_IMPL_GNUSTEP Compile support for GNUstep implementation of NS GUI API.
22 NS_IMPL_COCOA Compile support for Cocoa (Apple) implementation of NS GUI API.
23 HAVE_X11 Compile support for the X11 GUI.
24 HAVE_X_WINDOWS Compile support for X Window system
25 (It looks like, nowadays, if HAVE_X11 is set, HAVE_X_WINDOWS must
26 be, and vice versa. At least, this is true for configure, and
27 msdos; not sure about nt.)
28 USE_LUCID Use the Lucid toolkit for menus&scrollbars. Requires HAVE_X11.
29 USE_MOTIF Use the Motif toolkit for menus&scrollbars. Requires HAVE_X11.
30 USE_GTK Use the Gtk toolkit for menus&scrollbars. Requires HAVE_X11.
31
32 ** Frame types **
33
34 FRAME_TERMCAP_P A tty (character terminal) frame.
35 FRAME_X_P A frame on X Window system.
36 FRAME_MSDOS_P An MS-DOS frame (used only by the DOS port).
37 FRAME_W32_P A frame using native MS-Windows GUI.
38 FRAME_WINDOW_P A GUI frame (like X, w32, etc.)
39
40 ** Support for accessing other processes on the system **
41
42 HAVE_PROCFS The /proc filesystem is supported.
43
44 ** Compile-time options **
45
46 REL_ALLOC Compile in the relocatable memory allocator ralloc.c.
47 SYSTEM_MALLOC Use the system library's malloc.
48 subprocesses System can use subprocesses (for M-x shell for example). Defined by default, only MSDOS undefines it.
49 USE_LISP_UNION_TYPE Define it in lisp.h to make Lisp_Object be a union type instead of the default int.
50
51 ** System specific macros, described in detail in src/s/template.h
52 CLASH_DETECTION
53 COFF
54 FIRST_PTY_LETTER
55 HAVE_PTYS
56 INTERRUPT_INPUT
57 NARROWPROTO
58 SEPCHAR
59 SYSTEM_TYPE
60
61 ** Misc macros
62 USER_FULL_NAME If defined, overrides the default pw->pw_gecos for getting at the full user name. Only MSDOS overrides the default.
63
64 ** Replace, the definition is trivial: SWITCH_ENUM_CAST
65
66 ** Defines from src/m/*.h and src/s/*.h. Some of these might not be used in the code anymore, so they can be removed. The HAVE_* definitions are probably handled by autoconf, so it might be possible to just remove them from src/[sm]/*.h.
67
68
69 AIX
70 AMPERSAND_FULL_NAME
71 BITS_PER_EMACS_INT
72 BITS_PER_LONG
73 BITS_PER_CHAR
74 BITS_PER_SHORT
75 BITS_PER_INT
76 BROKEN_DATAGRAM_SOCKETS
77 BROKEN_FIONREAD
78 BROKEN_GET_CURRENT_DIR_NAME
79 BROKEN_NON_BLOCKING_CONNECT
80 BROKEN_PTY_READ_AFTER_EAGAIN
81 BROKEN_SA_RESTART
82 BROKEN_SIGAIO
83 BROKEN_SIGIO
84 BROKEN_SIGPOLL
85 BROKEN_SIGPTY
86 BSD4_2
87 BSD4_3
88 BSD_SYSTEM
89 CLASH_DETECTION
90 DATA_SEG_BITS
91 DATA_START
92 DBL_MIN_REPLACEMENT
93 DEFAULT_SOUND_DEVICE
94 DEVICE_SEP
95 DIRECTORY_SEP
96 DONT_REOPEN_PTY
97 DOUG_LEA_MALLOC
98 DebPrint
99 EMACSDEBUG
100 EMACS_CONFIGURATION
101 EMACS_CONFIG_OPTIONS
102 EMACS_INT
103 EMACS_UINT
104 FLOAT_CHECK_DOMAIN
105 GC_LISP_OBJECT_ALIGNMENT
106 GC_MARK_SECONDARY_STACK
107 GC_MARK_STACK
108 GC_SETJMP_WORKS
109 GMALLOC_INHIBIT_VALLOC
110 GNU_LIBRARY_PENDING_OUTPUT_COUNT
111 GNU_LINUX
112 GNU_MALLOC
113 HAVE_AIX_SMT_EXP
114 HAVE_CBRT
115 HAVE_CLOSEDIR
116 HAVE_DUP2
117 HAVE_EUIDACCESS
118 HAVE_FMOD
119 HAVE_FPATHCONF
120 HAVE_FREXP
121 HAVE_FSYNC
122 HAVE_FTIME
123 HAVE_GETCWD
124 HAVE_GETDOMAINNAME
125 HAVE_GETHOSTNAME
126 HAVE_GETLOADAVG
127 HAVE_GETPAGESIZE
128 HAVE_GETPT
129 HAVE_GETTIMEOFDAY
130 HAVE_GETWD
131 HAVE_H_ERRNO
132 HAVE_INET_SOCKETS
133 HAVE_INVERSE_HYPERBOLIC
134 HAVE_LIBKSTAT
135 HAVE_LIMITS_H
136 HAVE_LINUX_VERSION_H
137 HAVE_LOGB
138 HAVE_LONG_FILE_NAMES
139 HAVE_LRAND48
140 HAVE_MENUS
141 HAVE_MKDIR
142 HAVE_MKTIME
143 HAVE_MOUSE
144 HAVE_PERROR
145 HAVE_PSTAT_GETDYNAMIC
146 HAVE_PWD_H
147 HAVE_RANDOM
148 HAVE_RENAME
149 HAVE_RES_INIT
150 HAVE_RINT
151 HAVE_RMDIR
152 HAVE_SELECT
153 HAVE_SETLOCALE
154 HAVE_SETPGID
155 HAVE_SETRLIMIT
156 HAVE_SETSID
157 HAVE_SHUTDOWN
158 HAVE_SOCKETS
159 HAVE_SOUND
160 HAVE_STDLIB_H
161 HAVE_STRERROR
162 HAVE_STRFTIME
163 HAVE_STRING_H
164 HAVE_STRUCT_UTIMBUF
165 HAVE_SYSINFO
166 HAVE_SYSV_SIGPAUSE
167 HAVE_SYS_SELECT_H
168 HAVE_SYS_SYSTEMINFO_H
169 HAVE_SYS_TIMEB_H
170 HAVE_SYS_TIME_H
171 HAVE_TCATTR
172 HAVE_TIMEVAL
173 HAVE_TM_ZONE
174 HAVE_TZSET
175 HAVE_UNISTD_H
176 HAVE_UTIMES
177 HAVE_UTIME_H
178 HAVE_WINDOW_SYSTEM
179 HAVE_WORKING_VFORK
180 HAVE_XRMSETDATABASE
181 HPUX
182 INTERNAL_TERMINAL
183 IS_ANY_SEP
184 IS_DIRECTORY_SEP
185 LINKER
186 LINUX_VERSION_CODE
187 LISP_FLOAT_TYPE
188 LNOFLSH
189 LOCALTIME_CACHE
190 MAIL_USE_FLOCK
191 MAIL_USE_LOCKF
192 MAIL_USE_POP
193 MAIL_USE_SYSTEM_LOCK
194 MAXPATHLEN
195 MIN_PTY_KERNEL_VERSION -- only used on Mac
196 MODE_LINE_BINARY_TEXT
197 MUST_UNDEF__STDC__
198 NLIST_STRUCT
199 NO_ABORT
200 NO_EDITRES
201 NO_MATHERR
202 NO_TERMIO
203 NSIG
204 NSIG_MINIMUM
205 NULL
206 NULL_DEVICE
207 ORDINARY_LINK
208 O_APPEND
209 O_RDONLY
210 O_RDWR
211 PAGESIZE
212 PENDING_OUTPUT_COUNT
213 POSIX
214 PREFER_VSUSP
215 PTY_ITERATION
216 PTY_NAME_SPRINTF
217 PTY_OPEN
218 PTY_TTY_NAME_SPRINTF
219 PURESIZE
220 RUN_TIME_REMAP
221 SA_RESTART
222 SEGMENT_MASK
223 SETPGRP_RELEASES_CTTY
224 SETUP_SLAVE_PTY
225 SIGALRM
226 SIGCHLD
227 SIGHUP
228 SIGKILL
229 SIGNALS_VIA_CHARACTERS
230 SIGPIPE
231 SIGQUIT
232 SIGTRAP
233 SOLARIS2
234 STDC_HEADERS
235 SYSTEM_PURESIZE_EXTRA
236 SYSTEM_MALLOC
237 SYSV_SYSTEM_DIR
238 TAB3
239 TABDLY
240 TERM
241 TIME_WITH_SYS_TIME
242 TIOCSIGSEND
243 TM_IN_SYS_TIME
244 ULIMIT_BREAK_VALUE
245 UNIX98_PTYS
246 USE_CRT_DLL
247 USE_TOOLKIT_SCROLL_BARS
248 USG
249 USG5
250 USG5_4
251 USG_SUBTTY_WORKS
252 VALBITS
253 WRETCODE
254 XOS_NEEDS_TIME_H
255 _AIX
256 _ARCH_PPC64
257 _FILE_OFFSET_BITS
258 _LP64
259 _MALLOC_INTERNAL
260 _NAIVE_DOS_REGS
261 _VARARGS_
262 _WINSOCKAPI_
263 _WINSOCK_H
264 _longjmp
265 _setjmp
266 _start
267 abort
268 access
269 alloca
270 brk
271 calloc
272 chdir
273 chmod
274 chown
275 close
276 const
277 creat
278 ctime
279 dup
280 dup2
281 edata
282 emacs
283 etext
284 execlp
285 execvp
286 fdopen
287 fileno
288 fopen
289 free
290 fsync
291 ftruncate
292 fwrite
293 getdefdir
294 getdisk
295 getenv
296 getpid
297 getuid
298 gmtime
299 index
300 isatty
301 kill
302 link
303 linux
304 localtime
305 logb
306 lseek
307 malloc
308 mkdir
309 mktemp
310 open
311 pclose
312 pipe
313 popen
314 random
315 read
316 realloc
317 rename
318 rindex
319 rmdir
320 sbrk
321 select
322 sigmask
323 signal
324 sigsetmask
325 sleep
326 spawnve
327 srandom
328 strdup
329 strerror
330 stricmp
331 strnicmp
332 strupr
333 sys_nerr
334 system
335 temacs
336 tzname
337 tzset
338 umask
339 unix
340 unlink
341 utimbuf
342 utime
343 vfork
344 wait
345 write
346 xfree