** Distinguishing OSes **
-MAC_OS8 Compiling for Mac OS Classic (v8 or v9). No longer supported, all code using it can be removed.
-MAC_OSX Compiling for Mac OS X. Not bare Darwin.
CYGWIN Compiling the Cygwin port.
__CYGWIN__ Ditto
MSDOS Compiling the MS-DOS port.
WINDOWSNT Compiling the native MS-Windows (W32) port.
__MINGW32__ Compiling the W32 port with the MinGW port of GCC.
_MSC_VER Compiling the W32 port with the Microsoft C compiler.
-IRIX6_5 Compiling on Irix-6.5
-USE_LISP_UNION_TYPE Define it in lisp.h to make Lisp_Object be a union type instead of the default int.
+DARWIN_OS Compiling on Mac OS X or pure Darwin (and using s/darwin.h).
** Distinguishing GUIs **
HAVE_NTGUI Use the native W32 GUI for windows, frames, menus&scrollbars.
-MAC_OS Compiling for the `mac' window-system.
-HAVE_CARBON Compile support for the Carbon GUI. Requires MAC_OS?
-HAVE_NS Use the NeXT/OpenStep/Cocoa UI under Mac OS X or GNUstep.
+HAVE_NS Use the NeXT/OpenStep/Cocoa UI under Mac OS X or GNUstep.
NS_IMPL_GNUSTEP Compile support for GNUSTEP implementation of NS GUI API.
NS_IMPL_COCOA Compile support for Cocoa (Apple) implementation of NS GUI API.
HAVE_X11 Compile support for the X11 GUI.
FRAME_TERMCAP_P A tty (character terminal) frame.
FRAME_X_P A frame on X Window system.
FRAME_MSDOS_P An MS-DOS frame (used only by the DOS port).
-FRAME_MAC_P A Mac frame.
FRAME_W32_P A frame using native MS-Windows GUI.
FRAME_WINDOW_P A GUI frame (like X, w32, etc.)
+** Support for accessing other processes on the system **
+
+HAVE_PROCFS The /proc filesystem is supported.
+LISTPROC A function that returns a list of PIDs of system processes.
+PROCATTR A function that returns attributes of a process.
+
** Compile-time options **
+
REL_ALLOC Compile in the relocatable memory allocator ralloc.c.
SYSTEM_MALLOC Use the system library's malloc.
+subprocesses System can use subprocesses (for M-x shell for example). Defined by default, only MSDOS undefines it.
+USE_LISP_UNION_TYPE Define it in lisp.h to make Lisp_Object be a union type instead of the default int.
+
+** Misc macros
+USER_FULL_NAME If defined, overrides the default pw->pw_gecos for getting at the full user name. Only MSDOS overrides the default.
** Replace, the definition is trivial: SWITCH_ENUM_CAST
** 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.
-ADDR_CORRECT
-ADJUST_EXEC_HEADER
AIX
AMPERSAND_FULL_NAME
-A_TEXT_OFFSET
-A_TEXT_SEEK
-BAUD_CONVERT
BCOPY_DOWNWARD_SAFE
BCOPY_UPWARD_SAFE
BITS_PER_EMACS_INT
C_SWITCH_SYSTEM
C_SWITCH_SYSTEM_TEMACS
C_SWITCH_X_SYSTEM
-DATA_END
DATA_SEG_BITS
DATA_START
DBL_MIN_REPLACEMENT
DECLARE_GETPWUID_WITH_UID_T
-DEFAULT_ENTRY_ADDRESS
DEFAULT_SOUND_DEVICE
DEVICE_SEP
DIRECTORY_SEP
DONT_REOPEN_PTY
-DOT_GLOBAL_START
DOUG_LEA_MALLOC
DebPrint
EMACSDEBUG
FIRST_PTY_LETTER
FLOAT_CHECK_DOMAIN
FSCALE
-Fread
GAP_USE_BCOPY
GC_LISP_OBJECT_ALIGNMENT
GC_MARK_SECONDARY_STACK
GC_MARK_STACK
GC_SETJMP_WORKS
-GETPGRP_NO_ARG
GMALLOC_INHIBIT_VALLOC
GNU_LIBRARY_PENDING_OUTPUT_COUNT
GNU_LINUX
GNU_MALLOC
HAVE_AIX_SMT_EXP
HAVE_ALLOCA
-HAVE_AVAILABILITYMACROS_H
HAVE_BCMP
HAVE_BCOPY
HAVE_CBRT
HAVE_STRING_H
HAVE_STRUCT_UTIMBUF
HAVE_SYSINFO
-HAVE_SYSVIPC
HAVE_SYSV_SIGPAUSE
HAVE_SYS_SELECT_H
HAVE_SYS_SYSTEMINFO_H
INHIBIT_X11R6_XIM
INTERNAL_TERMINAL
INTERRUPT_INPUT
-IRIS
-IRIS_4D
IS_ANY_SEP
IS_DIRECTORY_SEP
KERNEL_FILE
LDAV_SYMBOL
LD_SWITCH_MACHINE
LD_SWITCH_MACHINE_TEMACS
-LD_SWITCH_SITE
LD_SWITCH_SYSTEM
-LD_SWITCH_SYSTEM_1
LD_SWITCH_SYSTEM_TEMACS
LD_SWITCH_SYSTEM_tmp
LD_SWITCH_X_DEFAULT
-LIBS_CARBON
LIBS_DEBUG
-LIBS_IMAGE
LIBS_MACHINE
LIBS_SYSTEM
LIBS_TERMCAP
LIB_MATH
LIB_MOTIF
LIB_STANDARD
-LIB_STANDARD_LIBSRC
LINKER
-LINK_CRTL_SHARE
-LINUX_SBRK_BUG
+LINUX_VERSION_CODE
LISP_FLOAT_TYPE
LNOFLSH
LOAD_AVE_CVT
MAIL_USE_POP
MAIL_USE_SYSTEM_LOCK
MAXPATHLEN
-MAX_PRINT_CHARS
MIN_PTY_KERNEL_VERSION -- only used on Mac
MODE_LINE_BINARY_TEXT
-MULTI_KBOARD
MUST_UNDEF__STDC__
NARROWPROTO
NEED_BSDTTY
NEED_ERRNO
NEED_LIBW
-NEED_PTEM_H
NEED_UNISTD_H
NLIST_STRUCT
NOMULTIPLEJOBS
-NONSYSTEM_DIR_LIBRARY
NOT_C_CODE
NOT_USING_MOTIF
NO_ABORT
NO_ARG_ARRAY
+NO_DIR_LIBRARY
NO_EDITRES
-NO_HYPHENS_IN_FILENAMES
NO_MATHERR
NO_REMAP
NO_SHARED_LIBS
-NO_SIOCTL_H
NO_SOCK_SIGIO
NO_TERMIO
NSIG
NSIG_MINIMUM
NULL
NULL_DEVICE
-N_BADMAG
-N_SYMOFF
-N_TRELOFF
-N_TXTOFF
ORDINARY_LINK
OTHER_FILES
O_APPEND
O_WRONLY
PAGESIZE
PENDING_OUTPUT_COUNT
-PNTR_COMPARISON_TYPE
POSIX
POSIX_SIGNALS
PREFER_VSUSP
PTY_OPEN
PTY_TTY_NAME_SPRINTF
PURESIZE
-PURE_SEG_BITS
RUN_TIME_REMAP
SA_RESTART
SECTION_ALIGNMENT
SEPCHAR
SETPGRP_RELEASES_CTTY
SETUP_SLAVE_PTY
-SHARABLE_LIB_BUG
SIGALRM
SIGCHLD
SIGHUP
SIGKILL
SIGNALS_VIA_CHARACTERS
-SIGN_EXTEND_CHAR
SIGPIPE
SIGQUIT
SIGTRAP
SYMS_SYSTEM
SYSTEM_PURESIZE_EXTRA
SYSTEM_TYPE
+SYSTEM_MALLOC
SYSV_SYSTEM_DIR
-S_IFLNK
Srandom
TAB3
TABDLY
TERM
TERMINFO
-TEXT_END
TEXT_START
THIS_IS_CONFIGURE
THIS_IS_MAKEFILE
USG
USG5
USG5_4
-USG_SHARED_LIBRARIES
USG_SUBTTY_WORKS
VALBITS
VIRT_ADDR_VARIES
-VMS
WORDS_BIG_ENDIAN
WRETCODE
XINT
__FreeBSD__
__FreeBSD_version
__GNUC__
+__GNU_LIBRARY__
+__GNUC_MINOR__
__NetBSD__
__OpenBSD__
__STDC__
etext
execlp
execvp
-fcloseall
fdopen
-fgetchar
fileno
-flushall
fopen
-fputchar
free
fsync
ftruncate
getenv
getpid
getuid
-getw
gmtime
i386
index
lseek
m68k
malloc
-mips
mkdir
mktemp
open
pclose
pipe
popen
-putw
random
read
realloc
sleep
spawnve
srandom
-static
strdup
strerror
stricmp
strnicmp
strupr
-subprocesses
-sun
sys_nerr
system
temacs