1 Here are some of the cpp macros used, together with some short explanation
2 of their use. Feel free to add more macros and more categories.
3 Most of these are from config.in, so it's probably better to put the
4 explanations in that file. Ideally, everything would be defined and
5 documented in config.in, and this file would not be necessary.
8 ** Distinguishing OSes **
14 CYGWIN Compiling the Cygwin port.
19 MSDOS Compiling the MS-DOS port.
21 __DJGPP_MINOR__ Minor version number of the DJGPP library; used only in msdos.c and dosfns.c.
22 DOS_NT Compiling for either the MS-DOS or native MS-Windows port.
23 WINDOWSNT 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.
26 DARWIN_OS Compiling on Mac OS X or pure Darwin (and using s/darwin.h).
32 ** Distinguishing GUIs **
34 HAVE_NTGUI Use the native W32 GUI for windows, frames, menus&scrollbars.
35 HAVE_NS Use the NeXT/OpenStep/Cocoa UI under Mac OS X or GNUstep.
36 NS_IMPL_GNUSTEP Compile support for GNUstep implementation of NS GUI API.
37 NS_IMPL_COCOA Compile support for Cocoa (Apple) implementation of NS GUI API.
38 HAVE_X11 Compile support for the X11 GUI.
39 HAVE_X_WINDOWS Compile support for X Window system
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.)
43 USE_LUCID Use the Lucid toolkit for menus&scrollbars. Requires HAVE_X11.
44 USE_MOTIF Use the Motif toolkit for menus&scrollbars. Requires HAVE_X11.
45 USE_GTK Use the Gtk toolkit for menus&scrollbars. Requires HAVE_X11.
49 FRAME_TERMCAP_P A tty (character terminal) frame.
50 FRAME_X_P A frame on X Window system.
51 FRAME_MSDOS_P An MS-DOS frame (used only by the DOS port).
52 FRAME_W32_P A frame using native MS-Windows GUI.
53 FRAME_WINDOW_P A GUI frame (like X, w32, etc.)
55 ** Support for accessing other processes on the system **
57 HAVE_PROCFS The /proc filesystem is supported.
59 ** Compile-time options **
61 REL_ALLOC Compile in the relocatable memory allocator ralloc.c.
62 SYSTEM_MALLOC Use the system library's malloc.
63 subprocesses System can use subprocesses (for M-x shell for example).
64 Defined by default, only MSDOS undefines it.
65 DEBUG_LISP_OBJECT_TYPE Define it in lisp.h enable compile time checks
68 ** System specific macros
77 USER_FULL_NAME If defined, overrides the default pw->pw_gecos for
78 getting at the full user name. Only MSDOS overrides the default.
80 ** Miscellaneous defines. Some of these might not be used in the code
81 anymore, so they can be removed.
84 BROKEN_DATAGRAM_SOCKETS
86 BROKEN_GET_CURRENT_DIR_NAME
87 BROKEN_NON_BLOCKING_CONNECT
88 BROKEN_PTY_READ_AFTER_EAGAIN
110 GC_LISP_OBJECT_ALIGNMENT
111 GC_MARK_SECONDARY_STACK
114 GMALLOC_INHIBIT_VALLOC
134 HAVE_INVERSE_HYPERBOLIC
144 HAVE_PSTAT_GETDYNAMIC
162 HAVE_SYS_SYSTEMINFO_H
183 MODE_LINE_BINARY_TEXT
208 SETPGRP_RELEASES_CTTY
214 SIGNALS_VIA_CHARACTERS
219 SYSTEM_PURESIZE_EXTRA
231 USE_TOOLKIT_SCROLL_BARS