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