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