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