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