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.
4 ** Distinguishing OSes **
6 CYGWIN Compiling the Cygwin port.
8 MSDOS Compiling the MS-DOS port.
10 __DJGPP_MINOR__ Minor version number of the DJGPP library; used only in msdos.c and dosfns.c.
11 DOS_NT Compiling for either the MS-DOS or native MS-Windows port.
12 WINDOWSNT Compiling the native MS-Windows (W32) port.
13 __MINGW32__ Compiling the W32 port with the MinGW port of GCC.
14 _MSC_VER Compiling the W32 port with the Microsoft C compiler.
15 DARWIN_OS Compiling on Mac OS X or pure Darwin (and using s/darwin.h).
17 ** Distinguishing GUIs **
19 HAVE_NTGUI Use the native W32 GUI for windows, frames, menus&scrollbars.
20 HAVE_NS Use the NeXT/OpenStep/Cocoa UI under Mac OS X or GNUstep.
21 NS_IMPL_GNUSTEP Compile support for GNUstep implementation of NS GUI API.
22 NS_IMPL_COCOA Compile support for Cocoa (Apple) implementation of NS GUI API.
23 HAVE_X11 Compile support for the X11 GUI.
24 HAVE_X_WINDOWS Compile support for X Window system
25 X11 ?? Makefile.in suggests it's equivalent to HAVE_X11
26 USE_LUCID Use the Lucid toolkit for menus&scrollbars. Requires HAVE_X11.
27 USE_MOTIF Use the Motif toolkit for menus&scrollbars. Requires HAVE_X11.
28 USE_GTK Use the Gtk toolkit for menus&scrollbars. Requires HAVE_X11.
32 FRAME_TERMCAP_P A tty (character terminal) frame.
33 FRAME_X_P A frame on X Window system.
34 FRAME_MSDOS_P An MS-DOS frame (used only by the DOS port).
35 FRAME_W32_P A frame using native MS-Windows GUI.
36 FRAME_WINDOW_P A GUI frame (like X, w32, etc.)
38 ** Support for accessing other processes on the system **
40 HAVE_PROCFS The /proc filesystem is supported.
42 ** Compile-time options **
44 REL_ALLOC Compile in the relocatable memory allocator ralloc.c.
45 SYSTEM_MALLOC Use the system library's malloc.
46 subprocesses System can use subprocesses (for M-x shell for example). Defined by default, only MSDOS undefines it.
47 USE_LISP_UNION_TYPE Define it in lisp.h to make Lisp_Object be a union type instead of the default int.
49 ** System specific macros, decribed in detail in src/s/template.h
65 ** Machine specific macros, decribed in detail in src/m/template.h
76 USER_FULL_NAME If defined, overrides the default pw->pw_gecos for getting at the full user name. Only MSDOS overrides the default.
78 ** Replace, the definition is trivial: SWITCH_ENUM_CAST
80 ** Defines from src/m/*.h and src/s/*.h. Some of these might not be used in the code anymore, so they can be removed. The HAVE_* definitions are probably handled by autoconf, so it might be possible to just remove them from src/[sm]/*.h.
89 BROKEN_DATAGRAM_SOCKETS
91 BROKEN_GET_CURRENT_DIR_NAME
92 BROKEN_NON_BLOCKING_CONNECT
93 BROKEN_PTY_READ_AFTER_EAGAIN
112 DECLARE_GETPWUID_WITH_UID_T
129 GC_LISP_OBJECT_ALIGNMENT
130 GC_MARK_SECONDARY_STACK
133 GMALLOC_INHIBIT_VALLOC
134 GNU_LIBRARY_PENDING_OUTPUT_COUNT
162 HAVE_INVERSE_HYPERBOLIC
178 HAVE_PSTAT_GETDYNAMIC
202 HAVE_SYS_SYSTEMINFO_H
227 LD_SWITCH_MACHINE_TEMACS
229 LD_SWITCH_SYSTEM_TEMACS
248 MIN_PTY_KERNEL_VERSION -- only used on Mac
249 MODE_LINE_BINARY_TEXT
290 SECTION_ALIGNMENT -- was only used by s/lynxos.h, maybe all code depending on it can be removed.
292 SETPGRP_RELEASES_CTTY
298 SIGNALS_VIA_CHARACTERS
308 SYSTEM_PURESIZE_EXTRA
327 USE_TOOLKIT_SCROLL_BARS
456 # arch-tag: bc80061a-1168-4911-9766-46aaf2640250