17c56dc7e9e5c32136b4fbd7e32f5b51bff21bd1
[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_GETWD
90 BROKEN_GET_CURRENT_DIR_NAME
91 BROKEN_NON_BLOCKING_CONNECT
92 BROKEN_PTY_READ_AFTER_EAGAIN
93 CLASH_DETECTION
94 DATA_SEG_BITS
95 DATA_START
96 DEFAULT_SOUND_DEVICE
97 DEVICE_SEP
98 DIRECTORY_SEP
99 DONT_REOPEN_PTY
100 DOUG_LEA_MALLOC
101 EMACS_CONFIGURATION
102 EMACS_CONFIG_OPTIONS
103 EMACS_INT
104 EMACS_UINT
105 GC_MARK_SECONDARY_STACK
106 GC_MARK_STACK
107 GC_SETJMP_WORKS
108 GNU_MALLOC
109 HAVE_AIX_SMT_EXP
110 HAVE_ALARM
111 HAVE_ALLOCA
112 HAVE_ALLOCA_H
113 HAVE_ALSA
114 HAVE_ATTRIBUTE_ALIGNED
115 HAVE_BDFFONT
116 HAVE_BOXES
117 HAVE_C99_STRTOLD
118 HAVE_CFMAKERAW
119 HAVE_CFSETSPEED
120 HAVE_CLOCK_GETTIME
121 HAVE_CLOCK_SETTIME
122 HAVE_CLOSEDIR
123 HAVE_COFF_H
124 HAVE_COM_ERR_H
125 HAVE_COPYSIGN
126 HAVE_DBUS
127 HAVE_DBUS_TYPE_IS_VALID
128 HAVE_DBUS_VALIDATE_BUS_NAME
129 HAVE_DBUS_VALIDATE_INTERFACE
130 HAVE_DBUS_VALIDATE_MEMBER
131 HAVE_DBUS_VALIDATE_PATH
132 HAVE_DBUS_WATCH_GET_UNIX_FD
133 HAVE_DECL_GETENV
134 HAVE_DECL_LOCALTIME_R
135 HAVE_DECL_STRMODE
136 HAVE_DECL_STRTOIMAX
137 HAVE_DECL_STRTOLL
138 HAVE_DECL_STRTOULL
139 HAVE_DECL_STRTOUMAX
140 HAVE_DECL_SYS_SIGLIST
141 HAVE_DECL_TZNAME
142 HAVE_DECL___SYS_SIGLIST
143 HAVE_DES_H
144 HAVE_DEV_PTMX
145 HAVE_DIALOGS
146 HAVE_DIFFTIME
147 HAVE_DIRENT_H
148 HAVE_DUP2
149 HAVE_ENDGRENT
150 HAVE_ENDPWENT
151 HAVE_ENVIRON_DECL
152 HAVE_EUIDACCESS
153 HAVE_FCNTL_H
154 HAVE_FORK
155 HAVE_FREEIFADDRS
156 HAVE_FREETYPE
157 HAVE_FSEEKO
158 HAVE_FSYNC
159 HAVE_FUTIMENS
160 HAVE_FUTIMES
161 HAVE_FUTIMESAT
162 HAVE_GAI_STRERROR
163 HAVE_GCONF
164 HAVE_GETADDRINFO
165 HAVE_GETCWD
166 HAVE_GETDELIM
167 HAVE_GETGRENT
168 HAVE_GETHOSTNAME
169 HAVE_GETIFADDRS
170 HAVE_GETLINE
171 HAVE_GETLOADAVG
172 HAVE_GETOPT_H
173 HAVE_GETOPT_LONG_ONLY
174 HAVE_GETPAGESIZE
175 HAVE_GETPEERNAME
176 HAVE_GETPT
177 HAVE_GETPWENT
178 HAVE_GETRLIMIT
179 HAVE_GETRUSAGE
180 HAVE_GETSOCKNAME
181 HAVE_GETTIMEOFDAY
182 HAVE_GETWD
183 HAVE_GET_CURRENT_DIR_NAME
184 HAVE_GHOSTSCRIPT
185 HAVE_GIF
186 HAVE_GNUTLS
187 HAVE_GNUTLS_CALLBACK_CERTIFICATE_VERIFY
188 HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION
189 HAVE_GPM
190 HAVE_GRANTPT
191 HAVE_GSETTINGS
192 HAVE_GTK3
193 HAVE_GTK_ADJUSTMENT_GET_PAGE_SIZE
194 HAVE_GTK_DIALOG_GET_ACTION_AREA
195 HAVE_GTK_FILE_SELECTION_NEW
196 HAVE_GTK_MAIN
197 HAVE_GTK_MULTIDISPLAY
198 HAVE_GTK_ORIENTABLE_SET_ORIENTATION
199 HAVE_GTK_WIDGET_GET_MAPPED
200 HAVE_GTK_WIDGET_GET_SENSITIVE
201 HAVE_GTK_WIDGET_GET_WINDOW
202 HAVE_GTK_WIDGET_SET_HAS_WINDOW
203 HAVE_GTK_WINDOW_SET_HAS_RESIZE_GRIP
204 HAVE_G_TYPE_INIT
205 HAVE_H_ERRNO
206 HAVE_IFADDRS_H
207 HAVE_IMAGEMAGICK
208 HAVE_INET_SOCKETS
209 HAVE_INTTYPES_H
210 HAVE_JPEG
211 HAVE_KERBEROSIV_DES_H
212 HAVE_KERBEROSIV_KRB_H
213 HAVE_KERBEROS_DES_H
214 HAVE_KERBEROS_KRB_H
215 HAVE_KRB5_ERROR_E_TEXT
216 HAVE_KRB5_ERROR_TEXT
217 HAVE_KRB5_H
218 HAVE_KRB_H
219 HAVE_LANGINFO_CODESET
220 HAVE_LIBCOM_ERR
221 HAVE_LIBCRYPTO
222 HAVE_LIBDES
223 HAVE_LIBDES425
224 HAVE_LIBDGC
225 HAVE_LIBDNET
226 HAVE_LIBHESIOD
227 HAVE_LIBK5CRYPTO
228 HAVE_LIBKRB
229 HAVE_LIBKRB4
230 HAVE_LIBKRB5
231 HAVE_LIBKSTAT
232 HAVE_LIBLOCKFILE
233 HAVE_LIBM
234 HAVE_LIBMAIL
235 HAVE_LIBOTF
236 HAVE_LIBPERFSTAT
237 HAVE_LIBPNG_PNG_H
238 HAVE_LIBPTHREADS
239 HAVE_LIBRESOLV
240 HAVE_LIBSELINUX
241 HAVE_LIBXEXT
242 HAVE_LIBXML2
243 HAVE_LIBXMU
244 HAVE_LINUX_VERSION_H
245 HAVE_LOCALTIME_R
246 HAVE_LOCAL_SOCKETS
247 HAVE_LONG_FILE_NAMES
248 HAVE_LONG_LONG_INT
249 HAVE_LRAND48
250 HAVE_LSTAT
251 HAVE_LUTIMES
252 HAVE_M17N_FLT
253 HAVE_MACHINE_SOUNDCARD_H
254 HAVE_MACH_MACH_H
255 HAVE_MAGICKEXPORTIMAGEPIXELS
256 HAVE_MAGICKMERGEIMAGELAYERS
257 HAVE_MAILLOCK_H
258 HAVE_MALLOC_MALLOC_H
259 HAVE_MATHERR
260 HAVE_MBSTATE_T
261 HAVE_MEMCMP
262 HAVE_MEMMOVE
263 HAVE_MEMORY_H
264 HAVE_MEMSET
265 HAVE_MENUS
266 HAVE_MKSTEMP
267 HAVE_MMAP
268 HAVE_MOUSE
269 HAVE_MULTILINGUAL_MENU
270 HAVE_NANOTIME
271 HAVE_NET_IF_DL_H
272 HAVE_NET_IF_H
273 HAVE_NLIST_H
274 HAVE_OTF_GET_VARIATION_GLYPHS
275 HAVE_PERSONALITY_LINUX32
276 HAVE_PNG
277 HAVE_PNG_H
278 HAVE_POSIX_MEMALIGN
279 HAVE_PROCFS
280 HAVE_PSELECT
281 HAVE_PSTAT_GETDYNAMIC
282 HAVE_PTHREAD
283 HAVE_PTHREAD_H
284 HAVE_PTHREAD_SIGMASK
285 HAVE_PTYS
286 HAVE_PTY_H
287 HAVE_PWD_H
288 HAVE_RANDOM
289 HAVE_READLINK
290 HAVE_READLINKAT
291 HAVE_RECVFROM
292 HAVE_RES_INIT
293 HAVE_RINT
294 HAVE_RSVG
295 HAVE_SELECT
296 HAVE_SENDTO
297 HAVE_SEQPACKET
298 HAVE_SETITIMER
299 HAVE_SETLOCALE
300 HAVE_SETRLIMIT
301 HAVE_SHARED_GAME_DIR
302 HAVE_SHUTDOWN
303 HAVE_SIGNED_${GLTYPE}
304 HAVE_SIGNED_SIG_ATOMIC_T
305 HAVE_SIGNED_WCHAR_T
306 HAVE_SIGNED_WINT_T
307 HAVE_SIGSET_T
308 HAVE_SIZE_T
309 HAVE_SNPRINTF
310 HAVE_SOCKETS
311 HAVE_SOUND
312 HAVE_SOUNDCARD_H
313 HAVE_SPEED_T
314 HAVE_STDINT_H
315 HAVE_STDIO_EXT_H
316 HAVE_STDLIB_H
317 HAVE_STLIB_H_1
318 HAVE_STRINGS_H
319 HAVE_STRING_H
320 HAVE_STRNCASECMP
321 HAVE_STRSIGNAL
322 HAVE_STRTOIMAX
323 HAVE_STRTOLL
324 HAVE_STRTOULL
325 HAVE_STRTOUMAX
326 HAVE_STRUCT_ERA_ENTRY
327 HAVE_STRUCT_IFREQ_IFR_ADDR
328 HAVE_STRUCT_IFREQ_IFR_ADDR_SA_LEN
329 HAVE_STRUCT_IFREQ_IFR_BROADADDR
330 HAVE_STRUCT_IFREQ_IFR_FLAGS
331 HAVE_STRUCT_IFREQ_IFR_HWADDR
332 HAVE_STRUCT_IFREQ_IFR_NETMASK
333 HAVE_STRUCT_NLIST_N_UN_N_NAME
334 HAVE_STRUCT_STAT_ST_ATIMENSEC
335 HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC
336 HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC
337 HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC
338 HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC
339 HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC
340 HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC
341 HAVE_STRUCT_TIMEZONE
342 HAVE_STRUCT_TM_TM_ZONE
343 HAVE_STRUCT_UTIMBUF
344 HAVE_ST_DM_MODE
345 HAVE_SYMLINK
346 HAVE_SYNC
347 HAVE_SYS_BITYPES_H
348 HAVE_SYS_INTTYPES_H
349 HAVE_SYS_LOADAVG_H
350 HAVE_SYS_PARAM_H
351 HAVE_SYS_RESOURCE_H
352 HAVE_SYS_SELECT_H
353 HAVE_SYS_SOCKET_H
354 HAVE_SYS_SOUNDCARD_H
355 HAVE_SYS_STAT_H
356 HAVE_SYS_SYSTEMINFO_H
357 HAVE_SYS_TIMEB_H
358 HAVE_SYS_TIME_H
359 HAVE_SYS_TYPES_H
360 HAVE_SYS_UN_H
361 HAVE_SYS_UTSNAME_H
362 HAVE_SYS_VLIMIT_H
363 HAVE_SYS_WAIT_H
364 HAVE_TCATTR
365 HAVE_TERM_H
366 HAVE_TIFF
367 HAVE_TIMEVAL
368 HAVE_TM_GMTOFF
369 HAVE_TM_ZONE
370 HAVE_TOUCHLOCK
371 HAVE_TZNAME
372 HAVE_TZSET
373 HAVE_UNISTD_H
374 HAVE_UNSIGNED_LONG_LONG_INT
375 HAVE_UTIL_H
376 HAVE_UTIMENSAT
377 HAVE_UTIMES
378 HAVE_UTIME_H
379 HAVE_UTMP_H
380 HAVE_VFORK
381 HAVE_VFORK_H
382 HAVE_WCHAR_H
383 HAVE_WCHAR_T
384 HAVE_WINDOW_SYSTEM
385 HAVE_WINSOCK2_H
386 HAVE_WORKING_FORK
387 HAVE_WORKING_UTIMES
388 HAVE_WORKING_VFORK
389 HAVE_WS2TCPIP_H
390 HAVE_XAW3D
391 HAVE_XFT
392 HAVE_XIM
393 HAVE_XKBGETKEYBOARD
394 HAVE_XPM
395 HAVE_XRMSETDATABASE
396 HAVE_XSCREENNUMBEROFSCREEN
397 HAVE_XSCREENRESOURCESTRING
398 HAVE_X_I18N
399 HAVE_X_MENU
400 HAVE_X_SM
401 HAVE_X_WINDOWS
402 HAVE__BOOL
403 HAVE__FTIME
404 HAVE___BUILTIN_UNWIND_INIT
405 HAVE___EXECUTABLE_START
406 HAVE___FPENDING
407 INTERNAL_TERMINAL
408 IS_ANY_SEP
409 IS_DIRECTORY_SEP
410 LOCALTIME_CACHE
411 MAIL_USE_FLOCK
412 MAIL_USE_LOCKF
413 MAIL_USE_POP
414 MAIL_USE_SYSTEM_LOCK
415 MAXPATHLEN
416 NLIST_STRUCT
417 NO_EDITRES
418 NSIG
419 NSIG_MINIMUM
420 NULL_DEVICE
421 ORDINARY_LINK
422 O_RDONLY
423 O_RDWR
424 PAGESIZE
425 PREFER_VSUSP
426 PTY_ITERATION
427 PTY_NAME_SPRINTF
428 PTY_OPEN
429 PTY_TTY_NAME_SPRINTF
430 PURESIZE
431 RUN_TIME_REMAP
432 SETUP_SLAVE_PTY
433 SIGALRM
434 SIGCHLD
435 SIGHUP
436 SIGKILL
437 SIGNALS_VIA_CHARACTERS
438 SIGPIPE
439 SIGQUIT
440 SIGTRAP
441 STDC_HEADERS
442 SYSTEM_PURESIZE_EXTRA
443 SYSTEM_MALLOC
444 TAB3
445 TABDLY
446 TERM
447 TIME_WITH_SYS_TIME
448 TIOCSIGSEND
449 TM_IN_SYS_TIME
450 ULIMIT_BREAK_VALUE
451 UNIX98_PTYS
452 USE_TOOLKIT_SCROLL_BARS
453 USG_SUBTTY_WORKS
454 VALBITS
455 XOS_NEEDS_TIME_H
456 _FILE_OFFSET_BITS
457 _LP64
458 _longjmp
459 _setjmp
460 abort
461 alloca
462 close
463 emacs
464 free
465 gmtime
466 localtime
467 malloc
468 random
469 read
470 realloc
471 select
472 umask
473 vfork
474
475
476 src/sysdep.c:
477 write
478
479 src/syssignal.h:
480 signal
481 sigmask
482 sigsetmask
483
484
485 lib/dup2.c:
486 dup2
487
488 lib/signal.h:
489 signal
490
491 lib/stdio.h:
492 fdopen
493 fopen
494 fwrite
495 popen
496 rename
497
498 lib/stdlib.h:
499 calloc
500 srandom (conf_post.h may undo)
501
502 lib/strftime.c:
503 tzname
504 tzset
505
506 lib/sys/stat.h:
507 mkdir
508
509 lib/unistd.h:
510 chown
511 dup
512 dup2
513 ftruncate
514 isatty
515 link
516 lseek
517 pipe
518 rmdir
519 sleep
520 unlink
521
522
523 MS DOS stuff:
524
525 _NAIVE_DOS_REGS
526
527
528 MS stuff:
529
530 USE_CRT_DLL
531
532 ms-w32.h:
533 DebPrint
534 EMACSDEBUG
535 MUST_UNDEF__STDC__
536
537 _VARARGS_
538 _WINSOCKAPI_
539 _WINSOCK_H
540
541 access
542 calloc
543 chdir
544 chmod
545 chown
546 creat
547 ctime
548 dup
549 dup2
550 execlp
551 execvp (also emacsclient.c [WINDOWSNT])
552 fdopen
553 fileno
554 fopen
555 fsync
556 ftruncate
557 getdefdir
558 getdisk
559 getpid
560 isatty
561 kill
562 link
563 lseek
564 mkdir
565 mktemp
566 open
567 pclose
568 pipe
569 popen
570 rename
571 rmdir
572 signal
573 sleep
574 spawnve
575 strdup
576 stricmp
577 strnicmp
578 strupr
579 sys_nerr
580 tzname
581 tzset
582 umask
583 unlink
584 utimbuf
585 utime
586 wait (also movemail.c [WINDOWSNT])
587 write
588
589 lib-src/ntlib:
590 access
591 chdir
592 chmod
593 creat
594 dup
595 dup2
596 execlp
597 execvp
598 fdopen
599 fileno
600 fopen
601 getpid
602 index
603 isatty
604 lseek
605 mkdir
606 mktemp
607 open
608 pclose
609 pipe
610 popen
611 rmdir
612 rindex
613 sleep
614 umask
615 unlink
616 utime