537 lines
10 KiB
Plaintext
537 lines
10 KiB
Plaintext
Here are some of the cpp macros used, together with some short explanation
|
|
of their use. Feel free to add more macros and more categories.
|
|
Most of these are from config.in, so it's probably better to put the
|
|
explanations in that file. Ideally, everything would be defined and
|
|
documented in config.in, and this file would not be necessary.
|
|
|
|
|
|
** Distinguishing OSes **
|
|
|
|
AIX
|
|
_AIX
|
|
CYGWIN Compiling the Cygwin port.
|
|
__CYGWIN__ Ditto
|
|
GNU_LINUX
|
|
HPUX
|
|
MSDOS Compiling the MS-DOS port.
|
|
__MSDOS__ Ditto.
|
|
__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 or MinGW-w64 ports of GCC.
|
|
MINGW_W64 Compiling the W32 port with the MinGW-w64 port of GCC.
|
|
DARWIN_OS Compiling on macOS or pure Darwin (and using s/darwin.h).
|
|
SOLARIS2
|
|
USG
|
|
USG5_4
|
|
HAIKU Compiling on Haiku.
|
|
__ANDROID__ Compiling for the Android operating system.
|
|
__ANDROID_API__ A numerical "API level" indicating the version of
|
|
Android being compiled for; see http://apilevels.com.
|
|
|
|
** Distinguishing GUIs **
|
|
|
|
HAVE_NTGUI Use the native W32 GUI for windows, frames, menus&scrollbars.
|
|
HAVE_NS Use the NeXT/OpenStep/Cocoa UI under macOS 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.
|
|
HAVE_PGTK Compile support for using GTK itself without directly using X Windows APIs.
|
|
HAVE_HAIKU Compile support for the Haiku window system.
|
|
HAVE_X_WINDOWS Compile support for X Window system. Equivalent to HAVE_X11.
|
|
HAVE_ANDROID Compiling the Android GUI interface. Enough of this
|
|
code is compiled for the build machine cross-compiling
|
|
the Android port to produce an Emacs binary that can
|
|
run Lisp code in batch mode, for the purpose of running
|
|
the byte-compiler.
|
|
ANDROID_STUBIFY The Android GUI interface is being compiled for the build
|
|
machine, as above.
|
|
|
|
** X Windows features **
|
|
HAVE_X11R6 Whether or not the system has X11R6. (Always defined.)
|
|
HAVE_X11R6_XIM Whether or not the system supports XIM features introduced in R6.
|
|
HAVE_X11XTR6 Whether or not the Xt is from X11R6 or newer.
|
|
|
|
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 or HAVE_PGTK.
|
|
HAVE_GTK3 Use GTK version 3 or later. Requires HAVE_X11.
|
|
|
|
HAVE_XCB_SHAPE Whether or not XCB supports the Nonrectangular Window Shape extension.
|
|
HAVE_XCOMPOSITE Whether or not the XCOMPOSITE extension library is present.
|
|
HAVE_XDBE Whether or not to use the Xdbe extension for double buffering.
|
|
HAVE_XFIXES Whether or not the Xfixes extension library is present.
|
|
HAVE_XINERAMA Whether or not the Xinerama extension library is present.
|
|
HAVE_XINPUT2 Whether or not to use version 2 of the X Input Extension for input.
|
|
HAVE_XINPUT2_1 Whether or not version 2.1 of the X Input Extension is supported.
|
|
HAVE_XINPUT2_2 Whether or not version 2.2 of the X Input Extension is supported.
|
|
HAVE_XINPUT2_3 Whether or not version 2.3 of the X Input Extension is supported.
|
|
HAVE_XINPUT2_4 Whether or not version 2.4 of the X Input Extension is supported.
|
|
HAVE_XKB Whether or not the XKB extension library is present.
|
|
HAVE_XRANDR Whether or not the RandR extension library is present.
|
|
HAVE_XSHAPE Whether or not the Nonrectangular Window Shape extension library is present.
|
|
HAVE_XSYNC Whether or not the X Synchronization Extension library is present.
|
|
USE_XCB Whether or not the XCB library is used to optimize some X requests.
|
|
|
|
** Frame types **
|
|
|
|
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_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.
|
|
|
|
** 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.
|
|
DEBUG_LISP_OBJECT_TYPE Define it in lisp.h enable compile time checks
|
|
on Lisp_Object use.
|
|
|
|
** System specific macros
|
|
FIRST_PTY_LETTER
|
|
HAVE_PTYS
|
|
INTERRUPT_INPUT
|
|
NARROWPROTO
|
|
SEPCHAR
|
|
SYSTEM_TYPE
|
|
|
|
** 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.
|
|
|
|
** Miscellaneous defines. Some of these might not be used in the code
|
|
anymore, so they can be removed.
|
|
|
|
AMPERSAND_FULL_NAME
|
|
BROKEN_DATAGRAM_SOCKETS
|
|
BROKEN_GET_CURRENT_DIR_NAME
|
|
BROKEN_PTY_READ_AFTER_EAGAIN
|
|
DEFAULT_SOUND_DEVICE
|
|
DEVICE_SEP
|
|
DIRECTORY_SEP
|
|
DONT_REOPEN_PTY
|
|
DOUG_LEA_MALLOC
|
|
EMACS_CONFIGURATION
|
|
EMACS_CONFIG_OPTIONS
|
|
EMACS_INT
|
|
EMACS_UINT
|
|
GC_MARK_SECONDARY_STACK
|
|
GC_SETJMP_WORKS
|
|
GNU_MALLOC
|
|
HAVE_ALLOCA
|
|
HAVE_ALLOCA_H
|
|
HAVE_ALSA
|
|
HAVE_BDFFONT
|
|
HAVE_CFMAKERAW
|
|
HAVE_CFSETSPEED
|
|
HAVE_CLOCK_GETTIME
|
|
HAVE_CLOCK_SETTIME
|
|
HAVE_COFF_H
|
|
HAVE_COM_ERR_H
|
|
HAVE_DBUS
|
|
HAVE_DBUS_TYPE_IS_VALID
|
|
HAVE_DBUS_VALIDATE_BUS_NAME
|
|
HAVE_DBUS_VALIDATE_INTERFACE
|
|
HAVE_DBUS_VALIDATE_MEMBER
|
|
HAVE_DBUS_VALIDATE_PATH
|
|
HAVE_DBUS_WATCH_GET_UNIX_FD
|
|
HAVE_DECL_LOCALTIME_R
|
|
HAVE_DECL_STRMODE
|
|
HAVE_DECL_STRTOIMAX
|
|
HAVE_DECL_STRTOLL
|
|
HAVE_DECL_STRTOULL
|
|
HAVE_DECL_STRTOUMAX
|
|
HAVE_DECL_TZNAME
|
|
HAVE_DIALOGS
|
|
HAVE_ENDGRENT
|
|
HAVE_ENDPWENT
|
|
HAVE_ENVIRON_DECL
|
|
HAVE_EUIDACCESS
|
|
HAVE_FORK
|
|
HAVE_FREEIFADDRS
|
|
HAVE_FREETYPE
|
|
HAVE_FSEEKO
|
|
HAVE_FUTIMENS
|
|
HAVE_FUTIMES
|
|
HAVE_FUTIMESAT
|
|
HAVE_GAI_STRERROR
|
|
HAVE_GCONF
|
|
HAVE_GETGRENT
|
|
HAVE_GETHOSTNAME
|
|
HAVE_GETIFADDRS
|
|
HAVE_GETLOADAVG
|
|
HAVE_GETOPT_H
|
|
HAVE_GETOPT_LONG_ONLY
|
|
HAVE_GETPAGESIZE
|
|
HAVE_GETPT
|
|
HAVE_GETPWENT
|
|
HAVE_GETRLIMIT
|
|
HAVE_GETRUSAGE
|
|
HAVE_GETSOCKNAME
|
|
HAVE_GETTIMEOFDAY
|
|
HAVE_GET_CURRENT_DIR_NAME
|
|
HAVE_GHOSTSCRIPT
|
|
HAVE_GIF
|
|
HAVE_GNUTLS
|
|
HAVE_GPM
|
|
HAVE_GRANTPT
|
|
HAVE_GSETTINGS
|
|
HAVE_GTK3
|
|
HAVE_GTK_FILE_SELECTION_NEW
|
|
HAVE_GTK_WINDOW_SET_HAS_RESIZE_GRIP
|
|
HAVE_IFADDRS_H
|
|
HAVE_IMAGEMAGICK
|
|
HAVE_INTTYPES_H
|
|
HAVE_JPEG
|
|
HAVE_KERBEROSIV_KRB_H
|
|
HAVE_KERBEROS_KRB_H
|
|
HAVE_KRB5_ERROR_E_TEXT
|
|
HAVE_KRB5_ERROR_TEXT
|
|
HAVE_KRB5_H
|
|
HAVE_KRB_H
|
|
HAVE_LANGINFO_CODESET
|
|
HAVE_LIBDGC
|
|
HAVE_LIBKSTAT
|
|
HAVE_LIBLOCKFILE
|
|
HAVE_LIBMAIL
|
|
HAVE_LIBOTF
|
|
HAVE_LIBPERFSTAT
|
|
HAVE_LIBSELINUX
|
|
HAVE_LIBXML2
|
|
HAVE_LOCALTIME_R
|
|
HAVE_LOCAL_SOCKETS
|
|
HAVE_LRAND48
|
|
HAVE_LSTAT
|
|
HAVE_LUTIMES
|
|
HAVE_M17N_FLT
|
|
HAVE_MACHINE_SOUNDCARD_H
|
|
HAVE_MACH_MACH_H
|
|
HAVE_MAGICKEXPORTIMAGEPIXELS
|
|
HAVE_MAGICKMERGEIMAGELAYERS
|
|
HAVE_MAILLOCK_H
|
|
HAVE_MALLOC_MALLOC_H
|
|
HAVE_MBSTATE_T
|
|
HAVE_MEMORY_H
|
|
HAVE_MEMSET
|
|
HAVE_MKSTEMP
|
|
HAVE_MMAP
|
|
HAVE_MULTILINGUAL_MENU
|
|
HAVE_NET_IF_DL_H
|
|
HAVE_NET_IF_H
|
|
HAVE_NLIST_H
|
|
HAVE_OTF_GET_VARIATION_GLYPHS
|
|
HAVE_PERSONALITY_ADDR_NO_RANDOMIZE
|
|
HAVE_PNG
|
|
HAVE_POSIX_MEMALIGN
|
|
HAVE_PROCFS
|
|
HAVE_PSELECT
|
|
HAVE_PSTAT_GETDYNAMIC
|
|
HAVE_PTHREAD
|
|
HAVE_PTHREAD_H
|
|
HAVE_PTHREAD_SIGMASK
|
|
HAVE_PTYS
|
|
HAVE_PTY_H
|
|
HAVE_PWD_H
|
|
HAVE_RANDOM
|
|
HAVE_READLINK
|
|
HAVE_READLINKAT
|
|
HAVE_RECVFROM
|
|
HAVE_RINT
|
|
HAVE_RSVG
|
|
HAVE_SELECT
|
|
HAVE_SENDTO
|
|
HAVE_SEQPACKET
|
|
HAVE_SETITIMER
|
|
HAVE_SETLOCALE
|
|
HAVE_SETRLIMIT
|
|
HAVE_SHARED_GAME_DIR
|
|
HAVE_SHUTDOWN
|
|
HAVE_SIGNED_${GLTYPE}
|
|
HAVE_SIGNED_SIG_ATOMIC_T
|
|
HAVE_SIGNED_WCHAR_T
|
|
HAVE_SIGNED_WINT_T
|
|
HAVE_SIGSET_T
|
|
HAVE_SNPRINTF
|
|
HAVE_SOCKETS
|
|
HAVE_SOUND
|
|
HAVE_SOUNDCARD_H
|
|
HAVE_STDINT_H
|
|
HAVE_STDIO_EXT_H
|
|
HAVE_STDLIB_H
|
|
HAVE_STRINGS_H
|
|
HAVE_STRING_H
|
|
HAVE_STRSIGNAL
|
|
HAVE_STRTOIMAX
|
|
HAVE_STRTOLL
|
|
HAVE_STRTOULL
|
|
HAVE_STRUCT_ERA_ENTRY
|
|
HAVE_STRUCT_IFREQ_IFR_ADDR
|
|
HAVE_STRUCT_IFREQ_IFR_ADDR_SA_LEN
|
|
HAVE_STRUCT_IFREQ_IFR_BROADADDR
|
|
HAVE_STRUCT_IFREQ_IFR_FLAGS
|
|
HAVE_STRUCT_IFREQ_IFR_HWADDR
|
|
HAVE_STRUCT_IFREQ_IFR_NETMASK
|
|
HAVE_STRUCT_NLIST_N_UN_N_NAME
|
|
HAVE_STRUCT_STAT_ST_ATIMENSEC
|
|
HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC
|
|
HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC
|
|
HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC
|
|
HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC
|
|
HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC
|
|
HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC
|
|
HAVE_STRUCT_TM_TM_ZONE
|
|
HAVE_ST_DM_MODE
|
|
HAVE_SYMLINK
|
|
HAVE_SYNC
|
|
HAVE_SYS_BITYPES_H
|
|
HAVE_SYS_INTTYPES_H
|
|
HAVE_SYS_LOADAVG_H
|
|
HAVE_SYS_PARAM_H
|
|
HAVE_SYS_RESOURCE_H
|
|
HAVE_SYS_SELECT_H
|
|
HAVE_SYS_SOCKET_H
|
|
HAVE_SYS_SOUNDCARD_H
|
|
HAVE_SYS_STAT_H
|
|
HAVE_SYS_SYSTEMINFO_H
|
|
HAVE_SYS_TIME_H
|
|
HAVE_SYS_TYPES_H
|
|
HAVE_SYS_UN_H
|
|
HAVE_SYS_UTSNAME_H
|
|
HAVE_SYS_VLIMIT_H
|
|
HAVE_SYS_WAIT_H
|
|
HAVE_TERM_H
|
|
HAVE_TIFF
|
|
HAVE_TM_GMTOFF
|
|
HAVE_TM_ZONE
|
|
HAVE_TOUCHLOCK
|
|
HAVE_TZNAME
|
|
HAVE_UTIL_H
|
|
HAVE_UTIMENSAT
|
|
HAVE_UTMP_H
|
|
HAVE_VFORK
|
|
HAVE_VFORK_H
|
|
HAVE_WEBP
|
|
HAVE_SQLITE3
|
|
HAVE_WCHAR_H
|
|
HAVE_WCHAR_T
|
|
HAVE_WINDOW_SYSTEM
|
|
HAVE_WINSOCK2_H
|
|
HAVE_WORKING_FORK
|
|
HAVE_WORKING_UTIMES
|
|
HAVE_WORKING_VFORK
|
|
HAVE_WS2TCPIP_H
|
|
HAVE_XAW3D
|
|
HAVE_XFT
|
|
HAVE_XIM
|
|
HAVE_XPM
|
|
HAVE_XRMSETDATABASE
|
|
HAVE_XSCREENNUMBEROFSCREEN
|
|
HAVE_XSCREENRESOURCESTRING
|
|
HAVE_X_I18N
|
|
HAVE_X_SM
|
|
HAVE_X_WINDOWS
|
|
HAVE___BUILTIN_UNWIND_INIT
|
|
HAVE___EXECUTABLE_START
|
|
INTERNAL_TERMINAL
|
|
IS_ANY_SEP
|
|
IS_DIRECTORY_SEP
|
|
MAIL_USE_FLOCK
|
|
MAIL_USE_LOCKF
|
|
MAIL_USE_POP
|
|
MAIL_USE_SYSTEM_LOCK
|
|
MAXPATHLEN
|
|
NLIST_STRUCT
|
|
NSIG
|
|
NSIG_MINIMUM
|
|
NULL_DEVICE
|
|
PAGESIZE
|
|
PTY_ITERATION
|
|
PTY_NAME_SPRINTF
|
|
PTY_OPEN
|
|
PTY_TTY_NAME_SPRINTF
|
|
PURESIZE
|
|
RUN_TIME_REMAP
|
|
SETUP_SLAVE_PTY
|
|
SIGNALS_VIA_CHARACTERS
|
|
STDC_HEADERS
|
|
SYSTEM_PURESIZE_EXTRA
|
|
SYSTEM_MALLOC
|
|
TAB3
|
|
TABDLY
|
|
TERM
|
|
TIOCSIGSEND
|
|
TM_IN_SYS_TIME
|
|
UNIX98_PTYS
|
|
USE_TOOLKIT_SCROLL_BARS
|
|
USG_SUBTTY_WORKS
|
|
VALBITS
|
|
XOS_NEEDS_TIME_H
|
|
_FILE_OFFSET_BITS
|
|
_LP64
|
|
_longjmp
|
|
_setjmp
|
|
abort
|
|
alloca
|
|
close
|
|
emacs
|
|
free
|
|
gmtime
|
|
localtime
|
|
malloc
|
|
random
|
|
read
|
|
realloc
|
|
select
|
|
umask
|
|
vfork
|
|
|
|
|
|
src/sysdep.c:
|
|
write
|
|
|
|
src/syssignal.h:
|
|
signal
|
|
sigmask
|
|
sigsetmask
|
|
|
|
|
|
lib/dup2.c:
|
|
dup2
|
|
|
|
lib/signal.h:
|
|
signal
|
|
|
|
lib/stdio.h:
|
|
fdopen
|
|
fopen
|
|
fwrite
|
|
popen
|
|
rename
|
|
|
|
lib/stdlib.h:
|
|
calloc
|
|
srandom (conf_post.h may undo)
|
|
|
|
lib/strftime.c:
|
|
tzname
|
|
tzset
|
|
|
|
lib/sys/stat.h:
|
|
mkdir
|
|
|
|
lib/unistd.h:
|
|
chown
|
|
dup
|
|
dup2
|
|
ftruncate
|
|
isatty
|
|
link
|
|
lseek
|
|
pipe
|
|
rmdir
|
|
sleep
|
|
unlink
|
|
|
|
|
|
MS DOS stuff:
|
|
|
|
_NAIVE_DOS_REGS
|
|
|
|
|
|
MS stuff:
|
|
|
|
USE_CRT_DLL
|
|
|
|
ms-w32.h:
|
|
DebPrint
|
|
EMACSDEBUG
|
|
MUST_UNDEF__STDC__
|
|
|
|
_VARARGS_
|
|
_WINSOCKAPI_
|
|
_WINSOCK_H
|
|
|
|
access
|
|
calloc
|
|
chdir
|
|
chmod
|
|
chown
|
|
creat
|
|
ctime
|
|
dup
|
|
dup2
|
|
execlp
|
|
execvp (also emacsclient.c [WINDOWSNT])
|
|
fdopen
|
|
fileno
|
|
fopen
|
|
fsync
|
|
ftruncate
|
|
getdefdir
|
|
getdisk
|
|
getpid
|
|
isatty
|
|
kill
|
|
link
|
|
lseek
|
|
mkdir
|
|
mktemp
|
|
open
|
|
pclose
|
|
pipe
|
|
popen
|
|
rename
|
|
rmdir
|
|
signal
|
|
sleep
|
|
spawnve
|
|
strdup
|
|
stricmp
|
|
strnicmp
|
|
strupr
|
|
sys_nerr
|
|
tzname
|
|
tzset
|
|
umask
|
|
unlink
|
|
utimbuf
|
|
utime
|
|
wait (also movemail.c [WINDOWSNT])
|
|
write
|
|
|
|
lib-src/ntlib:
|
|
access
|
|
chdir
|
|
chmod
|
|
creat
|
|
dup
|
|
dup2
|
|
execlp
|
|
execvp
|
|
fdopen
|
|
fileno
|
|
fopen
|
|
getpid
|
|
index
|
|
isatty
|
|
lseek
|
|
mkdir
|
|
mktemp
|
|
open
|
|
pclose
|
|
pipe
|
|
popen
|
|
rmdir
|
|
rindex
|
|
sleep
|
|
umask
|
|
unlink
|
|
utime
|