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