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 MAC_OS8 Compiling for Mac OS Classic (v8 or v9). No longer supported, all code using it can be removed.
7 MAC_OSX Compiling for Mac OS X. Not bare Darwin.
8 CYGWIN Compiling the Cygwin port.
10 MSDOS Compiling the MS-DOS port.
12 __DJGPP__ Major version number of the DJGPP library for the DOS port.
13 __DJGPP_MINOR__ Minor version number of the DJGPP library.
14 __GO32__ Compiling the DOS port with DJGPP v1.x (obsolete).
15 DOS_NT Compiling for either the MS-DOS or native MS-Windows port.
16 WINDOWSNT Compiling the native MS-Windows (W32) port.
17 __MINGW32__ Compiling the W32 port with the MinGW port of GCC.
18 _MSC_VER Compiling the W32 port with the Microsoft C compiler.
19 IRIX6_5 Compiling on Irix-6.5
20 USE_LISP_UNION_TYPE Define it in lisp.h to make Lisp_Object be a union type instead of the default int.
22 ** Distinguishing GUIs **
24 HAVE_NTGUI Use the native W32 GUI for windows, frames, menus&scrollbars.
25 MAC_OS Compiling for the `mac' window-system.
26 HAVE_CARBON Compile support for the Carbon GUI. Requires MAC_OS?
27 HAVE_NS Use the NeXT/OpenStep/Cocoa UI under Mac OS X or GNUstep.
28 NS_IMPL_GNUSTEP Compile support for GNUSTEP implementation of NS GUI API.
29 NS_IMPL_COCOA Compile support for Cocoa (Apple) implementation of NS GUI API.
30 HAVE_X11 Compile support for the X11 GUI.
31 HAVE_X_WINDOWS Compile support for X Window system
32 X11 ?? Makefile.in suggests it's equivalent to HAVE_X11
33 USE_LUCID Use the Lucid toolkit for menus&scrollbars. Requires HAVE_X11.
34 USE_MOTIF Use the Motif toolkit for menus&scrollbars. Requires HAVE_X11.
35 USE_GTK Use the Gtk toolkit for menus&scrollbars. Requires HAVE_X11.
39 FRAME_TERMCAP_P A tty (character terminal) frame.
40 FRAME_X_P A frame on X Window system.
41 FRAME_MSDOS_P An MS-DOS frame (used only by the DOS port).
42 FRAME_MAC_P A Mac frame.
43 FRAME_W32_P A frame using native MS-Windows GUI.
44 FRAME_WINDOW_P A GUI frame (like X, w32, etc.)
46 ** Compile-time options **
47 REL_ALLOC Compile in the relocatable memory allocator ralloc.c.
48 SYSTEM_MALLOC Use the system library's malloc.
50 ** Replace, the definition is trivial: SWITCH_ENUM_CAST
52 ** 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.
65 BROKEN_DATAGRAM_SOCKETS
67 BROKEN_GET_CURRENT_DIR_NAME
68 BROKEN_NON_BLOCKING_CONNECT
69 BROKEN_PTY_READ_AFTER_EAGAIN
88 C_SWITCH_SYSTEM_TEMACS
94 DECLARE_GETPWUID_WITH_UID_T
115 GC_LISP_OBJECT_ALIGNMENT
116 GC_MARK_SECONDARY_STACK
120 GMALLOC_INHIBIT_VALLOC
121 GNU_LIBRARY_PENDING_OUTPUT_COUNT
126 HAVE_AVAILABILITYMACROS_H
150 HAVE_INVERSE_HYPERBOLIC
166 HAVE_PSTAT_GETDYNAMIC
191 HAVE_SYS_SYSTEMINFO_H
221 LD_SWITCH_MACHINE_TEMACS
225 LD_SWITCH_SYSTEM_TEMACS
256 MIN_PTY_KERNEL_VERSION -- only used on Mac
257 MODE_LINE_BINARY_TEXT
267 NONSYSTEM_DIR_LIBRARY
273 NO_HYPHENS_IN_FILENAMES
315 SETPGRP_RELEASES_CTTY
322 SIGNALS_VIA_CHARACTERS
332 SYSTEM_PURESIZE_EXTRA
354 USE_TOOLKIT_SCROLL_BARS
487 # arch-tag: bc80061a-1168-4911-9766-46aaf2640250