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 **
12 CYGWIN Compiling the Cygwin port.
17 MSDOS Compiling the MS-DOS port.
19 __DJGPP_MINOR__ Minor version number of the DJGPP library; used only in msdos.c and dosfns.c.
20 DOS_NT Compiling for either the MS-DOS or native MS-Windows port.
21 WINDOWSNT 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.
24 DARWIN_OS Compiling on Mac OS X or pure Darwin (and using s/darwin.h).
30 ** Distinguishing GUIs **
32 HAVE_NTGUI Use the native W32 GUI for windows, frames, menus&scrollbars.
33 HAVE_NS Use the NeXT/OpenStep/Cocoa UI under Mac OS X or GNUstep.
34 NS_IMPL_GNUSTEP Compile support for GNUstep implementation of NS GUI API.
35 NS_IMPL_COCOA Compile support for Cocoa (Apple) implementation of NS GUI API.
36 HAVE_X11 Compile support for the X11 GUI.
37 HAVE_X_WINDOWS Compile support for X Window system
38 (It looks like, nowadays, if HAVE_X11 is set, HAVE_X_WINDOWS must
39 be, and vice versa. At least, this is true for configure, and
40 msdos; not sure about nt.)
44 USE_LUCID Use the Lucid toolkit for menus&scrollbars. Requires HAVE_X11.
45 USE_MOTIF Use the Motif toolkit for menus&scrollbars. Requires HAVE_X11.
46 USE_GTK Use the Gtk toolkit for menus&scrollbars. Requires HAVE_X11.
50 FRAME_TERMCAP_P A tty (character terminal) frame.
51 FRAME_X_P A frame on X Window system.
52 FRAME_MSDOS_P An MS-DOS frame (used only by the DOS port).
53 FRAME_W32_P A frame using native MS-Windows GUI.
54 FRAME_WINDOW_P A GUI frame (like X, w32, etc.)
56 ** Support for accessing other processes on the system **
58 HAVE_PROCFS The /proc filesystem is supported.
60 ** Compile-time options **
62 REL_ALLOC Compile in the relocatable memory allocator ralloc.c.
63 SYSTEM_MALLOC Use the system library's malloc.
64 subprocesses System can use subprocesses (for M-x shell for example).
65 Defined by default, only MSDOS undefines it.
66 DEBUG_LISP_OBJECT_TYPE Define it in lisp.h enable compile time checks
69 ** System specific macros
78 USER_FULL_NAME If defined, overrides the default pw->pw_gecos for
79 getting at the full user name. Only MSDOS overrides the default.
81 ** Miscellaneous defines. Some of these might not be used in the code
82 anymore, so they can be removed.
85 BROKEN_DATAGRAM_SOCKETS
87 BROKEN_GET_CURRENT_DIR_NAME
88 BROKEN_NON_BLOCKING_CONNECT
89 BROKEN_PTY_READ_AFTER_EAGAIN
101 GC_MARK_SECONDARY_STACK
110 HAVE_ATTRIBUTE_ALIGNED
122 HAVE_DBUS_TYPE_IS_VALID
123 HAVE_DBUS_VALIDATE_BUS_NAME
124 HAVE_DBUS_VALIDATE_INTERFACE
125 HAVE_DBUS_VALIDATE_MEMBER
126 HAVE_DBUS_VALIDATE_PATH
127 HAVE_DBUS_WATCH_GET_UNIX_FD
129 HAVE_DECL_LOCALTIME_R
135 HAVE_DECL_SYS_SIGLIST
137 HAVE_DECL___SYS_SIGLIST
164 HAVE_GETOPT_LONG_ONLY
173 HAVE_GET_CURRENT_DIR_NAME
177 HAVE_GNUTLS_CALLBACK_CERTIFICATE_VERIFY
178 HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION
183 HAVE_GTK_ADJUSTMENT_GET_PAGE_SIZE
184 HAVE_GTK_DIALOG_GET_ACTION_AREA
185 HAVE_GTK_FILE_SELECTION_NEW
187 HAVE_GTK_MULTIDISPLAY
188 HAVE_GTK_ORIENTABLE_SET_ORIENTATION
189 HAVE_GTK_WIDGET_GET_MAPPED
190 HAVE_GTK_WIDGET_GET_SENSITIVE
191 HAVE_GTK_WIDGET_GET_WINDOW
192 HAVE_GTK_WIDGET_SET_HAS_WINDOW
193 HAVE_GTK_WINDOW_SET_HAS_RESIZE_GRIP
201 HAVE_KERBEROSIV_DES_H
202 HAVE_KERBEROSIV_KRB_H
205 HAVE_KRB5_ERROR_E_TEXT
209 HAVE_LANGINFO_CODESET
243 HAVE_MACHINE_SOUNDCARD_H
245 HAVE_MAGICKEXPORTIMAGEPIXELS
246 HAVE_MAGICKMERGEIMAGELAYERS
258 HAVE_MULTILINGUAL_MENU
263 HAVE_OTF_GET_VARIATION_GLYPHS
264 HAVE_PERSONALITY_LINUX32
270 HAVE_PSTAT_GETDYNAMIC
292 HAVE_SIGNED_${GLTYPE}
293 HAVE_SIGNED_SIG_ATOMIC_T
314 HAVE_STRUCT_ERA_ENTRY
315 HAVE_STRUCT_IFREQ_IFR_ADDR
316 HAVE_STRUCT_IFREQ_IFR_ADDR_SA_LEN
317 HAVE_STRUCT_IFREQ_IFR_BROADADDR
318 HAVE_STRUCT_IFREQ_IFR_FLAGS
319 HAVE_STRUCT_IFREQ_IFR_HWADDR
320 HAVE_STRUCT_IFREQ_IFR_NETMASK
321 HAVE_STRUCT_NLIST_N_UN_N_NAME
322 HAVE_STRUCT_STAT_ST_ATIMENSEC
323 HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC
324 HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC
325 HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC
326 HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC
327 HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC
328 HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC
330 HAVE_STRUCT_TM_TM_ZONE
344 HAVE_SYS_SYSTEMINFO_H
361 HAVE_UNSIGNED_LONG_LONG_INT
382 HAVE_XSCREENNUMBEROFSCREEN
383 HAVE_XSCREENRESOURCESTRING
390 HAVE___BUILTIN_UNWIND_INIT
391 HAVE___EXECUTABLE_START
416 SIGNALS_VIA_CHARACTERS
418 SYSTEM_PURESIZE_EXTRA
427 USE_TOOLKIT_SCROLL_BARS
475 srandom (conf_post.h may undo)
526 execvp (also emacsclient.c [WINDOWSNT])
561 wait (also movemail.c [WINDOWSNT])