emacs.c cleanups.
[emacs.git] / admin / CPP-DEFINES
blob81c199218f0848c7cde6fb924178b69430975081
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.
4 ** Distinguishing OSes **
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).
17 ** Distinguishing GUIs **
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.
32 ** Frame types **
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.)
40 ** Support for accessing other processes on the system **
42 HAVE_PROCFS     The /proc filesystem is supported.
44 ** Compile-time options **
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.
51 ** System specific macros, decribed in detail in src/s/template.h
52 CLASH_DETECTION
53 COFF
54 FIRST_PTY_LETTER
55 HAVE_PTYS
56 HAVE_TERMIO
57 HAVE_TERMIOS
58 INTERRUPT_INPUT
59 NARROWPROTO
60 SEPCHAR
61 SIGTYPE
62 SYSTEM_TYPE
64 ** Machine specific macros, decribed in detail in src/m/template.h
65 EXPLICIT_SIGN_EXTEND
66 LOAD_AVE_CVT
67 LOAD_AVE_TYPE
68 VIRT_ADDR_VARIES
69 WORDS_BIG_ENDIAN
71 ** Misc macros
72 USER_FULL_NAME   If defined, overrides the default pw->pw_gecos for getting at the full user name.  Only MSDOS overrides the default.
74 ** Replace, the definition is trivial: SWITCH_ENUM_CAST
76 ** 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.
79 AIX
80 AMPERSAND_FULL_NAME
81 BITS_PER_EMACS_INT
82 BITS_PER_LONG
83 BITS_PER_CHAR
84 BITS_PER_SHORT
85 BITS_PER_INT
86 BROKEN_DATAGRAM_SOCKETS
87 BROKEN_FIONREAD
88 BROKEN_GET_CURRENT_DIR_NAME
89 BROKEN_NON_BLOCKING_CONNECT
90 BROKEN_PTY_READ_AFTER_EAGAIN
91 BROKEN_SA_RESTART
92 BROKEN_SIGAIO
93 BROKEN_SIGIO
94 BROKEN_SIGPOLL
95 BROKEN_SIGPTY
96 BSD4_2
97 BSD4_3
98 BSD_SYSTEM
99 CLASH_DETECTION
100 DATA_SEG_BITS
101 DATA_START
102 DBL_MIN_REPLACEMENT
103 DECLARE_GETPWUID_WITH_UID_T
104 DEFAULT_SOUND_DEVICE
105 DEVICE_SEP
106 DIRECTORY_SEP
107 DONT_REOPEN_PTY
108 DOUG_LEA_MALLOC
109 DebPrint
110 EMACSDEBUG
111 EMACS_CONFIGURATION
112 EMACS_CONFIG_OPTIONS
113 EMACS_INT
114 EMACS_UINT
115 FILE_SYSTEM_CASE
116 FLOAT_CHECK_DOMAIN
117 FSCALE
118 GC_LISP_OBJECT_ALIGNMENT
119 GC_MARK_SECONDARY_STACK
120 GC_MARK_STACK
121 GC_SETJMP_WORKS
122 GMALLOC_INHIBIT_VALLOC
123 GNU_LIBRARY_PENDING_OUTPUT_COUNT
124 GNU_LINUX
125 GNU_MALLOC
126 HAVE_AIX_SMT_EXP
127 HAVE_CBRT
128 HAVE_CLOSEDIR
129 HAVE_DUP2
130 HAVE_EUIDACCESS
131 HAVE_FMOD
132 HAVE_FPATHCONF
133 HAVE_FREXP
134 HAVE_FSYNC
135 HAVE_FTIME
136 HAVE_GETCWD
137 HAVE_GETDOMAINNAME
138 HAVE_GETHOSTNAME
139 HAVE_GETLOADAVG
140 HAVE_GETPAGESIZE
141 HAVE_GETPT
142 HAVE_GETTIMEOFDAY
143 HAVE_GETWD
144 HAVE_H_ERRNO
145 HAVE_INET_SOCKETS
146 HAVE_INVERSE_HYPERBOLIC
147 HAVE_LIBKSTAT
148 HAVE_LIMITS_H
149 HAVE_LINUX_VERSION_H
150 HAVE_LOGB
151 HAVE_LONG_FILE_NAMES
152 HAVE_LRAND48
153 HAVE_MENUS
154 HAVE_MKDIR
155 HAVE_MKTIME
156 HAVE_MOUSE
157 HAVE_PERROR
158 HAVE_PSTAT_GETDYNAMIC
159 HAVE_PWD_H
160 HAVE_RANDOM
161 HAVE_RENAME
162 HAVE_RES_INIT
163 HAVE_RINT
164 HAVE_RMDIR
165 HAVE_SELECT
166 HAVE_SETLOCALE
167 HAVE_SETPGID
168 HAVE_SETRLIMIT
169 HAVE_SETSID
170 HAVE_SHUTDOWN
171 HAVE_SOCKETS
172 HAVE_SOUND
173 HAVE_STDLIB_H
174 HAVE_STRERROR
175 HAVE_STRFTIME
176 HAVE_STRING_H
177 HAVE_STRUCT_UTIMBUF
178 HAVE_SYSINFO
179 HAVE_SYSV_SIGPAUSE
180 HAVE_SYS_SELECT_H
181 HAVE_SYS_SYSTEMINFO_H
182 HAVE_SYS_TIMEB_H
183 HAVE_SYS_TIME_H
184 HAVE_TCATTR
185 HAVE_TERMIOS_H
186 HAVE_TIMEVAL
187 HAVE_TM_ZONE
188 HAVE_TZSET
189 HAVE_UNISTD_H
190 HAVE_UTIMES
191 HAVE_UTIME_H
192 HAVE_WINDOW_SYSTEM
193 HAVE_WORKING_VFORK
194 HAVE_XRMSETDATABASE
195 HPUX
196 INTERNAL_TERMINAL
197 IS_ANY_SEP
198 IS_DIRECTORY_SEP
199 KERNEL_FILE
200 LDAV_SYMBOL
201 LINKER
202 LINUX_VERSION_CODE
203 LISP_FLOAT_TYPE
204 LNOFLSH
205 LOCALTIME_CACHE
206 MAIL_USE_FLOCK
207 MAIL_USE_LOCKF
208 MAIL_USE_POP
209 MAIL_USE_SYSTEM_LOCK
210 MAXPATHLEN
211 MIN_PTY_KERNEL_VERSION -- only used on Mac
212 MODE_LINE_BINARY_TEXT
213 MUST_UNDEF__STDC__
214 NLIST_STRUCT
215 NO_ABORT
216 NO_EDITRES
217 NO_MATHERR
218 NO_TERMIO
219 NSIG
220 NSIG_MINIMUM
221 NULL
222 NULL_DEVICE
223 ORDINARY_LINK
224 O_APPEND
225 O_RDONLY
226 O_RDWR
227 PAGESIZE
228 PENDING_OUTPUT_COUNT
229 POSIX
230 PREFER_VSUSP
231 PTY_ITERATION
232 PTY_NAME_SPRINTF
233 PTY_OPEN
234 PTY_TTY_NAME_SPRINTF
235 PURESIZE
236 RUN_TIME_REMAP
237 SA_RESTART
238 SEGMENT_MASK
239 SETPGRP_RELEASES_CTTY
240 SETUP_SLAVE_PTY
241 SIGALRM
242 SIGCHLD
243 SIGHUP
244 SIGKILL
245 SIGNALS_VIA_CHARACTERS
246 SIGPIPE
247 SIGQUIT
248 SIGTRAP
249 SIGTYPE
250 SOLARIS2
251 STDC_HEADERS
252 SYSTEM_PURESIZE_EXTRA
253 SYSTEM_MALLOC
254 SYSV_SYSTEM_DIR
255 TAB3
256 TABDLY
257 TERM
258 TIME_WITH_SYS_TIME
259 TIOCSIGSEND
260 TM_IN_SYS_TIME
261 ULIMIT_BREAK_VALUE
262 UNIX98_PTYS
263 USE_CRT_DLL
264 USE_TOOLKIT_SCROLL_BARS
266 USG5
267 USG5_4
268 USG_SUBTTY_WORKS
269 VALBITS
270 WORDS_BIG_ENDIAN
271 WRETCODE
272 XINT
273 XOS_NEEDS_TIME_H
274 XPNTR
275 XSET
276 XUINT
277 _AIX
278 _ARCH_PPC64
279 _CALLBACK_
280 _FILE_OFFSET_BITS
281 _LP64
282 _MALLOC_INTERNAL
283 _NAIVE_DOS_REGS
284 _VARARGS_
285 _WINSOCKAPI_
286 _WINSOCK_H
287 __ELF__
288 __FreeBSD__
289 __GNUC__
290 __GNU_LIBRARY__
291 __GNUC_MINOR__
292 __NetBSD__
293 __OpenBSD__
294 __STDC__
295 __arch64__
296 __cplusplus
297 __hpux
298 __ia64__
299 __linux__
300 __mc68000__
301 __mips__
302 _longjmp
303 _setjmp
304 _start
305 abort
306 access
307 alloca
309 calloc
310 chdir
311 chmod
312 chown
313 close
314 const
315 creat
316 ctime
318 dup2
319 edata
320 emacs
321 etext
322 execlp
323 execvp
324 fdopen
325 fileno
326 fopen
327 free
328 fsync
329 ftruncate
330 fwrite
331 getdefdir
332 getdisk
333 getenv
334 getpid
335 getuid
336 gmtime
337 i386
338 index
339 init_process
340 isatty
341 kill
342 link
343 linux
344 localtime
345 logb
346 lseek
347 m68k
348 malloc
349 mkdir
350 mktemp
351 open
352 pclose
353 pipe
354 popen
355 random
356 read
357 realloc
358 rename
359 rindex
360 rmdir
361 sbrk
362 select
363 sigmask
364 signal
365 sigsetmask
366 sleep
367 spawnve
368 srandom
369 strdup
370 strerror
371 stricmp
372 strnicmp
373 strupr
374 sys_nerr
375 system
376 temacs
377 tzname
378 tzset
379 umask
380 unix
381 unlink
382 utimbuf
383 utime
384 vfork
385 wait
386 write
387 xfree
389 # arch-tag: bc80061a-1168-4911-9766-46aaf2640250