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