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