Merge from trunk.
[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 Most of these are from config.in, so it's probably better to put the
4 explanations in that file. Ideally, everything would be defined and
5 documented in config.in, and this file would not be necessary.
6
7
8 ** Distinguishing OSes **
9
10 AIX
11 _AIX
12 BSD4_2
13 BSD_SYSTEM
14 CYGWIN Compiling the Cygwin port.
15 __CYGWIN__ Ditto
16 GNU_LINUX
17 HPUX
18 IRIX6_5
19 MSDOS Compiling the MS-DOS port.
20 __MSDOS__ Ditto.
21 __DJGPP_MINOR__ Minor version number of the DJGPP library; used only in msdos.c and dosfns.c.
22 DOS_NT Compiling for either the MS-DOS or native MS-Windows port.
23 WINDOWSNT Compiling the native MS-Windows (W32) port.
24 __MINGW32__ Compiling the W32 port with the MinGW port of GCC.
25 _MSC_VER Compiling the W32 port with the Microsoft C compiler.
26 DARWIN_OS Compiling on Mac OS X or pure Darwin (and using s/darwin.h).
27 SOLARIS2
28 USG
29 USG5
30 USG5_4
31
32 ** Distinguishing GUIs **
33
34 HAVE_NTGUI Use the native W32 GUI for windows, frames, menus&scrollbars.
35 HAVE_NS Use the NeXT/OpenStep/Cocoa UI under Mac OS X or GNUstep.
36 NS_IMPL_GNUSTEP Compile support for GNUstep implementation of NS GUI API.
37 NS_IMPL_COCOA Compile support for Cocoa (Apple) implementation of NS GUI API.
38 HAVE_X11 Compile support for the X11 GUI.
39 HAVE_X_WINDOWS Compile support for X Window system
40 (It looks like, nowadays, if HAVE_X11 is set, HAVE_X_WINDOWS must
41 be, and vice versa. At least, this is true for configure, and
42 msdos; not sure about nt.)
43 HAVE_X11R6
44 HAVE_X11R6_XIM
45 HAVE_X11XTR6
46 USE_LUCID Use the Lucid toolkit for menus&scrollbars. Requires HAVE_X11.
47 USE_MOTIF Use the Motif toolkit for menus&scrollbars. Requires HAVE_X11.
48 USE_GTK Use the Gtk toolkit for menus&scrollbars. Requires HAVE_X11.
49
50 ** Frame types **
51
52 FRAME_TERMCAP_P A tty (character terminal) frame.
53 FRAME_X_P A frame on X Window system.
54 FRAME_MSDOS_P An MS-DOS frame (used only by the DOS port).
55 FRAME_W32_P A frame using native MS-Windows GUI.
56 FRAME_WINDOW_P A GUI frame (like X, w32, etc.)
57
58 ** Support for accessing other processes on the system **
59
60 HAVE_PROCFS The /proc filesystem is supported.
61
62 ** Compile-time options **
63
64 REL_ALLOC Compile in the relocatable memory allocator ralloc.c.
65 SYSTEM_MALLOC Use the system library's malloc.
66 subprocesses System can use subprocesses (for M-x shell for example).
67 Defined by default, only MSDOS undefines it.
68 DEBUG_LISP_OBJECT_TYPE Define it in lisp.h enable compile time checks
69 on Lisp_Object use.
70
71 ** System specific macros
72 FIRST_PTY_LETTER
73 HAVE_PTYS
74 INTERRUPT_INPUT
75 NARROWPROTO
76 SEPCHAR
77 SYSTEM_TYPE
78
79 ** Misc macros
80 USER_FULL_NAME If defined, overrides the default pw->pw_gecos for
81 getting at the full user name. Only MSDOS overrides the default.
82
83 ** Miscellaneous defines. Some of these might not be used in the code
84 anymore, so they can be removed.
85
86 AMPERSAND_FULL_NAME
87 BROKEN_DATAGRAM_SOCKETS
88 BROKEN_FIONREAD
89 BROKEN_GET_CURRENT_DIR_NAME
90 BROKEN_NON_BLOCKING_CONNECT
91 BROKEN_PTY_READ_AFTER_EAGAIN
92 CLASH_DETECTION
93 DATA_SEG_BITS
94 DATA_START
95 DEFAULT_SOUND_DEVICE
96 DEVICE_SEP
97 DIRECTORY_SEP
98 DONT_REOPEN_PTY
99 DOUG_LEA_MALLOC
100 EMACS_CONFIGURATION
101 EMACS_CONFIG_OPTIONS
102 EMACS_INT
103 EMACS_UINT
104 GC_MARK_SECONDARY_STACK
105 GC_MARK_STACK
106 GC_SETJMP_WORKS
107 GNU_MALLOC
108 HAVE_AIX_SMT_EXP
109 HAVE_ALARM
110 HAVE_ALLOCA
111 HAVE_ALLOCA_H
112 HAVE_ALSA
113 HAVE_ATTRIBUTE_ALIGNED
114 HAVE_BDFFONT
115 HAVE_BOXES
116 HAVE_C99_STRTOLD
117 HAVE_CFMAKERAW
118 HAVE_CFSETSPEED
119 HAVE_CLOCK_GETTIME
120 HAVE_CLOCK_SETTIME
121 HAVE_COFF_H
122 HAVE_COM_ERR_H
123 HAVE_COPYSIGN
124 HAVE_DBUS
125 HAVE_DBUS_TYPE_IS_VALID
126 HAVE_DBUS_VALIDATE_BUS_NAME
127 HAVE_DBUS_VALIDATE_INTERFACE
128 HAVE_DBUS_VALIDATE_MEMBER
129 HAVE_DBUS_VALIDATE_PATH
130 HAVE_DBUS_WATCH_GET_UNIX_FD
131 HAVE_DECL_GETENV
132 HAVE_DECL_LOCALTIME_R
133 HAVE_DECL_STRMODE
134 HAVE_DECL_STRTOIMAX
135 HAVE_DECL_STRTOLL
136 HAVE_DECL_STRTOULL
137 HAVE_DECL_STRTOUMAX
138 HAVE_DECL_SYS_SIGLIST
139 HAVE_DECL_TZNAME
140 HAVE_DECL___SYS_SIGLIST
141 HAVE_DES_H
142 HAVE_DEV_PTMX
143 HAVE_DIALOGS
144 HAVE_DIFFTIME
145 HAVE_DUP2
146 HAVE_ENDGRENT
147 HAVE_ENDPWENT
148 HAVE_ENVIRON_DECL
149 HAVE_EUIDACCESS
150 HAVE_FORK
151 HAVE_FREEIFADDRS
152 HAVE_FREETYPE
153 HAVE_FSEEKO
154 HAVE_FSYNC
155 HAVE_FUTIMENS
156 HAVE_FUTIMES
157 HAVE_FUTIMESAT
158 HAVE_GAI_STRERROR
159 HAVE_GCONF
160 HAVE_GETADDRINFO
161 HAVE_GETDELIM
162 HAVE_GETGRENT
163 HAVE_GETHOSTNAME
164 HAVE_GETIFADDRS
165 HAVE_GETLINE
166 HAVE_GETLOADAVG
167 HAVE_GETOPT_H
168 HAVE_GETOPT_LONG_ONLY
169 HAVE_GETPAGESIZE
170 HAVE_GETPEERNAME
171 HAVE_GETPT
172 HAVE_GETPWENT
173 HAVE_GETRLIMIT
174 HAVE_GETRUSAGE
175 HAVE_GETSOCKNAME
176 HAVE_GETTIMEOFDAY
177 HAVE_GET_CURRENT_DIR_NAME
178 HAVE_GHOSTSCRIPT
179 HAVE_GIF
180 HAVE_GNUTLS
181 HAVE_GNUTLS_CALLBACK_CERTIFICATE_VERIFY
182 HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION
183 HAVE_GPM
184 HAVE_GRANTPT
185 HAVE_GSETTINGS
186 HAVE_GTK3
187 HAVE_GTK_ADJUSTMENT_GET_PAGE_SIZE
188 HAVE_GTK_DIALOG_GET_ACTION_AREA
189 HAVE_GTK_FILE_SELECTION_NEW
190 HAVE_GTK_MAIN
191 HAVE_GTK_MULTIDISPLAY
192 HAVE_GTK_ORIENTABLE_SET_ORIENTATION
193 HAVE_GTK_WIDGET_GET_MAPPED
194 HAVE_GTK_WIDGET_GET_SENSITIVE
195 HAVE_GTK_WIDGET_GET_WINDOW
196 HAVE_GTK_WIDGET_SET_HAS_WINDOW
197 HAVE_GTK_WINDOW_SET_HAS_RESIZE_GRIP
198 HAVE_G_TYPE_INIT
199 HAVE_H_ERRNO
200 HAVE_IFADDRS_H
201 HAVE_IMAGEMAGICK
202 HAVE_INET_SOCKETS
203 HAVE_INTTYPES_H
204 HAVE_JPEG
205 HAVE_KERBEROSIV_DES_H
206 HAVE_KERBEROSIV_KRB_H
207 HAVE_KERBEROS_DES_H
208 HAVE_KERBEROS_KRB_H
209 HAVE_KRB5_ERROR_E_TEXT
210 HAVE_KRB5_ERROR_TEXT
211 HAVE_KRB5_H
212 HAVE_KRB_H
213 HAVE_LANGINFO_CODESET
214 HAVE_LIBCOM_ERR
215 HAVE_LIBCRYPTO
216 HAVE_LIBDES
217 HAVE_LIBDES425
218 HAVE_LIBDGC
219 HAVE_LIBDNET
220 HAVE_LIBHESIOD
221 HAVE_LIBK5CRYPTO
222 HAVE_LIBKRB
223 HAVE_LIBKRB4
224 HAVE_LIBKRB5
225 HAVE_LIBKSTAT
226 HAVE_LIBLOCKFILE
227 HAVE_LIBM
228 HAVE_LIBMAIL
229 HAVE_LIBOTF
230 HAVE_LIBPERFSTAT
231 HAVE_LIBPNG_PNG_H
232 HAVE_LIBPTHREADS
233 HAVE_LIBRESOLV
234 HAVE_LIBSELINUX
235 HAVE_LIBXEXT
236 HAVE_LIBXML2
237 HAVE_LIBXMU
238 HAVE_LINUX_VERSION_H
239 HAVE_LOCALTIME_R
240 HAVE_LOCAL_SOCKETS
241 HAVE_LONG_FILE_NAMES
242 HAVE_LONG_LONG_INT
243 HAVE_LRAND48
244 HAVE_LSTAT
245 HAVE_LUTIMES
246 HAVE_M17N_FLT
247 HAVE_MACHINE_SOUNDCARD_H
248 HAVE_MACH_MACH_H
249 HAVE_MAGICKEXPORTIMAGEPIXELS
250 HAVE_MAGICKMERGEIMAGELAYERS
251 HAVE_MAILLOCK_H
252 HAVE_MALLOC_MALLOC_H
253 HAVE_MATHERR
254 HAVE_MBSTATE_T
255 HAVE_MEMCMP
256 HAVE_MEMMOVE
257 HAVE_MEMORY_H
258 HAVE_MEMSET
259 HAVE_MENUS
260 HAVE_MKSTEMP
261 HAVE_MMAP
262 HAVE_MOUSE
263 HAVE_MULTILINGUAL_MENU
264 HAVE_NANOTIME
265 HAVE_NET_IF_DL_H
266 HAVE_NET_IF_H
267 HAVE_NLIST_H
268 HAVE_OTF_GET_VARIATION_GLYPHS
269 HAVE_PERSONALITY_LINUX32
270 HAVE_PNG
271 HAVE_PNG_H
272 HAVE_POSIX_MEMALIGN
273 HAVE_PROCFS
274 HAVE_PSELECT
275 HAVE_PSTAT_GETDYNAMIC
276 HAVE_PTHREAD
277 HAVE_PTHREAD_H
278 HAVE_PTHREAD_SIGMASK
279 HAVE_PTYS
280 HAVE_PTY_H
281 HAVE_PWD_H
282 HAVE_RANDOM
283 HAVE_READLINK
284 HAVE_READLINKAT
285 HAVE_RECVFROM
286 HAVE_RES_INIT
287 HAVE_RINT
288 HAVE_RSVG
289 HAVE_SELECT
290 HAVE_SENDTO
291 HAVE_SEQPACKET
292 HAVE_SETITIMER
293 HAVE_SETLOCALE
294 HAVE_SETRLIMIT
295 HAVE_SHARED_GAME_DIR
296 HAVE_SHUTDOWN
297 HAVE_SIGNED_${GLTYPE}
298 HAVE_SIGNED_SIG_ATOMIC_T
299 HAVE_SIGNED_WCHAR_T
300 HAVE_SIGNED_WINT_T
301 HAVE_SIGSET_T
302 HAVE_SNPRINTF
303 HAVE_SOCKETS
304 HAVE_SOUND
305 HAVE_SOUNDCARD_H
306 HAVE_SPEED_T
307 HAVE_STDINT_H
308 HAVE_STDIO_EXT_H
309 HAVE_STDLIB_H
310 HAVE_STLIB_H_1
311 HAVE_STRINGS_H
312 HAVE_STRING_H
313 HAVE_STRNCASECMP
314 HAVE_STRSIGNAL
315 HAVE_STRTOIMAX
316 HAVE_STRTOLL
317 HAVE_STRTOULL
318 HAVE_STRTOUMAX
319 HAVE_STRUCT_ERA_ENTRY
320 HAVE_STRUCT_IFREQ_IFR_ADDR
321 HAVE_STRUCT_IFREQ_IFR_ADDR_SA_LEN
322 HAVE_STRUCT_IFREQ_IFR_BROADADDR
323 HAVE_STRUCT_IFREQ_IFR_FLAGS
324 HAVE_STRUCT_IFREQ_IFR_HWADDR
325 HAVE_STRUCT_IFREQ_IFR_NETMASK
326 HAVE_STRUCT_NLIST_N_UN_N_NAME
327 HAVE_STRUCT_STAT_ST_ATIMENSEC
328 HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC
329 HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC
330 HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC
331 HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC
332 HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC
333 HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC
334 HAVE_STRUCT_TIMEZONE
335 HAVE_STRUCT_TM_TM_ZONE
336 HAVE_STRUCT_UTIMBUF
337 HAVE_ST_DM_MODE
338 HAVE_SYMLINK
339 HAVE_SYNC
340 HAVE_SYS_BITYPES_H
341 HAVE_SYS_INTTYPES_H
342 HAVE_SYS_LOADAVG_H
343 HAVE_SYS_PARAM_H
344 HAVE_SYS_RESOURCE_H
345 HAVE_SYS_SELECT_H
346 HAVE_SYS_SOCKET_H
347 HAVE_SYS_SOUNDCARD_H
348 HAVE_SYS_STAT_H
349 HAVE_SYS_SYSTEMINFO_H
350 HAVE_SYS_TIMEB_H
351 HAVE_SYS_TIME_H
352 HAVE_SYS_TYPES_H
353 HAVE_SYS_UN_H
354 HAVE_SYS_UTSNAME_H
355 HAVE_SYS_VLIMIT_H
356 HAVE_SYS_WAIT_H
357 HAVE_TCATTR
358 HAVE_TERM_H
359 HAVE_TIFF
360 HAVE_TIMEVAL
361 HAVE_TM_GMTOFF
362 HAVE_TM_ZONE
363 HAVE_TOUCHLOCK
364 HAVE_TZNAME
365 HAVE_TZSET
366 HAVE_UNSIGNED_LONG_LONG_INT
367 HAVE_UTIL_H
368 HAVE_UTIMENSAT
369 HAVE_UTIMES
370 HAVE_UTIME_H
371 HAVE_UTMP_H
372 HAVE_VFORK
373 HAVE_VFORK_H
374 HAVE_WCHAR_H
375 HAVE_WCHAR_T
376 HAVE_WINDOW_SYSTEM
377 HAVE_WINSOCK2_H
378 HAVE_WORKING_FORK
379 HAVE_WORKING_UTIMES
380 HAVE_WORKING_VFORK
381 HAVE_WS2TCPIP_H
382 HAVE_XAW3D
383 HAVE_XFT
384 HAVE_XIM
385 HAVE_XKBGETKEYBOARD
386 HAVE_XPM
387 HAVE_XRMSETDATABASE
388 HAVE_XSCREENNUMBEROFSCREEN
389 HAVE_XSCREENRESOURCESTRING
390 HAVE_X_I18N
391 HAVE_X_MENU
392 HAVE_X_SM
393 HAVE_X_WINDOWS
394 HAVE__BOOL
395 HAVE__FTIME
396 HAVE___BUILTIN_UNWIND_INIT
397 HAVE___EXECUTABLE_START
398 HAVE___FPENDING
399 INTERNAL_TERMINAL
400 IS_ANY_SEP
401 IS_DIRECTORY_SEP
402 LOCALTIME_CACHE
403 MAIL_USE_FLOCK
404 MAIL_USE_LOCKF
405 MAIL_USE_POP
406 MAIL_USE_SYSTEM_LOCK
407 MAXPATHLEN
408 NLIST_STRUCT
409 NO_EDITRES
410 NSIG
411 NSIG_MINIMUM
412 NULL_DEVICE
413 ORDINARY_LINK
414 PAGESIZE
415 PREFER_VSUSP
416 PTY_ITERATION
417 PTY_NAME_SPRINTF
418 PTY_OPEN
419 PTY_TTY_NAME_SPRINTF
420 PURESIZE
421 RUN_TIME_REMAP
422 SETUP_SLAVE_PTY
423 SIGALRM
424 SIGCHLD
425 SIGHUP
426 SIGKILL
427 SIGNALS_VIA_CHARACTERS
428 SIGPIPE
429 SIGQUIT
430 SIGTRAP
431 STDC_HEADERS
432 SYSTEM_PURESIZE_EXTRA
433 SYSTEM_MALLOC
434 TAB3
435 TABDLY
436 TERM
437 TIME_WITH_SYS_TIME
438 TIOCSIGSEND
439 TM_IN_SYS_TIME
440 ULIMIT_BREAK_VALUE
441 UNIX98_PTYS
442 USE_TOOLKIT_SCROLL_BARS
443 USG_SUBTTY_WORKS
444 VALBITS
445 XOS_NEEDS_TIME_H
446 _FILE_OFFSET_BITS
447 _LP64
448 _longjmp
449 _setjmp
450 abort
451 alloca
452 close
453 emacs
454 free
455 gmtime
456 localtime
457 malloc
458 random
459 read
460 realloc
461 select
462 umask
463 vfork
464
465
466 src/sysdep.c:
467 write
468
469 src/syssignal.h:
470 signal
471 sigmask
472 sigsetmask
473
474
475 lib/dup2.c:
476 dup2
477
478 lib/signal.h:
479 signal
480
481 lib/stdio.h:
482 fdopen
483 fopen
484 fwrite
485 popen
486 rename
487
488 lib/stdlib.h:
489 calloc
490 srandom (conf_post.h may undo)
491
492 lib/strftime.c:
493 tzname
494 tzset
495
496 lib/sys/stat.h:
497 mkdir
498
499 lib/unistd.h:
500 chown
501 dup
502 dup2
503 ftruncate
504 isatty
505 link
506 lseek
507 pipe
508 rmdir
509 sleep
510 unlink
511
512
513 MS DOS stuff:
514
515 _NAIVE_DOS_REGS
516
517
518 MS stuff:
519
520 USE_CRT_DLL
521
522 ms-w32.h:
523 DebPrint
524 EMACSDEBUG
525 MUST_UNDEF__STDC__
526
527 _VARARGS_
528 _WINSOCKAPI_
529 _WINSOCK_H
530
531 access
532 calloc
533 chdir
534 chmod
535 chown
536 creat
537 ctime
538 dup
539 dup2
540 execlp
541 execvp (also emacsclient.c [WINDOWSNT])
542 fdopen
543 fileno
544 fopen
545 fsync
546 ftruncate
547 getdefdir
548 getdisk
549 getpid
550 isatty
551 kill
552 link
553 lseek
554 mkdir
555 mktemp
556 open
557 pclose
558 pipe
559 popen
560 rename
561 rmdir
562 signal
563 sleep
564 spawnve
565 strdup
566 stricmp
567 strnicmp
568 strupr
569 sys_nerr
570 tzname
571 tzset
572 umask
573 unlink
574 utimbuf
575 utime
576 wait (also movemail.c [WINDOWSNT])
577 write
578
579 lib-src/ntlib:
580 access
581 chdir
582 chmod
583 creat
584 dup
585 dup2
586 execlp
587 execvp
588 fdopen
589 fileno
590 fopen
591 getpid
592 index
593 isatty
594 lseek
595 mkdir
596 mktemp
597 open
598 pclose
599 pipe
600 popen
601 rmdir
602 rindex
603 sleep
604 umask
605 unlink
606 utime