; Spelling fixes
[emacs.git] / admin / CPP-DEFINES
blobcead305aee1e077eaca6575931f569b5f5d8ae40
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 **
10 AIX
11 _AIX
12 CYGWIN          Compiling the Cygwin port.
13 __CYGWIN__      Ditto
14 GNU_LINUX
15 HPUX
16 MSDOS           Compiling the MS-DOS port.
17 __MSDOS__       Ditto.
18 __DJGPP_MINOR__ Minor version number of the DJGPP library; used only in msdos.c and dosfns.c.
19 DOS_NT          Compiling for either the MS-DOS or native MS-Windows port.
20 WINDOWSNT       Compiling the native MS-Windows (W32) port.
21 __MINGW32__     Compiling the W32 port with the MinGW or MinGW-w64 ports of GCC.
22 _MSC_VER        Compiling the W32 port with the Microsoft C compiler.
23 MINGW_W64       Compiling the W32 port with the MinGW-w64 port of GCC.
24 DARWIN_OS       Compiling on macOS or pure Darwin (and using s/darwin.h).
25 SOLARIS2
26 USG
27 USG5_4
29 ** Distinguishing GUIs **
31 HAVE_NTGUI      Use the native W32 GUI for windows, frames, menus&scrollbars.
32 HAVE_NS         Use the NeXT/OpenStep/Cocoa UI under macOS or GNUstep.
33 NS_IMPL_GNUSTEP Compile support for GNUstep implementation of NS GUI API.
34 NS_IMPL_COCOA   Compile support for Cocoa (Apple) implementation of NS GUI API.
35 HAVE_X11        Compile support for the X11 GUI.
36 HAVE_X_WINDOWS  Compile support for X Window system
37   (It looks like, nowadays, if HAVE_X11 is set, HAVE_X_WINDOWS must
38    be, and vice versa.  At least, this is true for configure, and
39    msdos; not sure about nt.)
40 HAVE_X11R6
41 HAVE_X11R6_XIM
42 HAVE_X11XTR6
43 USE_LUCID       Use the Lucid toolkit for menus&scrollbars.  Requires HAVE_X11.
44 USE_MOTIF       Use the Motif toolkit for menus&scrollbars.  Requires HAVE_X11.
45 USE_GTK         Use the Gtk   toolkit for menus&scrollbars.  Requires HAVE_X11.
47 ** Frame types **
49 FRAME_TERMCAP_P A tty (character terminal) frame.
50 FRAME_X_P       A frame on X Window system.
51 FRAME_MSDOS_P   An MS-DOS frame (used only by the DOS port).
52 FRAME_W32_P     A frame using native MS-Windows GUI.
53 FRAME_WINDOW_P  A GUI frame (like X, w32, etc.)
55 ** Support for accessing other processes on the system **
57 HAVE_PROCFS     The /proc filesystem is supported.
59 ** Compile-time options **
61 REL_ALLOC       Compile in the relocatable memory allocator ralloc.c.
62 SYSTEM_MALLOC   Use the system library's malloc.
63 subprocesses    System can use subprocesses (for M-x shell for example).
64                 Defined by default, only MSDOS undefines it.
65 DEBUG_LISP_OBJECT_TYPE Define it in lisp.h enable compile time checks
66                        on Lisp_Object use.
68 ** System specific macros
69 FIRST_PTY_LETTER
70 HAVE_PTYS
71 INTERRUPT_INPUT
72 NARROWPROTO
73 SEPCHAR
74 SYSTEM_TYPE
76 ** Misc macros
77 USER_FULL_NAME   If defined, overrides the default pw->pw_gecos for
78 getting at the full user name.  Only MSDOS overrides the default.
80 ** Miscellaneous defines.  Some of these might not be used in the code
81 anymore, so they can be removed.
83 AMPERSAND_FULL_NAME
84 BROKEN_DATAGRAM_SOCKETS
85 BROKEN_FIONREAD
86 BROKEN_GET_CURRENT_DIR_NAME
87 BROKEN_PTY_READ_AFTER_EAGAIN
88 DEFAULT_SOUND_DEVICE
89 DEVICE_SEP
90 DIRECTORY_SEP
91 DONT_REOPEN_PTY
92 DOUG_LEA_MALLOC
93 EMACS_CONFIGURATION
94 EMACS_CONFIG_OPTIONS
95 EMACS_INT
96 EMACS_UINT
97 GC_MARK_SECONDARY_STACK
98 GC_MARK_STACK
99 GC_SETJMP_WORKS
100 GNU_MALLOC
101 HAVE_AIX_SMT_EXP
102 HAVE_ALARM
103 HAVE_ALLOCA
104 HAVE_ALLOCA_H
105 HAVE_ALSA
106 HAVE_ATTRIBUTE_ALIGNED
107 HAVE_BDFFONT
108 HAVE_BOXES
109 HAVE_C99_STRTOLD
110 HAVE_CFMAKERAW
111 HAVE_CFSETSPEED
112 HAVE_CLOCK_GETTIME
113 HAVE_CLOCK_SETTIME
114 HAVE_COFF_H
115 HAVE_COM_ERR_H
116 HAVE_DBUS
117 HAVE_DBUS_TYPE_IS_VALID
118 HAVE_DBUS_VALIDATE_BUS_NAME
119 HAVE_DBUS_VALIDATE_INTERFACE
120 HAVE_DBUS_VALIDATE_MEMBER
121 HAVE_DBUS_VALIDATE_PATH
122 HAVE_DBUS_WATCH_GET_UNIX_FD
123 HAVE_DECL_GETENV
124 HAVE_DECL_LOCALTIME_R
125 HAVE_DECL_STRMODE
126 HAVE_DECL_STRTOIMAX
127 HAVE_DECL_STRTOLL
128 HAVE_DECL_STRTOULL
129 HAVE_DECL_STRTOUMAX
130 HAVE_DECL_SYS_SIGLIST
131 HAVE_DECL_TZNAME
132 HAVE_DECL___SYS_SIGLIST
133 HAVE_DIALOGS
134 HAVE_DIFFTIME
135 HAVE_DUP2
136 HAVE_ENDGRENT
137 HAVE_ENDPWENT
138 HAVE_ENVIRON_DECL
139 HAVE_EUIDACCESS
140 HAVE_FORK
141 HAVE_FREEIFADDRS
142 HAVE_FREETYPE
143 HAVE_FSEEKO
144 HAVE_FUTIMENS
145 HAVE_FUTIMES
146 HAVE_FUTIMESAT
147 HAVE_GAI_STRERROR
148 HAVE_GCONF
149 HAVE_GETDELIM
150 HAVE_GETGRENT
151 HAVE_GETHOSTNAME
152 HAVE_GETIFADDRS
153 HAVE_GETLINE
154 HAVE_GETLOADAVG
155 HAVE_GETOPT_H
156 HAVE_GETOPT_LONG_ONLY
157 HAVE_GETPAGESIZE
158 HAVE_GETPT
159 HAVE_GETPWENT
160 HAVE_GETRLIMIT
161 HAVE_GETRUSAGE
162 HAVE_GETSOCKNAME
163 HAVE_GETTIMEOFDAY
164 HAVE_GET_CURRENT_DIR_NAME
165 HAVE_GHOSTSCRIPT
166 HAVE_GIF
167 HAVE_GNUTLS
168 HAVE_GPM
169 HAVE_GRANTPT
170 HAVE_GSETTINGS
171 HAVE_GTK3
172 HAVE_GTK_ADJUSTMENT_GET_PAGE_SIZE
173 HAVE_GTK_DIALOG_GET_ACTION_AREA
174 HAVE_GTK_FILE_SELECTION_NEW
175 HAVE_GTK_MAIN
176 HAVE_GTK_MULTIDISPLAY
177 HAVE_GTK_ORIENTABLE_SET_ORIENTATION
178 HAVE_GTK_WIDGET_GET_MAPPED
179 HAVE_GTK_WIDGET_GET_SENSITIVE
180 HAVE_GTK_WIDGET_GET_WINDOW
181 HAVE_GTK_WIDGET_SET_HAS_WINDOW
182 HAVE_GTK_WINDOW_SET_HAS_RESIZE_GRIP
183 HAVE_G_TYPE_INIT
184 HAVE_IFADDRS_H
185 HAVE_IMAGEMAGICK
186 HAVE_INET_SOCKETS
187 HAVE_INTTYPES_H
188 HAVE_JPEG
189 HAVE_KERBEROSIV_KRB_H
190 HAVE_KERBEROS_KRB_H
191 HAVE_KRB5_ERROR_E_TEXT
192 HAVE_KRB5_ERROR_TEXT
193 HAVE_KRB5_H
194 HAVE_KRB_H
195 HAVE_LANGINFO_CODESET
196 HAVE_LIBDGC
197 HAVE_LIBKSTAT
198 HAVE_LIBLOCKFILE
199 HAVE_LIBMAIL
200 HAVE_LIBOTF
201 HAVE_LIBPERFSTAT
202 HAVE_LIBPNG_PNG_H
203 HAVE_LIBSELINUX
204 HAVE_LIBXML2
205 HAVE_LIBXMU
206 HAVE_LOCALTIME_R
207 HAVE_LOCAL_SOCKETS
208 HAVE_LONG_FILE_NAMES
209 HAVE_LONG_LONG_INT
210 HAVE_LRAND48
211 HAVE_LSTAT
212 HAVE_LUTIMES
213 HAVE_M17N_FLT
214 HAVE_MACHINE_SOUNDCARD_H
215 HAVE_MACH_MACH_H
216 HAVE_MAGICKEXPORTIMAGEPIXELS
217 HAVE_MAGICKMERGEIMAGELAYERS
218 HAVE_MAILLOCK_H
219 HAVE_MALLOC_MALLOC_H
220 HAVE_MATHERR
221 HAVE_MBSTATE_T
222 HAVE_MEMCMP
223 HAVE_MEMMOVE
224 HAVE_MEMORY_H
225 HAVE_MEMSET
226 HAVE_MENUS
227 HAVE_MKSTEMP
228 HAVE_MMAP
229 HAVE_MULTILINGUAL_MENU
230 HAVE_NANOTIME
231 HAVE_NET_IF_DL_H
232 HAVE_NET_IF_H
233 HAVE_NLIST_H
234 HAVE_OTF_GET_VARIATION_GLYPHS
235 HAVE_PERSONALITY_ADDR_NO_RANDOMIZE
236 HAVE_PNG
237 HAVE_PNG_H
238 HAVE_POSIX_MEMALIGN
239 HAVE_PROCFS
240 HAVE_PSELECT
241 HAVE_PSTAT_GETDYNAMIC
242 HAVE_PTHREAD
243 HAVE_PTHREAD_H
244 HAVE_PTHREAD_SIGMASK
245 HAVE_PTYS
246 HAVE_PTY_H
247 HAVE_PWD_H
248 HAVE_RANDOM
249 HAVE_READLINK
250 HAVE_READLINKAT
251 HAVE_RECVFROM
252 HAVE_RINT
253 HAVE_RSVG
254 HAVE_SELECT
255 HAVE_SENDTO
256 HAVE_SEQPACKET
257 HAVE_SETITIMER
258 HAVE_SETLOCALE
259 HAVE_SETRLIMIT
260 HAVE_SHARED_GAME_DIR
261 HAVE_SHUTDOWN
262 HAVE_SIGNED_${GLTYPE}
263 HAVE_SIGNED_SIG_ATOMIC_T
264 HAVE_SIGNED_WCHAR_T
265 HAVE_SIGNED_WINT_T
266 HAVE_SIGSET_T
267 HAVE_SNPRINTF
268 HAVE_SOCKETS
269 HAVE_SOUND
270 HAVE_SOUNDCARD_H
271 HAVE_STDINT_H
272 HAVE_STDIO_EXT_H
273 HAVE_STDLIB_H
274 HAVE_STLIB_H_1
275 HAVE_STRINGS_H
276 HAVE_STRING_H
277 HAVE_STRNCASECMP
278 HAVE_STRSIGNAL
279 HAVE_STRTOIMAX
280 HAVE_STRTOLL
281 HAVE_STRTOULL
282 HAVE_STRTOUMAX
283 HAVE_STRUCT_ERA_ENTRY
284 HAVE_STRUCT_IFREQ_IFR_ADDR
285 HAVE_STRUCT_IFREQ_IFR_ADDR_SA_LEN
286 HAVE_STRUCT_IFREQ_IFR_BROADADDR
287 HAVE_STRUCT_IFREQ_IFR_FLAGS
288 HAVE_STRUCT_IFREQ_IFR_HWADDR
289 HAVE_STRUCT_IFREQ_IFR_NETMASK
290 HAVE_STRUCT_NLIST_N_UN_N_NAME
291 HAVE_STRUCT_STAT_ST_ATIMENSEC
292 HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC
293 HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC
294 HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC
295 HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC
296 HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC
297 HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC
298 HAVE_STRUCT_TIMEZONE
299 HAVE_STRUCT_TM_TM_ZONE
300 HAVE_STRUCT_UTIMBUF
301 HAVE_ST_DM_MODE
302 HAVE_SYMLINK
303 HAVE_SYNC
304 HAVE_SYS_BITYPES_H
305 HAVE_SYS_INTTYPES_H
306 HAVE_SYS_LOADAVG_H
307 HAVE_SYS_PARAM_H
308 HAVE_SYS_RESOURCE_H
309 HAVE_SYS_SELECT_H
310 HAVE_SYS_SOCKET_H
311 HAVE_SYS_SOUNDCARD_H
312 HAVE_SYS_STAT_H
313 HAVE_SYS_SYSTEMINFO_H
314 HAVE_SYS_TIMEB_H
315 HAVE_SYS_TIME_H
316 HAVE_SYS_TYPES_H
317 HAVE_SYS_UN_H
318 HAVE_SYS_UTSNAME_H
319 HAVE_SYS_VLIMIT_H
320 HAVE_SYS_WAIT_H
321 HAVE_TCATTR
322 HAVE_TERM_H
323 HAVE_TIFF
324 HAVE_TIMEVAL
325 HAVE_TM_GMTOFF
326 HAVE_TM_ZONE
327 HAVE_TOUCHLOCK
328 HAVE_TZNAME
329 HAVE_TZSET
330 HAVE_UNSIGNED_LONG_LONG_INT
331 HAVE_UTIL_H
332 HAVE_UTIMENSAT
333 HAVE_UTIMES
334 HAVE_UTIME_H
335 HAVE_UTMP_H
336 HAVE_VFORK
337 HAVE_VFORK_H
338 HAVE_WCHAR_H
339 HAVE_WCHAR_T
340 HAVE_WINDOW_SYSTEM
341 HAVE_WINSOCK2_H
342 HAVE_WORKING_FORK
343 HAVE_WORKING_UTIMES
344 HAVE_WORKING_VFORK
345 HAVE_WS2TCPIP_H
346 HAVE_XAW3D
347 HAVE_XFT
348 HAVE_XIM
349 HAVE_XPM
350 HAVE_XRMSETDATABASE
351 HAVE_XSCREENNUMBEROFSCREEN
352 HAVE_XSCREENRESOURCESTRING
353 HAVE_X_I18N
354 HAVE_X_MENU
355 HAVE_X_SM
356 HAVE_X_WINDOWS
357 HAVE__BOOL
358 HAVE__FTIME
359 HAVE___BUILTIN_UNWIND_INIT
360 HAVE___EXECUTABLE_START
361 HAVE___FPENDING
362 INTERNAL_TERMINAL
363 IS_ANY_SEP
364 IS_DIRECTORY_SEP
365 MAIL_USE_FLOCK
366 MAIL_USE_LOCKF
367 MAIL_USE_POP
368 MAIL_USE_SYSTEM_LOCK
369 MAXPATHLEN
370 NLIST_STRUCT
371 NO_EDITRES
372 NSIG
373 NSIG_MINIMUM
374 NULL_DEVICE
375 PAGESIZE
376 PTY_ITERATION
377 PTY_NAME_SPRINTF
378 PTY_OPEN
379 PTY_TTY_NAME_SPRINTF
380 PURESIZE
381 RUN_TIME_REMAP
382 SETUP_SLAVE_PTY
383 SIGNALS_VIA_CHARACTERS
384 STDC_HEADERS
385 SYSTEM_PURESIZE_EXTRA
386 SYSTEM_MALLOC
387 TAB3
388 TABDLY
389 TERM
390 TIME_WITH_SYS_TIME
391 TIOCSIGSEND
392 TM_IN_SYS_TIME
393 UNIX98_PTYS
394 USE_TOOLKIT_SCROLL_BARS
395 USG_SUBTTY_WORKS
396 VALBITS
397 XOS_NEEDS_TIME_H
398 _FILE_OFFSET_BITS
399 _LP64
400 _longjmp
401 _setjmp
402 abort
403 alloca
404 close
405 emacs
406 free
407 gmtime
408 localtime
409 malloc
410 random
411 read
412 realloc
413 select
414 umask
415 vfork
418 src/sysdep.c:
419 write
421 src/syssignal.h:
422 signal
423 sigmask
424 sigsetmask
427 lib/dup2.c:
428 dup2
430 lib/signal.h:
431 signal
433 lib/stdio.h:
434 fdopen
435 fopen
436 fwrite
437 popen
438 rename
440 lib/stdlib.h:
441 calloc
442 srandom     (conf_post.h may undo)
444 lib/strftime.c:
445 tzname
446 tzset
448 lib/sys/stat.h:
449 mkdir
451 lib/unistd.h:
452 chown
454 dup2
455 ftruncate
456 isatty
457 link
458 lseek
459 pipe
460 rmdir
461 sleep
462 unlink
465 MS DOS stuff:
467 _NAIVE_DOS_REGS
470 MS stuff:
472 USE_CRT_DLL
474 ms-w32.h:
475 DebPrint
476 EMACSDEBUG
477 MUST_UNDEF__STDC__
479 _VARARGS_
480 _WINSOCKAPI_
481 _WINSOCK_H
483 access
484 calloc
485 chdir
486 chmod
487 chown
488 creat
489 ctime
491 dup2
492 execlp
493 execvp  (also emacsclient.c [WINDOWSNT])
494 fdopen
495 fileno
496 fopen
497 fsync
498 ftruncate
499 getdefdir
500 getdisk
501 getpid
502 isatty
503 kill
504 link
505 lseek
506 mkdir
507 mktemp
508 open
509 pclose
510 pipe
511 popen
512 rename
513 rmdir
514 signal
515 sleep
516 spawnve
517 strdup
518 stricmp
519 strnicmp
520 strupr
521 sys_nerr
522 tzname
523 tzset
524 umask
525 unlink
526 utimbuf
527 utime
528 wait  (also movemail.c [WINDOWSNT])
529 write
531 lib-src/ntlib:
532 access
533 chdir
534 chmod
535 creat
537 dup2
538 execlp
539 execvp
540 fdopen
541 fileno
542 fopen
543 getpid
544 index
545 isatty
546 lseek
547 mkdir
548 mktemp
549 open
550 pclose
551 pipe
552 popen
553 rmdir
554 rindex
555 sleep
556 umask
557 unlink
558 utime