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