__CYGWIN__ Ditto
MSDOS Compiling the MS-DOS port.
__MSDOS__ Ditto.
-__DJGPP__ Major version number of the DJGPP library for the DOS port.
-__DJGPP_MINOR__ Minor version number of the DJGPP library.
-__GO32__ Compiling the DOS port with DJGPP v1.x (obsolete).
+__DJGPP_MINOR__ Minor version number of the DJGPP library; used only in msdos.c and dosfns.c.
DOS_NT Compiling for either the MS-DOS or native MS-Windows port.
WINDOWSNT Compiling the native MS-Windows (W32) port.
__MINGW32__ Compiling the W32 port with the MinGW port of GCC.
HAVE_NTGUI Use the native W32 GUI for windows, frames, menus&scrollbars.
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_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.
HAVE_X_WINDOWS Compile support for X Window system
-X11 ?? Makefile.in suggests it's equivalent to HAVE_X11
+ (It looks like, nowadays, if HAVE_X11 is set, HAVE_X_WINDOWS must
+ be, and vice versa. At least, this is true for configure, and
+ msdos; not sure about nt.)
USE_LUCID Use the Lucid toolkit for menus&scrollbars. Requires HAVE_X11.
USE_MOTIF Use the Motif toolkit for menus&scrollbars. Requires HAVE_X11.
USE_GTK Use the Gtk toolkit for menus&scrollbars. Requires HAVE_X11.
** 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 **
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.
+** System specific macros, decribed in detail in src/s/template.h
+CLASH_DETECTION
+COFF
+FIRST_PTY_LETTER
+HAVE_PTYS
+HAVE_TERMIO
+HAVE_TERMIOS
+INTERRUPT_INPUT
+NARROWPROTO
+SEPCHAR
+SIGTYPE
+SYSTEM_TYPE
+
+** Machine specific macros, decribed in detail in src/m/template.h
+EXPLICIT_SIGN_EXTEND
+LOAD_AVE_CVT
+LOAD_AVE_TYPE
+NO_REMAP
+VIRT_ADDR_VARIES
+WORDS_BIG_ENDIAN
+
+** 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.
AIX
AMPERSAND_FULL_NAME
-BCOPY_DOWNWARD_SAFE
-BCOPY_UPWARD_SAFE
BITS_PER_EMACS_INT
BITS_PER_LONG
+BITS_PER_CHAR
+BITS_PER_SHORT
+BITS_PER_INT
BROKEN_DATAGRAM_SOCKETS
BROKEN_FIONREAD
BROKEN_GET_CURRENT_DIR_NAME
BROKEN_SIGPTY
BSD4_2
BSD4_3
-BSD_PGRPS
BSD_SYSTEM
-BSTRING
-CANNOT_DUMP
CLASH_DETECTION
-COFF
-COFF_BSD_SYMBOLS
-CRT0_DUMMIES
-C_DEBUG_SWITCH
-C_SWITCH_MACHINE
-C_SWITCH_SYSTEM
-C_SWITCH_SYSTEM_TEMACS
-C_SWITCH_X_SYSTEM
DATA_SEG_BITS
DATA_START
DBL_MIN_REPLACEMENT
EMACS_CONFIG_OPTIONS
EMACS_INT
EMACS_UINT
-END_FILES_1
-EXPLICIT_SIGN_EXTEND
FILE_SYSTEM_CASE
-FIRST_PTY_LETTER
FLOAT_CHECK_DOMAIN
FSCALE
-GAP_USE_BCOPY
GC_LISP_OBJECT_ALIGNMENT
GC_MARK_SECONDARY_STACK
GC_MARK_STACK
GNU_LINUX
GNU_MALLOC
HAVE_AIX_SMT_EXP
-HAVE_ALLOCA
-HAVE_BCMP
-HAVE_BCOPY
HAVE_CBRT
HAVE_CLOSEDIR
-HAVE_CRTIN
HAVE_DUP2
HAVE_EUIDACCESS
HAVE_FMOD
HAVE_INDEX
HAVE_INET_SOCKETS
HAVE_INVERSE_HYPERBOLIC
-HAVE_LIB64_DIR
HAVE_LIBKSTAT
-HAVE_LIBNCURSES
-HAVE_LIBPTHREADS
-HAVE_LIBXMU
HAVE_LIMITS_H
HAVE_LINUX_VERSION_H
HAVE_LOGB
HAVE_MOUSE
HAVE_PERROR
HAVE_PSTAT_GETDYNAMIC
-HAVE_PTYS
HAVE_PWD_H
HAVE_RANDOM
HAVE_RENAME
HAVE_SYS_TIMEB_H
HAVE_SYS_TIME_H
HAVE_TCATTR
-HAVE_TERMIO
-HAVE_TERMIOS
HAVE_TERMIOS_H
HAVE_TEXT_START
HAVE_TIMEVAL
HAVE_WORKING_VFORK
HAVE_XRMSETDATABASE
HPUX
-IBMR2AIX
-INHIBIT_X11R6_XIM
INTERNAL_TERMINAL
-INTERRUPT_INPUT
IS_ANY_SEP
IS_DIRECTORY_SEP
KERNEL_FILE
LDAV_SYMBOL
-LD_SWITCH_MACHINE
-LD_SWITCH_MACHINE_TEMACS
-LD_SWITCH_SYSTEM
-LD_SWITCH_SYSTEM_TEMACS
-LD_SWITCH_SYSTEM_tmp
-LD_SWITCH_X_DEFAULT
-LIBS_DEBUG
-LIBS_MACHINE
-LIBS_SYSTEM
-LIBS_TERMCAP
-LIBX11_SYSTEM
-LIBXMU
-LIB_GCC
-LIB_MATH
-LIB_MOTIF
-LIB_STANDARD
LINKER
LINUX_VERSION_CODE
LISP_FLOAT_TYPE
LNOFLSH
-LOAD_AVE_CVT
-LOAD_AVE_TYPE
LOCALTIME_CACHE
MAIL_USE_FLOCK
MAIL_USE_LOCKF
MIN_PTY_KERNEL_VERSION -- only used on Mac
MODE_LINE_BINARY_TEXT
MUST_UNDEF__STDC__
-NARROWPROTO
-NEED_BSDTTY
-NEED_ERRNO
-NEED_LIBW
-NEED_UNISTD_H
NLIST_STRUCT
-NOMULTIPLEJOBS
-NOT_C_CODE
-NOT_USING_MOTIF
NO_ABORT
-NO_ARG_ARRAY
-NO_DIR_LIBRARY
NO_EDITRES
NO_MATHERR
-NO_REMAP
-NO_SHARED_LIBS
-NO_SOCK_SIGIO
NO_TERMIO
NSIG
NSIG_MINIMUM
NULL
NULL_DEVICE
ORDINARY_LINK
-OTHER_FILES
O_APPEND
-O_BINARY
-O_CREAT
-O_EXCL
O_RDONLY
O_RDWR
-O_TEXT
-O_TRUNC
-O_WRONLY
PAGESIZE
PENDING_OUTPUT_COUNT
POSIX
-POSIX_SIGNALS
PREFER_VSUSP
PTY_ITERATION
PTY_NAME_SPRINTF
PURESIZE
RUN_TIME_REMAP
SA_RESTART
-SECTION_ALIGNMENT
+SECTION_ALIGNMENT -- was only used by s/lynxos.h, maybe all code depending on it can be removed.
SEGMENT_MASK
-SEPCHAR
SETPGRP_RELEASES_CTTY
SETUP_SLAVE_PTY
SIGALRM
SIGTRAP
SIGTYPE
SOLARIS2
-START_FILES
-START_FILES_1
STDC_HEADERS
SYMS_SYSTEM
SYSTEM_PURESIZE_EXTRA
-SYSTEM_TYPE
SYSTEM_MALLOC
SYSV_SYSTEM_DIR
-Srandom
TAB3
TABDLY
TERM
-TERMINFO
TEXT_START
THIS_IS_CONFIGURE
-THIS_IS_MAKEFILE
TIME_WITH_SYS_TIME
TIOCSIGSEND
TM_IN_SYS_TIME
ULIMIT_BREAK_VALUE
-UNEXEC
UNIX98_PTYS
USE_CRT_DLL
-USE_MAC_IMAGE_IO
-USE_MMAP_FOR_BUFFERS
USE_TOOLKIT_SCROLL_BARS
USG
USG5
USG5_4
USG_SUBTTY_WORKS
VALBITS
-VIRT_ADDR_VARIES
WORDS_BIG_ENDIAN
WRETCODE
XINT
_WINSOCK_H
__ELF__
__FreeBSD__
-__FreeBSD_version
__GNUC__
__GNU_LIBRARY__
__GNUC_MINOR__
abort
access
alloca
-bcmp
-bcopy
brk
-bzero
calloc
chdir
chmod