* lisp/emacs-lisp/pcase.el (pcase--expand): Warn for unused pattern.
[emacs.git] / admin / CPP-DEFINES
blobe032ef87a40027a212abf63f2e13b5c27978b837
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 CYGWIN          Compiling the Cygwin port.
7 __CYGWIN__      Ditto
8 MSDOS           Compiling the MS-DOS port.
9 __MSDOS__       Ditto.
10 __DJGPP_MINOR__ Minor version number of the DJGPP library; used only in msdos.c and dosfns.c.
11 DOS_NT          Compiling for either the MS-DOS or native MS-Windows port.
12 WINDOWSNT       Compiling the native MS-Windows (W32) port.
13 __MINGW32__     Compiling the W32 port with the MinGW port of GCC.
14 _MSC_VER        Compiling the W32 port with the Microsoft C compiler.
15 DARWIN_OS       Compiling on Mac OS X or pure Darwin (and using s/darwin.h).
17 ** Distinguishing GUIs **
19 HAVE_NTGUI      Use the native W32 GUI for windows, frames, menus&scrollbars.
20 HAVE_NS         Use the NeXT/OpenStep/Cocoa UI under Mac OS X or GNUstep.
21 NS_IMPL_GNUSTEP Compile support for GNUstep implementation of NS GUI API.
22 NS_IMPL_COCOA   Compile support for Cocoa (Apple) implementation of NS GUI API.
23 HAVE_X11        Compile support for the X11 GUI.
24 HAVE_X_WINDOWS  Compile support for X Window system
25   (It looks like, nowadays, if HAVE_X11 is set, HAVE_X_WINDOWS must
26    be, and vice versa.  At least, this is true for configure, and
27    msdos; not sure about nt.)
28 USE_LUCID       Use the Lucid toolkit for menus&scrollbars.  Requires HAVE_X11.
29 USE_MOTIF       Use the Motif toolkit for menus&scrollbars.  Requires HAVE_X11.
30 USE_GTK         Use the Gtk   toolkit for menus&scrollbars.  Requires HAVE_X11.
32 ** Frame types **
34 FRAME_TERMCAP_P A tty (character terminal) frame.
35 FRAME_X_P       A frame on X Window system.
36 FRAME_MSDOS_P   An MS-DOS frame (used only by the DOS port).
37 FRAME_W32_P     A frame using native MS-Windows GUI.
38 FRAME_WINDOW_P  A GUI frame (like X, w32, etc.)
40 ** Support for accessing other processes on the system **
42 HAVE_PROCFS     The /proc filesystem is supported.
44 ** Compile-time options **
46 REL_ALLOC       Compile in the relocatable memory allocator ralloc.c.
47 SYSTEM_MALLOC   Use the system library's malloc.
48 subprocesses    System can use subprocesses (for M-x shell for example).  Defined by default, only MSDOS undefines it.
49 DEBUG_LISP_OBJECT_TYPE Define it in lisp.h enable compile time checks on Lisp_Object use.
51 ** System specific macros, described in detail in src/s/template.h
52 CLASH_DETECTION
53 COFF
54 FIRST_PTY_LETTER
55 HAVE_PTYS
56 INTERRUPT_INPUT
57 NARROWPROTO
58 SEPCHAR
59 SYSTEM_TYPE
61 ** Misc macros
62 USER_FULL_NAME   If defined, overrides the default pw->pw_gecos for getting at the full user name.  Only MSDOS overrides the default.
64 ** Replace, the definition is trivial: SWITCH_ENUM_CAST
66 ** Defines from 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/s/*.h.
69 AIX
70 AMPERSAND_FULL_NAME
71 BROKEN_DATAGRAM_SOCKETS
72 BROKEN_FIONREAD
73 BROKEN_GET_CURRENT_DIR_NAME
74 BROKEN_NON_BLOCKING_CONNECT
75 BROKEN_PTY_READ_AFTER_EAGAIN
76 BROKEN_SA_RESTART
77 BROKEN_SIGAIO
78 BROKEN_SIGIO
79 BROKEN_SIGPOLL
80 BROKEN_SIGPTY
81 BSD4_2
82 BSD_SYSTEM
83 CLASH_DETECTION
84 DATA_SEG_BITS
85 DATA_START
86 DBL_MIN_REPLACEMENT
87 DEFAULT_SOUND_DEVICE
88 DEVICE_SEP
89 DIRECTORY_SEP
90 DONT_REOPEN_PTY
91 DOUG_LEA_MALLOC
92 DebPrint
93 EMACSDEBUG
94 EMACS_CONFIGURATION
95 EMACS_CONFIG_OPTIONS
96 EMACS_INT
97 EMACS_UINT
98 FILE_SYSTEM_CASE
99 FLOAT_CHECK_DOMAIN
100 GC_LISP_OBJECT_ALIGNMENT
101 GC_MARK_SECONDARY_STACK
102 GC_MARK_STACK
103 GC_SETJMP_WORKS
104 GMALLOC_INHIBIT_VALLOC
105 GNU_LIBRARY_PENDING_OUTPUT_COUNT
106 GNU_LINUX
107 GNU_MALLOC
108 HAVE_AIX_SMT_EXP
109 HAVE_CBRT
110 HAVE_CLOSEDIR
111 HAVE_DUP2
112 HAVE_EUIDACCESS
113 HAVE_FMOD
114 HAVE_FPATHCONF
115 HAVE_FREXP
116 HAVE_FSYNC
117 HAVE_GETCWD
118 HAVE_GETHOSTNAME
119 HAVE_GETLOADAVG
120 HAVE_GETPAGESIZE
121 HAVE_GETPT
122 HAVE_GETTIMEOFDAY
123 HAVE_GETWD
124 HAVE_H_ERRNO
125 HAVE_INET_SOCKETS
126 HAVE_INVERSE_HYPERBOLIC
127 HAVE_LIBKSTAT
128 HAVE_LIMITS_H
129 HAVE_LINUX_VERSION_H
130 HAVE_LOGB
131 HAVE_LONG_FILE_NAMES
132 HAVE_LRAND48
133 HAVE_MENUS
134 HAVE_MKDIR
135 HAVE_MKTIME
136 HAVE_MOUSE
137 HAVE_PERROR
138 HAVE_PSTAT_GETDYNAMIC
139 HAVE_PWD_H
140 HAVE_RANDOM
141 HAVE_RENAME
142 HAVE_RES_INIT
143 HAVE_RINT
144 HAVE_RMDIR
145 HAVE_SELECT
146 HAVE_SETLOCALE
147 HAVE_SETPGID
148 HAVE_SETRLIMIT
149 HAVE_SETSID
150 HAVE_SHUTDOWN
151 HAVE_SOCKETS
152 HAVE_SOUND
153 HAVE_STDLIB_H
154 HAVE_STRERROR
155 HAVE_STRFTIME
156 HAVE_STRING_H
157 HAVE_STRUCT_UTIMBUF
158 HAVE_SYS_SELECT_H
159 HAVE_SYS_SYSTEMINFO_H
160 HAVE_SYS_TIMEB_H
161 HAVE_SYS_TIME_H
162 HAVE_TCATTR
163 HAVE_TIMEVAL
164 HAVE_TM_ZONE
165 HAVE_TZSET
166 HAVE_UNISTD_H
167 HAVE_UTIMES
168 HAVE_UTIME_H
169 HAVE_WINDOW_SYSTEM
170 HAVE_WORKING_VFORK
171 HAVE_XRMSETDATABASE
172 HPUX
173 INTERNAL_TERMINAL
174 IS_ANY_SEP
175 IS_DIRECTORY_SEP
176 LINKER
177 LINUX_VERSION_CODE
178 LISP_FLOAT_TYPE
179 LNOFLSH
180 LOCALTIME_CACHE
181 MAIL_USE_FLOCK
182 MAIL_USE_LOCKF
183 MAIL_USE_POP
184 MAIL_USE_SYSTEM_LOCK
185 MAXPATHLEN
186 MIN_PTY_KERNEL_VERSION -- only used on Mac
187 MODE_LINE_BINARY_TEXT
188 MUST_UNDEF__STDC__
189 NLIST_STRUCT
190 NO_ABORT
191 NO_EDITRES
192 NO_MATHERR
193 NO_TERMIO
194 NSIG
195 NSIG_MINIMUM
196 NULL_DEVICE
197 ORDINARY_LINK
198 O_APPEND
199 O_RDONLY
200 O_RDWR
201 PAGESIZE
202 PENDING_OUTPUT_COUNT
203 POSIX
204 PREFER_VSUSP
205 PTY_ITERATION
206 PTY_NAME_SPRINTF
207 PTY_OPEN
208 PTY_TTY_NAME_SPRINTF
209 PURESIZE
210 RUN_TIME_REMAP
211 SA_RESTART
212 SEGMENT_MASK
213 SETPGRP_RELEASES_CTTY
214 SETUP_SLAVE_PTY
215 SIGALRM
216 SIGCHLD
217 SIGHUP
218 SIGKILL
219 SIGNALS_VIA_CHARACTERS
220 SIGPIPE
221 SIGQUIT
222 SIGTRAP
223 SOLARIS2
224 STDC_HEADERS
225 SYSTEM_PURESIZE_EXTRA
226 SYSTEM_MALLOC
227 SYSV_SYSTEM_DIR
228 TAB3
229 TABDLY
230 TERM
231 TIME_WITH_SYS_TIME
232 TIOCSIGSEND
233 TM_IN_SYS_TIME
234 ULIMIT_BREAK_VALUE
235 UNIX98_PTYS
236 USE_CRT_DLL
237 USE_TOOLKIT_SCROLL_BARS
239 USG5
240 USG_SUBTTY_WORKS
241 VALBITS
242 WRETCODE
243 XOS_NEEDS_TIME_H
244 _AIX
245 _ARCH_PPC64
246 _FILE_OFFSET_BITS
247 _LP64
248 _MALLOC_INTERNAL
249 _NAIVE_DOS_REGS
250 _VARARGS_
251 _WINSOCKAPI_
252 _WINSOCK_H
253 _longjmp
254 _setjmp
255 _start
256 abort
257 access
258 alloca
260 calloc
261 chdir
262 chmod
263 chown
264 close
265 creat
266 ctime
268 dup2
269 edata
270 emacs
271 etext
272 execlp
273 execvp
274 fdopen
275 fileno
276 fopen
277 free
278 fsync
279 ftruncate
280 fwrite
281 getdefdir
282 getdisk
283 getenv
284 getpid
285 getuid
286 gmtime
287 index
288 isatty
289 kill
290 link
291 linux
292 localtime
293 logb
294 lseek
295 malloc
296 mkdir
297 mktemp
298 open
299 pclose
300 pipe
301 popen
302 random
303 read
304 realloc
305 rename
306 rindex
307 rmdir
308 sbrk
309 select
310 sigmask
311 signal
312 sigsetmask
313 sleep
314 spawnve
315 srandom
316 strdup
317 strerror
318 stricmp
319 strnicmp
320 strupr
321 sys_nerr
322 system
323 temacs
324 tzname
325 tzset
326 umask
327 unix
328 unlink
329 utimbuf
330 utime
331 vfork
332 wait
333 write
334 xfree